diff --git a/.next/BUILD_ID b/.next/BUILD_ID
index dc5dc993c7e15aee23738b319368331b08e03112..7437b346b8db228439a540e6a1fbe73881ee4278 100644
--- a/.next/BUILD_ID
+++ b/.next/BUILD_ID
@@ -1 +1 @@
-E66ReztlUunPgDOKdXxsh
\ No newline at end of file
+HOMmT77GBF_yHKBIDvc4Q
\ No newline at end of file
diff --git a/.next/app-build-manifest.json b/.next/app-build-manifest.json
index b05eaef969986e42daec3a2d46ba39b5b406c40c..0b24e75c14de30e5fe14c06d3c1eb85b0925f3ce 100644
--- a/.next/app-build-manifest.json
+++ b/.next/app-build-manifest.json
@@ -1,543 +1,543 @@
{
"pages": {
"/_not-found/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/_not-found/page-ba71488e719cbee5.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/_not-found/page-456a9067b36694a4.js"
],
"/layout": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/css/7b8717d9d84180b1.css",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/2138-18d4ca002a920f5d.js",
- "static/chunks/app/layout-19d4da7b6d1a11dd.js"
- ],
- "/api/admin/sites/[id]/database/logs/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/database/logs/route-b093bf7758b7ccd7.js"
- ],
- "/api/admin/sites/[id]/database/schema/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/database/schema/route-d9c68e12cf8a14d4.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/css/048b1824021554f0.css",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/4841-9c023033845750e4.js",
+ "static/chunks/app/layout-f8fe6cebce585a15.js"
],
"/api/admin/sites/[id]/database/query/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/database/query/route-e965d26c21e33895.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/database/query/route-961ea734a9d8afc9.js"
],
"/api/admin/sites/[id]/functions/[functionId]/logs/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/functions/[functionId]/logs/route-31e6d1bb9e5bc65c.js"
- ],
- "/api/admin/sites/[id]/functions/[functionId]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/functions/[functionId]/route-6624ebbb5007f791.js"
- ],
- "/api/admin/sites/[id]/secrets/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/secrets/route-f4d0251af1c5619d.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/functions/[functionId]/logs/route-961ea734a9d8afc9.js"
],
"/api/admin/run-migrations/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/run-migrations/route-31ad301db9338cc8.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/run-migrations/route-961ea734a9d8afc9.js"
],
- "/api/admin/sites/[id]/secrets/[secretId]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/secrets/[secretId]/route-9ecc975a4c1c111c.js"
+ "/api/admin/sites/[id]/database/logs/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/database/logs/route-961ea734a9d8afc9.js"
],
- "/api/admin/dashboard/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/dashboard/route-59e1e8d72a0fbf17.js"
+ "/api/admin/sites/[id]/database/schema/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/database/schema/route-961ea734a9d8afc9.js"
],
- "/api/admin/sites/[id]/server-context/mutate/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/server-context/mutate/route-b78e00e6b1fc34b4.js"
+ "/api/admin/dashboard/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/dashboard/route-961ea734a9d8afc9.js"
],
- "/api/admin/sites/[id]/server-functions/[functionId]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/server-functions/[functionId]/route-1df65f51884c4800.js"
+ "/api/admin/sites/[id]/secrets/[secretId]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/secrets/[secretId]/route-961ea734a9d8afc9.js"
],
"/api/admin/sites/[id]/functions/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/functions/route-f8fb16feb4d0042f.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/functions/route-961ea734a9d8afc9.js"
+ ],
+ "/api/admin/sites/[id]/secrets/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/secrets/route-961ea734a9d8afc9.js"
],
"/api/admin/sites/[id]/server-functions/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/server-functions/route-22ae3e3248349427.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/server-functions/route-961ea734a9d8afc9.js"
],
"/api/admin/sites/[id]/server-context/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/admin/sites/[id]/server-context/route-8eed601e3ad70cb0.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/server-context/route-961ea734a9d8afc9.js"
+ ],
+ "/api/admin/sites/[id]/server-functions/[functionId]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/server-functions/[functionId]/route-961ea734a9d8afc9.js"
+ ],
+ "/api/admin/sites/[id]/server-context/mutate/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/server-context/mutate/route-961ea734a9d8afc9.js"
],
"/api/analytics/[siteId]/clear/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/clear/route-76bb9d55d3c8d30c.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/clear/route-961ea734a9d8afc9.js"
],
"/api/analytics/[siteId]/engagement/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/engagement/route-39bd245cdcdeb44e.js"
- ],
- "/api/analytics/[siteId]/export/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/export/route-dc7209f3f30df836.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/engagement/route-961ea734a9d8afc9.js"
],
"/api/analytics/[siteId]/heatmap/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/heatmap/route-c2a696b92f698cf2.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/heatmap/route-961ea734a9d8afc9.js"
],
- "/api/analytics/[siteId]/storage/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/storage/route-a6075a911db439cb.js"
+ "/api/admin/sites/[id]/functions/[functionId]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/admin/sites/[id]/functions/[functionId]/route-961ea734a9d8afc9.js"
],
"/api/analytics/[siteId]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/route-d537100595379f20.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/route-961ea734a9d8afc9.js"
],
- "/api/analytics/interaction/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/interaction/route-a893dc193fbd9f26.js"
+ "/api/analytics/[siteId]/storage/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/storage/route-961ea734a9d8afc9.js"
],
- "/api/auth/check/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/auth/check/route-2bc03e3358b50cd0.js"
+ "/api/analytics/[siteId]/sessions/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/sessions/route-961ea734a9d8afc9.js"
],
"/api/analytics/[siteId]/overview/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/overview/route-33cfa6db24302a32.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/overview/route-961ea734a9d8afc9.js"
],
- "/api/auth/login/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/auth/login/route-18fe92c87fbfa15e.js"
+ "/api/analytics/interaction/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/interaction/route-961ea734a9d8afc9.js"
+ ],
+ "/api/analytics/track/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/track/route-961ea734a9d8afc9.js"
+ ],
+ "/api/analytics/[siteId]/export/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/analytics/[siteId]/export/route-961ea734a9d8afc9.js"
],
"/api/docs/[...path]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/docs/[...path]/route-874d6dcc3505b4f9.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/docs/[...path]/route-961ea734a9d8afc9.js"
+ ],
+ "/api/generate/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/generate/route-961ea734a9d8afc9.js"
],
"/api/auth/logout/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/auth/logout/route-d9070c4277d03fed.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/auth/logout/route-961ea734a9d8afc9.js"
],
"/api/auth/me/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/auth/me/route-0f06197637f703ac.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/auth/me/route-961ea734a9d8afc9.js"
],
- "/api/analytics/[siteId]/sessions/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/[siteId]/sessions/route-b2c948f133c0ae45.js"
+ "/api/auth/check/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/auth/check/route-961ea734a9d8afc9.js"
],
- "/api/projects/[id]/sites/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/projects/[id]/sites/route-0605d468cc93ab8f.js"
+ "/api/auth/login/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/auth/login/route-961ea734a9d8afc9.js"
],
- "/api/generate/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/generate/route-0e65a6cfb8d4177c.js"
+ "/api/sites/[id]/publish/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/[id]/publish/route-961ea734a9d8afc9.js"
],
"/api/models/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/models/route-35f8e874f1e5c4c9.js"
- ],
- "/api/projects/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/projects/route-e443a33cbc5ced83.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/models/route-961ea734a9d8afc9.js"
],
"/api/shell/execute/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/shell/execute/route-f518150859dcff5b.js"
- ],
- "/api/analytics/track/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/analytics/track/route-ba719bb7b83a092a.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/shell/execute/route-961ea734a9d8afc9.js"
],
- "/api/sites/[id]/publish/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/[id]/publish/route-b2f6c6035ae5dd61.js"
- ],
- "/api/sites/[id]/thumbnail/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/[id]/thumbnail/route-279a452ec20bc17a.js"
+ "/api/projects/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/projects/route-961ea734a9d8afc9.js"
],
"/api/sites/[id]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/[id]/route-37995db81547355e.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/[id]/route-961ea734a9d8afc9.js"
],
- "/api/sync/projects/[id]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/projects/[id]/route-abe8be0679dc3fef.js"
+ "/api/projects/[id]/sites/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/projects/[id]/sites/route-961ea734a9d8afc9.js"
],
"/api/sites/[id]/settings/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/[id]/settings/route-92cd8a2456a31ecf.js"
- ],
- "/api/sites/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/route-1f1268747c1518b7.js"
- ],
- "/api/sync/projects/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/projects/route-ba4a1b35c23eee9d.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/[id]/settings/route-961ea734a9d8afc9.js"
],
"/api/sync/files/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/files/route-7072fd002a5d503a.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/files/route-961ea734a9d8afc9.js"
],
- "/api/sync/templates/[id]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/templates/[id]/route-27126f484ce73434.js"
+ "/api/sync/projects/[id]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/projects/[id]/route-961ea734a9d8afc9.js"
+ ],
+ "/api/sync/projects/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/projects/route-961ea734a9d8afc9.js"
],
"/api/sync/templates/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/templates/route-df8a2aeae4f2167c.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/templates/route-961ea734a9d8afc9.js"
+ ],
+ "/api/sites/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/route-961ea734a9d8afc9.js"
],
"/api/sync/skills/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/skills/route-9fbba378d54fe436.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/skills/route-961ea734a9d8afc9.js"
+ ],
+ "/api/sites/[id]/thumbnail/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/[id]/thumbnail/route-961ea734a9d8afc9.js"
+ ],
+ "/api/sync/skills/[id]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/skills/[id]/route-961ea734a9d8afc9.js"
],
"/api/sync/status/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/status/route-083b554a6e0bcf89.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/status/route-961ea734a9d8afc9.js"
],
- "/api/validate-key/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/validate-key/route-42551140fa800077.js"
+ "/api/sync/templates/[id]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sync/templates/[id]/route-961ea734a9d8afc9.js"
],
- "/api/sync/skills/[id]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sync/skills/[id]/route-8d459287a3665b25.js"
+ "/api/validate-key/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/validate-key/route-961ea734a9d8afc9.js"
],
"/sites/[id]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/sites/[id]/route-142a0b1d11fa08c1.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/sites/[id]/route-961ea734a9d8afc9.js"
],
"/sites/[id]/[...path]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/sites/[id]/[...path]/route-28584e7d9e195cef.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/sites/[id]/[...path]/route-961ea734a9d8afc9.js"
],
- "/admin/docs/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/docs/page-226865ee37f1fbcc.js"
+ "/api/sites/[id]/functions/[...path]/route": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/api/sites/[id]/functions/[...path]/route-961ea734a9d8afc9.js"
],
- "/admin/dashboard/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/dashboard/page-fbd6d62ec0a157c3.js"
+ "/admin/docs/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/docs/page-6851bc68b8a2db8f.js"
],
"/admin/login/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/admin/login/page-5470d9718e2ee0e3.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/admin/login/page-5f069849d073f76f.js"
+ ],
+ "/admin/dashboard/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/dashboard/page-6851bc68b8a2db8f.js"
],
"/admin/projects/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/projects/page-1fe7c7e20e00f2b6.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/projects/page-6851bc68b8a2db8f.js"
],
- "/admin/settings/model/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/settings/model/page-5bed268748dbbc2a.js"
+ "/admin/settings/application/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/settings/application/page-6851bc68b8a2db8f.js"
],
- "/admin/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"
+ "/admin/skills/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/skills/page-6851bc68b8a2db8f.js"
],
- "/admin/settings/application/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/settings/application/page-a874fccacd499bea.js"
+ "/admin/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/app/admin/page-700ea05bb99f3aa7.js"
],
"/admin/settings/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/settings/page-9f364b6b8587064f.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/settings/page-6851bc68b8a2db8f.js"
],
"/admin/sites/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/sites/page-cab0d1490b6a10b2.js"
- ],
- "/admin/skills/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/skills/page-929d76911d7d6b6c.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/sites/page-6851bc68b8a2db8f.js"
],
"/admin/templates/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/admin/templates/page-504a7473b0432e50.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/templates/page-6851bc68b8a2db8f.js"
],
- "/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/ad2866b8-a4659a388c5e0680.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5194-99a431c0b0218919.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/1645-ba208cf843cc4ff4.js",
- "static/chunks/app/page-f25d0cf644cab125.js"
+ "/admin/settings/model/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/admin/settings/model/page-6851bc68b8a2db8f.js"
],
- "/api/sites/[id]/functions/[...path]/route": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/app/api/sites/[id]/functions/[...path]/route-398027b95cbf24da.js"
+ "/page": [
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/ad2866b8-e13a3cf75ccf0eb8.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/9974-f7789415a2178836.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/6971-b0cc891c05a94ee5.js",
+ "static/chunks/app/page-0aeebd468c8e7784.js"
],
"/test-generation/page": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js",
- "static/chunks/06bf0ff1-2f6b5dbae626a171.js",
- "static/chunks/6671-78ed01c4e5154d89.js",
- "static/chunks/4792-f97f5e70e2ff5861.js",
- "static/chunks/5226-756b348ecc09845d.js",
- "static/chunks/app/test-generation/page-9a29f57c36cce1f2.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js",
+ "static/chunks/06bf0ff1-101744fe776a5109.js",
+ "static/chunks/8720-c9ee040177c11cae.js",
+ "static/chunks/8111-afa4b6ab5893fd8c.js",
+ "static/chunks/7047-8ed7f297ea0641fa.js",
+ "static/chunks/app/test-generation/page-3f2a8abff861f1b3.js"
]
}
}
\ No newline at end of file
diff --git a/.next/app-path-routes-manifest.json b/.next/app-path-routes-manifest.json
index b6cea0268b90ebf3c209e885bd599bbe13e0a51c..745400d25dce90a1fc9007652b8c642c1e508bc5 100644
--- a/.next/app-path-routes-manifest.json
+++ b/.next/app-path-routes-manifest.json
@@ -1,67 +1,67 @@
{
"/_not-found/page": "/_not-found",
- "/api/admin/sites/[id]/database/logs/route": "/api/admin/sites/[id]/database/logs",
- "/api/admin/sites/[id]/database/schema/route": "/api/admin/sites/[id]/database/schema",
"/api/admin/sites/[id]/database/query/route": "/api/admin/sites/[id]/database/query",
"/api/admin/sites/[id]/functions/[functionId]/logs/route": "/api/admin/sites/[id]/functions/[functionId]/logs",
- "/api/admin/sites/[id]/functions/[functionId]/route": "/api/admin/sites/[id]/functions/[functionId]",
- "/api/admin/sites/[id]/secrets/route": "/api/admin/sites/[id]/secrets",
"/api/admin/run-migrations/route": "/api/admin/run-migrations",
- "/api/admin/sites/[id]/secrets/[secretId]/route": "/api/admin/sites/[id]/secrets/[secretId]",
+ "/api/admin/sites/[id]/database/logs/route": "/api/admin/sites/[id]/database/logs",
+ "/api/admin/sites/[id]/database/schema/route": "/api/admin/sites/[id]/database/schema",
"/api/admin/dashboard/route": "/api/admin/dashboard",
- "/api/admin/sites/[id]/server-context/mutate/route": "/api/admin/sites/[id]/server-context/mutate",
- "/api/admin/sites/[id]/server-functions/[functionId]/route": "/api/admin/sites/[id]/server-functions/[functionId]",
+ "/api/admin/sites/[id]/secrets/[secretId]/route": "/api/admin/sites/[id]/secrets/[secretId]",
"/api/admin/sites/[id]/functions/route": "/api/admin/sites/[id]/functions",
+ "/api/admin/sites/[id]/secrets/route": "/api/admin/sites/[id]/secrets",
"/api/admin/sites/[id]/server-functions/route": "/api/admin/sites/[id]/server-functions",
"/api/admin/sites/[id]/server-context/route": "/api/admin/sites/[id]/server-context",
+ "/api/admin/sites/[id]/server-functions/[functionId]/route": "/api/admin/sites/[id]/server-functions/[functionId]",
+ "/api/admin/sites/[id]/server-context/mutate/route": "/api/admin/sites/[id]/server-context/mutate",
"/api/analytics/[siteId]/clear/route": "/api/analytics/[siteId]/clear",
"/api/analytics/[siteId]/engagement/route": "/api/analytics/[siteId]/engagement",
- "/api/analytics/[siteId]/export/route": "/api/analytics/[siteId]/export",
"/api/analytics/[siteId]/heatmap/route": "/api/analytics/[siteId]/heatmap",
- "/api/analytics/[siteId]/storage/route": "/api/analytics/[siteId]/storage",
+ "/api/admin/sites/[id]/functions/[functionId]/route": "/api/admin/sites/[id]/functions/[functionId]",
"/api/analytics/[siteId]/route": "/api/analytics/[siteId]",
- "/api/analytics/interaction/route": "/api/analytics/interaction",
- "/api/auth/check/route": "/api/auth/check",
+ "/api/analytics/[siteId]/storage/route": "/api/analytics/[siteId]/storage",
+ "/api/analytics/[siteId]/sessions/route": "/api/analytics/[siteId]/sessions",
"/api/analytics/[siteId]/overview/route": "/api/analytics/[siteId]/overview",
- "/api/auth/login/route": "/api/auth/login",
+ "/api/analytics/interaction/route": "/api/analytics/interaction",
+ "/api/analytics/track/route": "/api/analytics/track",
+ "/api/analytics/[siteId]/export/route": "/api/analytics/[siteId]/export",
"/api/docs/[...path]/route": "/api/docs/[...path]",
+ "/api/generate/route": "/api/generate",
"/api/auth/logout/route": "/api/auth/logout",
"/api/auth/me/route": "/api/auth/me",
- "/api/analytics/[siteId]/sessions/route": "/api/analytics/[siteId]/sessions",
- "/api/projects/[id]/sites/route": "/api/projects/[id]/sites",
- "/api/generate/route": "/api/generate",
+ "/api/auth/check/route": "/api/auth/check",
+ "/api/auth/login/route": "/api/auth/login",
+ "/api/sites/[id]/publish/route": "/api/sites/[id]/publish",
"/api/models/route": "/api/models",
- "/api/projects/route": "/api/projects",
"/api/shell/execute/route": "/api/shell/execute",
- "/api/analytics/track/route": "/api/analytics/track",
- "/api/sites/[id]/publish/route": "/api/sites/[id]/publish",
- "/api/sites/[id]/thumbnail/route": "/api/sites/[id]/thumbnail",
+ "/api/projects/route": "/api/projects",
"/api/sites/[id]/route": "/api/sites/[id]",
- "/api/sync/projects/[id]/route": "/api/sync/projects/[id]",
+ "/api/projects/[id]/sites/route": "/api/projects/[id]/sites",
"/api/sites/[id]/settings/route": "/api/sites/[id]/settings",
- "/api/sites/route": "/api/sites",
- "/api/sync/projects/route": "/api/sync/projects",
"/api/sync/files/route": "/api/sync/files",
- "/api/sync/templates/[id]/route": "/api/sync/templates/[id]",
+ "/api/sync/projects/[id]/route": "/api/sync/projects/[id]",
+ "/api/sync/projects/route": "/api/sync/projects",
"/api/sync/templates/route": "/api/sync/templates",
+ "/api/sites/route": "/api/sites",
"/api/sync/skills/route": "/api/sync/skills",
+ "/api/sites/[id]/thumbnail/route": "/api/sites/[id]/thumbnail",
+ "/api/sync/skills/[id]/route": "/api/sync/skills/[id]",
"/api/sync/status/route": "/api/sync/status",
+ "/api/sync/templates/[id]/route": "/api/sync/templates/[id]",
"/api/validate-key/route": "/api/validate-key",
- "/api/sync/skills/[id]/route": "/api/sync/skills/[id]",
"/sites/[id]/route": "/sites/[id]",
"/sites/[id]/[...path]/route": "/sites/[id]/[...path]",
+ "/api/sites/[id]/functions/[...path]/route": "/api/sites/[id]/functions/[...path]",
"/admin/docs/page": "/admin/docs",
- "/admin/dashboard/page": "/admin/dashboard",
"/admin/login/page": "/admin/login",
+ "/admin/dashboard/page": "/admin/dashboard",
"/admin/projects/page": "/admin/projects",
- "/admin/settings/model/page": "/admin/settings/model",
- "/admin/page": "/admin",
"/admin/settings/application/page": "/admin/settings/application",
+ "/admin/skills/page": "/admin/skills",
+ "/admin/page": "/admin",
"/admin/settings/page": "/admin/settings",
"/admin/sites/page": "/admin/sites",
- "/admin/skills/page": "/admin/skills",
"/admin/templates/page": "/admin/templates",
+ "/admin/settings/model/page": "/admin/settings/model",
"/page": "/",
- "/api/sites/[id]/functions/[...path]/route": "/api/sites/[id]/functions/[...path]",
"/test-generation/page": "/test-generation"
}
\ No newline at end of file
diff --git a/.next/build-manifest.json b/.next/build-manifest.json
index e849392ba81197e0aea27485d4e8c30cb3e054d5..80b38a38c050ea159abf067745f8350f5d4c15ab 100644
--- a/.next/build-manifest.json
+++ b/.next/build-manifest.json
@@ -5,28 +5,28 @@
"devFiles": [],
"ampDevFiles": [],
"lowPriorityFiles": [
- "static/E66ReztlUunPgDOKdXxsh/_buildManifest.js",
- "static/E66ReztlUunPgDOKdXxsh/_ssgManifest.js"
+ "static/HOMmT77GBF_yHKBIDvc4Q/_buildManifest.js",
+ "static/HOMmT77GBF_yHKBIDvc4Q/_ssgManifest.js"
],
"rootMainFiles": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/4bd1b696-2683f5a71cc09935.js",
- "static/chunks/1684-d33e5663462f625f.js",
- "static/chunks/main-app-eac23abd81400eeb.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/4bd1b696-100b9d70ed4e49c1.js",
+ "static/chunks/1255-8befde0980f5cba9.js",
+ "static/chunks/main-app-6796e1116c8e92de.js"
],
"rootMainFilesTree": {},
"pages": {
"/_app": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/framework-744b75979ac08316.js",
- "static/chunks/main-bbe4e11ff27a3bdc.js",
- "static/chunks/pages/_app-5d1abe03d322390c.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/framework-bd61ec64032c2de7.js",
+ "static/chunks/main-73443a1a35107593.js",
+ "static/chunks/pages/_app-4b3fb5e477a0267f.js"
],
"/_error": [
- "static/chunks/webpack-0af5272a654ff228.js",
- "static/chunks/framework-744b75979ac08316.js",
- "static/chunks/main-bbe4e11ff27a3bdc.js",
- "static/chunks/pages/_error-3b2a1d523de49635.js"
+ "static/chunks/webpack-d5fcaaeea5d59391.js",
+ "static/chunks/framework-bd61ec64032c2de7.js",
+ "static/chunks/main-73443a1a35107593.js",
+ "static/chunks/pages/_error-c970d8b55ace1b48.js"
]
},
"ampFirstPages": []
diff --git a/.next/prerender-manifest.json b/.next/prerender-manifest.json
index 2d0e51b6363cd3d0a52a29cd34c2247dc89854ef..d182a78371ed022b9f9af5efb87c8ff27c449236 100644
--- a/.next/prerender-manifest.json
+++ b/.next/prerender-manifest.json
@@ -1,11 +1,12 @@
{
"version": 4,
"routes": {
- "/admin/login": {
+ "/_not-found": {
+ "initialStatus": 404,
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -14,8 +15,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin/login",
- "dataRoute": "/admin/login.rsc",
+ "srcRoute": "/_not-found",
+ "dataRoute": "/_not-found.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -25,11 +26,11 @@
"x-next-revalidate-tag-token"
]
},
- "/admin": {
+ "/admin/login": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -38,8 +39,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin",
- "dataRoute": "/admin.rsc",
+ "srcRoute": "/admin/login",
+ "dataRoute": "/admin/login.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -49,11 +50,11 @@
"x-next-revalidate-tag-token"
]
},
- "/admin/dashboard": {
+ "/admin": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -62,8 +63,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin/dashboard",
- "dataRoute": "/admin/dashboard.rsc",
+ "srcRoute": "/admin",
+ "dataRoute": "/admin.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -77,7 +78,7 @@
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -101,7 +102,7 @@
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -121,11 +122,11 @@
"x-next-revalidate-tag-token"
]
},
- "/admin/sites": {
+ "/admin/templates": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -134,8 +135,32 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin/sites",
- "dataRoute": "/admin/sites.rsc",
+ "srcRoute": "/admin/templates",
+ "dataRoute": "/admin/templates.rsc",
+ "allowHeader": [
+ "host",
+ "x-matched-path",
+ "x-prerender-revalidate",
+ "x-prerender-revalidate-if-generated",
+ "x-next-revalidated-tags",
+ "x-next-revalidate-tag-token"
+ ]
+ },
+ "/": {
+ "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",
@@ -149,7 +174,7 @@
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -169,11 +194,11 @@
"x-next-revalidate-tag-token"
]
},
- "/test-generation": {
+ "/admin/settings": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -182,8 +207,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/test-generation",
- "dataRoute": "/test-generation.rsc",
+ "srcRoute": "/admin/settings",
+ "dataRoute": "/admin/settings.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -193,11 +218,11 @@
"x-next-revalidate-tag-token"
]
},
- "/": {
+ "/admin/dashboard": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -206,8 +231,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/",
- "dataRoute": "/index.rsc",
+ "srcRoute": "/admin/dashboard",
+ "dataRoute": "/admin/dashboard.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -221,7 +246,7 @@
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -241,11 +266,11 @@
"x-next-revalidate-tag-token"
]
},
- "/admin/settings": {
+ "/admin/sites": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -254,8 +279,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin/settings",
- "dataRoute": "/admin/settings.rsc",
+ "srcRoute": "/admin/sites",
+ "dataRoute": "/admin/sites.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -265,11 +290,11 @@
"x-next-revalidate-tag-token"
]
},
- "/admin/templates": {
+ "/test-generation": {
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -278,8 +303,8 @@
}
],
"initialRevalidateSeconds": false,
- "srcRoute": "/admin/templates",
- "dataRoute": "/admin/templates.rsc",
+ "srcRoute": "/test-generation",
+ "dataRoute": "/test-generation.rsc",
"allowHeader": [
"host",
"x-matched-path",
@@ -293,7 +318,7 @@
"experimentalBypassFor": [
{
"type": "header",
- "key": "Next-Action"
+ "key": "next-action"
},
{
"type": "header",
@@ -317,8 +342,8 @@
"dynamicRoutes": {},
"notFoundRoutes": [],
"preview": {
- "previewModeId": "3c6a399bd375b1a25a32e18ea884a6fd",
- "previewModeSigningKey": "3ab0043bee3e91e21c7cfcaff4f20aba0ad7c38cdd17b8ebe4d8a8d37bbe23eb",
- "previewModeEncryptionKey": "5dfc075df6dde922383918b95853dc3e2c19920fcba6bf8ca46d8ae0d9ced820"
+ "previewModeId": "176af8411e27bc6e8d9b293d8c86dbc0",
+ "previewModeSigningKey": "7dfa713bb26ff97c73a19435245dac10784d4a44df6f416a7bb630a0e86ea529",
+ "previewModeEncryptionKey": "23ec5d0546038def6e70308a3d431a4fcd7e1b15ff54a517bab5e4a9c07396d5"
}
}
\ No newline at end of file
diff --git a/.next/react-loadable-manifest.json b/.next/react-loadable-manifest.json
index eaaf1354a680f993ea7377ed4da806147b86ce99..7528f3f34f9534ab04a7b6aaf1ee3a0b634c45d7 100644
--- a/.next/react-loadable-manifest.json
+++ b/.next/react-loadable-manifest.json
@@ -1,54 +1,54 @@
{
"components/file-explorer/index.tsx -> @/lib/vfs/skills": {
- "id": 12277,
+ "id": 39336,
"files": []
},
"components/guided-tour/context.tsx -> @/lib/vfs": {
- "id": 14250,
+ "id": 94318,
"files": []
},
"components/guided-tour/context.tsx -> @/lib/vfs/project-templates": {
- "id": 18555,
+ "id": 98752,
"files": []
},
"components/heatmap-viewer/index.tsx -> @/lib/utils/screenshot": {
- "id": 37940,
+ "id": 3169,
"files": []
},
"components/views/content-area.tsx -> @/lib/vfs": {
- "id": 14250,
+ "id": 94318,
"files": []
},
"lib/llm/debug-events-state.ts -> @/lib/vfs": {
- "id": 14250,
+ "id": 94318,
"files": []
},
"lib/vfs/adapters/factory.ts -> ./sqlite-adapter": {
- "id": 30845,
+ "id": 87739,
"files": [
- "static/chunks/aaea2bcf.ecfc8abc06b729b3.js",
- "static/chunks/9715.5b198f01a6fea451.js",
- "static/chunks/845.03eaee8d92d2c75b.js"
+ "static/chunks/aaea2bcf.143d3b0dc8132bc4.js",
+ "static/chunks/8231.2a53dd09caf3dd99.js",
+ "static/chunks/7739.fd0ea8365b972f8b.js"
]
},
"lib/vfs/backup-service.ts -> @/lib/vfs": {
- "id": 14250,
+ "id": 94318,
"files": []
},
"lib/vfs/cli-shell.ts -> ./index": {
- "id": 14250,
+ "id": 94318,
"files": []
},
"lib/vfs/index.ts -> ./auto-sync": {
- "id": 27709,
+ "id": 37714,
"files": [
- "static/chunks/7709.a8a5b7a05b05f3e4.js"
+ "static/chunks/7714.ccb74eca63677a95.js"
]
},
"lib/vfs/index.ts -> ./server-context": {
- "id": 9177,
+ "id": 91577,
"files": [
- "static/chunks/9177.447ca5fc3e015eaf.js"
+ "static/chunks/1577.e77ffd50962a74af.js"
]
}
}
\ No newline at end of file
diff --git a/.next/required-server-files.json b/.next/required-server-files.json
index 539068663a2a273b5f40e8d90457ebe039afda61..84883608477bf7890de501ced76419ff3db2a26e 100644
--- a/.next/required-server-files.json
+++ b/.next/required-server-files.json
@@ -9,6 +9,7 @@
"ignoreBuildErrors": false,
"tsconfigPath": "tsconfig.json"
},
+ "typedRoutes": false,
"distDir": ".next",
"cleanDistDir": true,
"assetPrefix": "",
@@ -83,6 +84,7 @@
"keepAlive": true
},
"logging": {},
+ "compiler": {},
"expireTime": 31536000,
"staticPageGenerationTimeout": 60,
"output": "standalone",
@@ -96,7 +98,7 @@
},
"outputFileTracingRoot": "/Users/otto/Desktop/deepstudio/osw-studio-git",
"experimental": {
- "nodeMiddleware": false,
+ "useSkewCookie": false,
"cacheLife": {
"default": {
"stale": 300,
@@ -104,7 +106,7 @@
"expire": 4294967294
},
"seconds": {
- "stale": 0,
+ "stale": 30,
"revalidate": 1,
"expire": 60
},
@@ -144,6 +146,7 @@
"linkNoTouchStart": false,
"caseSensitiveRoutes": false,
"clientSegmentCache": false,
+ "clientParamParsing": false,
"dynamicOnHover": false,
"preloadEntriesOnStart": true,
"clientRouterFilter": true,
@@ -158,6 +161,7 @@
"imgOptTimeoutInSeconds": 7,
"imgOptMaxInputPixels": 268402689,
"imgOptSequentialRead": null,
+ "imgOptSkipMetadata": null,
"isrFlushToDisk": true,
"workerThreads": false,
"optimizeCss": false,
@@ -172,7 +176,6 @@
"swcTraceProfiling": false,
"forceSwcTransforms": false,
"largePageDataBytes": 128000,
- "typedRoutes": false,
"typedEnv": false,
"parallelServerCompiles": false,
"parallelServerBuildTraces": false,
@@ -180,9 +183,10 @@
"authInterrupts": false,
"webpackMemoryOptimizations": false,
"optimizeServerReact": true,
- "useEarlyImport": false,
"viewTransition": false,
"routerBFCache": false,
+ "removeUncaughtErrorAndRejectionListeners": false,
+ "validateRSCRequestHeaders": false,
"staleTimes": {
"dynamic": 0,
"static": 300
@@ -190,9 +194,14 @@
"serverComponentsHmrCache": true,
"staticGenerationMaxConcurrency": 8,
"staticGenerationMinPagesPerWorker": 25,
- "dynamicIO": false,
+ "cacheComponents": false,
"inlineCss": false,
"useCache": false,
+ "globalNotFound": false,
+ "devtoolSegmentExplorer": true,
+ "browserDebugInfoInTerminal": false,
+ "optimizeRouterScrolling": false,
+ "middlewareClientMaxBodySize": 10485760,
"optimizePackageImports": [
"lucide-react",
"date-fns",
@@ -224,10 +233,10 @@
"@effect/sql-mssql",
"@effect/sql-mysql2",
"@effect/sql-pg",
- "@effect/sql-squlite-node",
- "@effect/sql-squlite-bun",
- "@effect/sql-squlite-wasm",
- "@effect/sql-squlite-react-native",
+ "@effect/sql-sqlite-node",
+ "@effect/sql-sqlite-bun",
+ "@effect/sql-sqlite-wasm",
+ "@effect/sql-sqlite-react-native",
"@effect/rpc",
"@effect/rpc-http",
"@effect/typeclass",
@@ -273,7 +282,7 @@
"trustHostHeader": false,
"isExperimentalCompile": false
},
- "htmlLimitedBots": "Mediapartners-Google|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",
+ "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",
"serverExternalPackages": [
@@ -322,7 +331,8 @@
".next/server/server-reference-manifest.json",
".next/BUILD_ID",
".next/server/next-font-manifest.js",
- ".next/server/next-font-manifest.json"
+ ".next/server/next-font-manifest.json",
+ ".next/required-server-files.json"
],
"ignore": [
"node_modules/next/dist/compiled/@ampproject/toolbox-optimizer/**/*"
diff --git a/.next/routes-manifest.json b/.next/routes-manifest.json
index d8a863ea842c3d5985af23cf53c031743a1fb10b..599f9f2dd9155e7a481a5f4c963daf582b4df1d3 100644
--- a/.next/routes-manifest.json
+++ b/.next/routes-manifest.json
@@ -13,6 +13,27 @@
}
],
"headers": [],
+ "rewrites": {
+ "beforeFiles": [],
+ "afterFiles": [
+ {
+ "source": "/sites/:projectId",
+ "destination": "/sites/:projectId/index.html",
+ "regex": "^/sites(?:/([^/]+?))(?:/)?$"
+ },
+ {
+ "source": "/sites/:projectId/",
+ "destination": "/sites/:projectId/index.html",
+ "regex": "^/sites(?:/([^/]+?))/(?:/)?$"
+ },
+ {
+ "source": "/sites/:projectId/:path([^.]+)",
+ "destination": "/sites/:projectId/:path.html",
+ "regex": "^/sites(?:/([^/]+?))(?:/([^.]+))(?:/)?$"
+ }
+ ],
+ "fallback": []
+ },
"dynamicRoutes": [
{
"page": "/api/admin/sites/[id]/database/logs",
@@ -365,36 +386,19 @@
],
"dataRoutes": [],
"rsc": {
- "header": "RSC",
- "varyHeader": "RSC, Next-Router-State-Tree, Next-Router-Prefetch, Next-Router-Segment-Prefetch",
- "prefetchHeader": "Next-Router-Prefetch",
+ "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",
"prefetchSuffix": ".prefetch.rsc",
- "prefetchSegmentHeader": "Next-Router-Segment-Prefetch",
+ "prefetchSegmentHeader": "next-router-segment-prefetch",
"prefetchSegmentSuffix": ".segment.rsc",
"prefetchSegmentDirSuffix": ".segments"
},
"rewriteHeaders": {
"pathHeader": "x-nextjs-rewritten-path",
"queryHeader": "x-nextjs-rewritten-query"
- },
- "rewrites": [
- {
- "source": "/sites/:projectId",
- "destination": "/sites/:projectId/index.html",
- "regex": "^/sites(?:/([^/]+?))(?:/)?$"
- },
- {
- "source": "/sites/:projectId/",
- "destination": "/sites/:projectId/index.html",
- "regex": "^/sites(?:/([^/]+?))/(?:/)?$"
- },
- {
- "source": "/sites/:projectId/:path([^.]+)",
- "destination": "/sites/:projectId/:path.html",
- "regex": "^/sites(?:/([^/]+?))(?:/([^.]+))(?:/)?$"
- }
- ]
+ }
}
\ No newline at end of file
diff --git a/.next/server/app-paths-manifest.json b/.next/server/app-paths-manifest.json
index 9f44fbbaf45a2db05f8015165dc5e88573ce7b81..6f7b965d6f401abef80b0db8e86a8d16ea25c155 100644
--- a/.next/server/app-paths-manifest.json
+++ b/.next/server/app-paths-manifest.json
@@ -1,67 +1,67 @@
{
"/_not-found/page": "app/_not-found/page.js",
- "/api/admin/sites/[id]/database/logs/route": "app/api/admin/sites/[id]/database/logs/route.js",
- "/api/admin/sites/[id]/database/schema/route": "app/api/admin/sites/[id]/database/schema/route.js",
"/api/admin/sites/[id]/database/query/route": "app/api/admin/sites/[id]/database/query/route.js",
"/api/admin/sites/[id]/functions/[functionId]/logs/route": "app/api/admin/sites/[id]/functions/[functionId]/logs/route.js",
- "/api/admin/sites/[id]/functions/[functionId]/route": "app/api/admin/sites/[id]/functions/[functionId]/route.js",
- "/api/admin/sites/[id]/secrets/route": "app/api/admin/sites/[id]/secrets/route.js",
"/api/admin/run-migrations/route": "app/api/admin/run-migrations/route.js",
- "/api/admin/sites/[id]/secrets/[secretId]/route": "app/api/admin/sites/[id]/secrets/[secretId]/route.js",
+ "/api/admin/sites/[id]/database/logs/route": "app/api/admin/sites/[id]/database/logs/route.js",
+ "/api/admin/sites/[id]/database/schema/route": "app/api/admin/sites/[id]/database/schema/route.js",
"/api/admin/dashboard/route": "app/api/admin/dashboard/route.js",
- "/api/admin/sites/[id]/server-context/mutate/route": "app/api/admin/sites/[id]/server-context/mutate/route.js",
- "/api/admin/sites/[id]/server-functions/[functionId]/route": "app/api/admin/sites/[id]/server-functions/[functionId]/route.js",
+ "/api/admin/sites/[id]/secrets/[secretId]/route": "app/api/admin/sites/[id]/secrets/[secretId]/route.js",
"/api/admin/sites/[id]/functions/route": "app/api/admin/sites/[id]/functions/route.js",
+ "/api/admin/sites/[id]/secrets/route": "app/api/admin/sites/[id]/secrets/route.js",
"/api/admin/sites/[id]/server-functions/route": "app/api/admin/sites/[id]/server-functions/route.js",
"/api/admin/sites/[id]/server-context/route": "app/api/admin/sites/[id]/server-context/route.js",
+ "/api/admin/sites/[id]/server-functions/[functionId]/route": "app/api/admin/sites/[id]/server-functions/[functionId]/route.js",
+ "/api/admin/sites/[id]/server-context/mutate/route": "app/api/admin/sites/[id]/server-context/mutate/route.js",
"/api/analytics/[siteId]/clear/route": "app/api/analytics/[siteId]/clear/route.js",
"/api/analytics/[siteId]/engagement/route": "app/api/analytics/[siteId]/engagement/route.js",
- "/api/analytics/[siteId]/export/route": "app/api/analytics/[siteId]/export/route.js",
"/api/analytics/[siteId]/heatmap/route": "app/api/analytics/[siteId]/heatmap/route.js",
- "/api/analytics/[siteId]/storage/route": "app/api/analytics/[siteId]/storage/route.js",
+ "/api/admin/sites/[id]/functions/[functionId]/route": "app/api/admin/sites/[id]/functions/[functionId]/route.js",
"/api/analytics/[siteId]/route": "app/api/analytics/[siteId]/route.js",
- "/api/analytics/interaction/route": "app/api/analytics/interaction/route.js",
- "/api/auth/check/route": "app/api/auth/check/route.js",
+ "/api/analytics/[siteId]/storage/route": "app/api/analytics/[siteId]/storage/route.js",
+ "/api/analytics/[siteId]/sessions/route": "app/api/analytics/[siteId]/sessions/route.js",
"/api/analytics/[siteId]/overview/route": "app/api/analytics/[siteId]/overview/route.js",
- "/api/auth/login/route": "app/api/auth/login/route.js",
+ "/api/analytics/interaction/route": "app/api/analytics/interaction/route.js",
+ "/api/analytics/track/route": "app/api/analytics/track/route.js",
+ "/api/analytics/[siteId]/export/route": "app/api/analytics/[siteId]/export/route.js",
"/api/docs/[...path]/route": "app/api/docs/[...path]/route.js",
+ "/api/generate/route": "app/api/generate/route.js",
"/api/auth/logout/route": "app/api/auth/logout/route.js",
"/api/auth/me/route": "app/api/auth/me/route.js",
- "/api/analytics/[siteId]/sessions/route": "app/api/analytics/[siteId]/sessions/route.js",
- "/api/projects/[id]/sites/route": "app/api/projects/[id]/sites/route.js",
- "/api/generate/route": "app/api/generate/route.js",
+ "/api/auth/check/route": "app/api/auth/check/route.js",
+ "/api/auth/login/route": "app/api/auth/login/route.js",
+ "/api/sites/[id]/publish/route": "app/api/sites/[id]/publish/route.js",
"/api/models/route": "app/api/models/route.js",
- "/api/projects/route": "app/api/projects/route.js",
"/api/shell/execute/route": "app/api/shell/execute/route.js",
- "/api/analytics/track/route": "app/api/analytics/track/route.js",
- "/api/sites/[id]/publish/route": "app/api/sites/[id]/publish/route.js",
- "/api/sites/[id]/thumbnail/route": "app/api/sites/[id]/thumbnail/route.js",
+ "/api/projects/route": "app/api/projects/route.js",
"/api/sites/[id]/route": "app/api/sites/[id]/route.js",
- "/api/sync/projects/[id]/route": "app/api/sync/projects/[id]/route.js",
+ "/api/projects/[id]/sites/route": "app/api/projects/[id]/sites/route.js",
"/api/sites/[id]/settings/route": "app/api/sites/[id]/settings/route.js",
- "/api/sites/route": "app/api/sites/route.js",
- "/api/sync/projects/route": "app/api/sync/projects/route.js",
"/api/sync/files/route": "app/api/sync/files/route.js",
- "/api/sync/templates/[id]/route": "app/api/sync/templates/[id]/route.js",
+ "/api/sync/projects/[id]/route": "app/api/sync/projects/[id]/route.js",
+ "/api/sync/projects/route": "app/api/sync/projects/route.js",
"/api/sync/templates/route": "app/api/sync/templates/route.js",
+ "/api/sites/route": "app/api/sites/route.js",
"/api/sync/skills/route": "app/api/sync/skills/route.js",
+ "/api/sites/[id]/thumbnail/route": "app/api/sites/[id]/thumbnail/route.js",
+ "/api/sync/skills/[id]/route": "app/api/sync/skills/[id]/route.js",
"/api/sync/status/route": "app/api/sync/status/route.js",
+ "/api/sync/templates/[id]/route": "app/api/sync/templates/[id]/route.js",
"/api/validate-key/route": "app/api/validate-key/route.js",
- "/api/sync/skills/[id]/route": "app/api/sync/skills/[id]/route.js",
"/sites/[id]/route": "app/sites/[id]/route.js",
"/sites/[id]/[...path]/route": "app/sites/[id]/[...path]/route.js",
+ "/api/sites/[id]/functions/[...path]/route": "app/api/sites/[id]/functions/[...path]/route.js",
"/admin/docs/page": "app/admin/docs/page.js",
- "/admin/dashboard/page": "app/admin/dashboard/page.js",
"/admin/login/page": "app/admin/login/page.js",
+ "/admin/dashboard/page": "app/admin/dashboard/page.js",
"/admin/projects/page": "app/admin/projects/page.js",
- "/admin/settings/model/page": "app/admin/settings/model/page.js",
- "/admin/page": "app/admin/page.js",
"/admin/settings/application/page": "app/admin/settings/application/page.js",
+ "/admin/skills/page": "app/admin/skills/page.js",
+ "/admin/page": "app/admin/page.js",
"/admin/settings/page": "app/admin/settings/page.js",
"/admin/sites/page": "app/admin/sites/page.js",
- "/admin/skills/page": "app/admin/skills/page.js",
"/admin/templates/page": "app/admin/templates/page.js",
+ "/admin/settings/model/page": "app/admin/settings/model/page.js",
"/page": "app/page.js",
- "/api/sites/[id]/functions/[...path]/route": "app/api/sites/[id]/functions/[...path]/route.js",
"/test-generation/page": "app/test-generation/page.js"
}
\ No newline at end of file
diff --git a/.next/server/app/_not-found.html b/.next/server/app/_not-found.html
index 0856c9a1631ba66fcec4e285843baae13f9fce4c..e7087fc20728cf72ebfb60ee07fbca45019dbdae 100644
--- a/.next/server/app/_not-found.html
+++ b/.next/server/app/_not-found.html
@@ -1 +1 @@
-
404: This page could not be found. Open Source Web Studio | Agentic AI Development 🎨
404
This page could not be found.
\ No newline at end of file
+404: This page could not be found. Open Source Web Studio | Agentic AI Development 🎨
404
This page could not be found.
\ No newline at end of file
diff --git a/.next/server/app/_not-found.rsc b/.next/server/app/_not-found.rsc
index 6150b7549b1ed7bdd0b5d92ff0aa75fde64d9eb8..bd27c9121ce7509efca6e4a0d75831860cc6d80d 100644
--- a/.next/server/app/_not-found.rsc
+++ b/.next/server/app/_not-found.rsc
@@ -1,24 +1,22 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[59665,[],"OutletBoundary"]
-a:I[74911,[],"AsyncMetadataOutlet"]
-c:I[59665,[],"ViewportBoundary"]
-e:I[59665,[],"MetadataBoundary"]
-10:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[24431,[],"OutletBoundary"]
+9:I[15278,[],"AsyncMetadataOutlet"]
+b:I[24431,[],"ViewportBoundary"]
+d:I[24431,[],"MetadataBoundary"]
+e:"$Sreact.suspense"
+10:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:1:props:children:1:props:children:props:children:props:children:1:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],null,["$","$L7",null,{"children":["$L8","$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$1","MFjFTYaWZb-PudzcdCKaYv",{"children":[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Le",null,{"children":"$Lf"}]]}],false]],"m":"$undefined","G":["$10","$undefined"],"s":false,"S":true}
-11:"$Sreact.suspense"
-12:I[74911,[],"AsyncMetadata"]
-f:["$","div",null,{"hidden":true,"children":["$","$11",null,{"fallback":null,"children":["$","$L12",null,{"promise":"$@13"}]}]}]
-9:null
-d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","_not-found"],"i":false,"f":[[["",{"children":["/_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["/_not-found",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L7",null,{"children":["$L8",["$","$L9",null,{"promise":"$@a"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],[["$","$Lb",null,{"children":"$Lc"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Ld",null,{"children":["$","div",null,{"hidden":true,"children":["$","$e",null,{"fallback":null,"children":"$Lf"}]}]}]]}],false]],"m":"$undefined","G":["$10",[]],"s":false,"S":true}
+c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
8:null
-b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-13:{"metadata":"$b:metadata","error":null,"digest":"$undefined"}
+11:I[80622,[],"IconMark"]
+a:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L11","20",{}]],"error":null,"digest":"$undefined"}
+f:"$a:metadata"
diff --git a/.next/server/app/_not-found/page.js b/.next/server/app/_not-found/page.js
index 3e3b0e7faf79c90a0150b3941570154ff4635a7d..e97235afcd68e13814d7e14ca141c7cc02da2e45 100644
--- a/.next/server/app/_not-found/page.js
+++ b/.next/server/app/_not-found/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=9492,e.ids=[9492],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10716:(e,t,o)=>{Promise.resolve().then(o.t.bind(o,86346,23)),Promise.resolve().then(o.t.bind(o,27924,23)),Promise.resolve().then(o.t.bind(o,35656,23)),Promise.resolve().then(o.t.bind(o,40099,23)),Promise.resolve().then(o.t.bind(o,38243,23)),Promise.resolve().then(o.t.bind(o,28827,23)),Promise.resolve().then(o.t.bind(o,62763,23)),Promise.resolve().then(o.t.bind(o,97173,23))},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},39035:(e,t,o)=>{"use strict";o.d(t,{ThemeProvider:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},41900:(e,t,o)=>{"use strict";o.d(t,{default:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},52572:(e,t,o)=>{Promise.resolve().then(o.t.bind(o,16444,23)),Promise.resolve().then(o.t.bind(o,16042,23)),Promise.resolve().then(o.t.bind(o,88170,23)),Promise.resolve().then(o.t.bind(o,49477,23)),Promise.resolve().then(o.t.bind(o,29345,23)),Promise.resolve().then(o.t.bind(o,12089,23)),Promise.resolve().then(o.t.bind(o,46577,23)),Promise.resolve().then(o.t.bind(o,31307,23))},53014:(e,t,o)=>{"use strict";o.d(t,{default:()=>i});var r=o(60687),n=o(26553),s=o(8693);function i({children:e}){let t=new n.E;return(0,r.jsx)(s.Ht,{client:t,children:e})}},54920:(e,t,o)=>{Promise.resolve().then(o.bind(o,53014)),Promise.resolve().then(o.bind(o,99197)),Promise.resolve().then(o.bind(o,94593))},58014:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>m,metadata:()=>p,viewport:()=>c});var r=o(37413),n=o(95474),s=o.n(n),i=o(31015),a=o.n(i),l=o(41900),d=o(39035);o(94348);var u=o(80363);let p={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},c={initialScale:1,maximumScale:1,themeColor:"#000000"};function m({children:e}){return(0,r.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,r.jsx)("body",{className:`${s().variable} ${a().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,r.jsxs)(d.ThemeProvider,{children:[(0,r.jsx)(u.Toaster,{richColors:!0,position:"bottom-center"}),(0,r.jsx)(l.default,{children:e})]})})})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},80363:(e,t,o)=>{"use strict";o.d(t,{Toaster:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},84675:(e,t,o)=>{"use strict";o.r(t),o.d(t,{GlobalError:()=>i.a,__next_app__:()=>p,pages:()=>u,routeModule:()=>c,tree:()=>d});var r=o(65239),n=o(48088),s=o(88170),i=o.n(s),a=o(30893),l={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>a[e]);o.d(t,l);let d={children:["",{children:["/_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(o.t.bind(o,57398,23)),"next/dist/client/components/not-found-error"]}]},{}]},{layout:[()=>Promise.resolve().then(o.bind(o,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(o.t.bind(o,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(o.t.bind(o,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(o.t.bind(o,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,u=[],p={require:o,loadChunk:()=>Promise.resolve()},c=new r.AppPageRouteModule({definition:{kind:n.RouteKind.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},91368:(e,t,o)=>{Promise.resolve().then(o.bind(o,41900)),Promise.resolve().then(o.bind(o,39035)),Promise.resolve().then(o.bind(o,80363))},94348:()=>{},94593:(e,t,o)=>{"use strict";o.d(t,{Toaster:()=>i});var r=o(60687),n=o(10218),s=o(52581);let i=({...e})=>{let{theme:t}=(0,n.D)();return(0,r.jsx)(s.l$,{theme:t,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...e})}},99197:(e,t,o)=>{"use strict";o.d(t,{ThemeProvider:()=>s});var r=o(60687);o(43210);var n=o(10218);function s({children:e,attribute:t="class",defaultTheme:o="dark",enableSystem:s=!0,storageKey:i="osw-studio-theme",...a}){return(0,r.jsx)(n.N,{attribute:t,defaultTheme:o,enableSystem:s,storageKey:i,disableTransitionOnChange:!0,...a,children:e})}}};var t=require("../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),r=t.X(0,[4447,8055],()=>o(84675));module.exports=r})();
\ No newline at end of file
+(()=>{var a={};a.id=9492,a.ids=[9492],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16953:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>l,viewport:()=>m});var d=c(75338),e=c(17092),f=c.n(e),g=c(35385),h=c.n(g),i=c(69507),j=c(26262);c(94348);var k=c(20656);let l={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},m={initialScale:1,maximumScale:1,themeColor:"#000000"};function n({children:a}){return(0,d.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,d.jsxs)(j.ThemeProvider,{children:[(0,d.jsx)(k.Toaster,{richColors:!0,position:"bottom-center"}),(0,d.jsx)(i.default,{children:a})]})})})}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20656:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},26262:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35704:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},38502:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>g});var d=c(21124),e=c(45523),f=c(42830);let g=({...a})=>{let{theme:b}=(0,e.D)();return(0,d.jsx)(f.l$,{theme:b,className:"toaster group",closeButton:!0,style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},45432:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},54920:(a,b,c)=>{Promise.resolve().then(c.bind(c,83133)),Promise.resolve().then(c.bind(c,67600)),Promise.resolve().then(c.bind(c,38502))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67600:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(21124);c(38301);var e=c(45523);function f({children:a,attribute:b="class",defaultTheme:c="dark",enableSystem:f=!0,storageKey:g="osw-studio-theme",...h}){return(0,d.jsx)(e.N,{attribute:b,defaultTheme:c,enableSystem:f,storageKey:g,disableTransitionOnChange:!0,...h,children:a})}},69507:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},82079:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["/_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=[],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/_not-found/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},83133:(a,b,c)=>{"use strict";c.d(b,{default:()=>g});var d=c(21124),e=c(62806),f=c(96610);function g({children:a}){let b=new e.E;return(0,d.jsx)(f.Ht,{client:b,children:a})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91368:(a,b,c)=>{Promise.resolve().then(c.bind(c,69507)),Promise.resolve().then(c.bind(c,26262)),Promise.resolve().then(c.bind(c,20656))},94348:()=>{}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495],()=>b(b.s=82079));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page.js.nft.json b/.next/server/app/_not-found/page.js.nft.json
index 99a9c00592ebcfd9966fb119f30779d09806bd21..9942162f87594dc184ec46e4d3101b0ebbbfef58 100644
--- a/.next/server/app/_not-found/page.js.nft.json
+++ b/.next/server/app/_not-found/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/package.json","../../../package.json","../../chunks/4447.js","../../chunks/8055.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../package.json","../../chunks/4586.js","../../chunks/495.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page_client-reference-manifest.js b/.next/server/app/_not-found/page_client-reference-manifest.js
index 03b534b7697933fad7343ee7957578c4c5683846..2a196cf587bd69e302952d9c802462c2181fc21a 100644
--- a/.next/server/app/_not-found/page_client-reference-manifest.js
+++ b/.next/server/app/_not-found/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/_not-found/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/_not-found/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin.html b/.next/server/app/admin.html
index 2f5063d822c2997620d43347d5b0ce3b2c9d10ef..961864857231b3ac1242afe5dce5ed5defae4341 100644
--- a/.next/server/app/admin.html
+++ b/.next/server/app/admin.html
@@ -1 +1 @@
-Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
diff --git a/.next/server/app/admin.rsc b/.next/server/app/admin.rsc
index 5166c017f61f1048d2604625dce339ab1de3509c..a21b0ac8d88df6c9c18421ad948c0d39d2e5ca4b 100644
--- a/.next/server/app/admin.rsc
+++ b/.next/server/app/admin.rsc
@@ -1,28 +1,26 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[90894,[],"ClientPageRoot"]
-8:I[57161,["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"default"]
-b:I[59665,[],"OutletBoundary"]
-e:I[74911,[],"AsyncMetadataOutlet"]
-10:I[59665,[],"ViewportBoundary"]
-12:I[59665,[],"MetadataBoundary"]
-14:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[81959,[],"ClientPageRoot"]
+8:I[25782,["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"default"]
+b:I[24431,[],"OutletBoundary"]
+d:I[15278,[],"AsyncMetadataOutlet"]
+f:I[24431,[],"ViewportBoundary"]
+11:I[24431,[],"MetadataBoundary"]
+12:"$Sreact.suspense"
+14:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin"],"i":false,"f":[[["",{"children":["admin",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","ElwCyAYgONGkkpyYQdtN_v",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L12",null,{"children":"$L13"}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true}
-15:"$Sreact.suspense"
-16:I[74911,[],"AsyncMetadata"]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin"],"i":false,"f":[[["",{"children":["admin",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
9:{}
-a:{}
-13:["$","div",null,{"hidden":true,"children":["$","$15",null,{"fallback":null,"children":["$","$L16",null,{"promise":"$@17"}]}]}]
-d:null
-11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+a:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
+10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
c:null
-f:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-17:{"metadata":"$f:metadata","error":null,"digest":"$undefined"}
+15:I[80622,[],"IconMark"]
+e:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L15","20",{}]],"error":null,"digest":"$undefined"}
+13:"$e:metadata"
diff --git a/.next/server/app/admin/dashboard.html b/.next/server/app/admin/dashboard.html
index 94eb79a0b19c61f9e739e703ff181ac7ddb9141d..fff8a2f7de32a7d01c05e8d4d30fa0f9455cec7b 100644
--- a/.next/server/app/admin/dashboard.html
+++ b/.next/server/app/admin/dashboard.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Dashboard
\ No newline at end of file
diff --git a/.next/server/app/admin/dashboard.rsc b/.next/server/app/admin/dashboard.rsc
index 1302280eadbb3cbe34256115494c3ef7f2755977..fa1fa7f7ce762c1201d8bf499de7b5b9f6e91734 100644
--- a/.next/server/app/admin/dashboard.rsc
+++ b/.next/server/app/admin/dashboard.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","5957","static/chunks/app/admin/dashboard/page-fbd6d62ec0a157c3.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","5957","static/chunks/app/admin/dashboard/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","dashboard"],"i":false,"f":[[["",{"children":["admin",{"children":["dashboard",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"dashboard"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","SzExguXqZbdNJZRKbGkqTv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","dashboard"],"i":false,"f":[[["",{"children":["admin",{"children":["dashboard",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["dashboard",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"dashboard"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/dashboard/page.js b/.next/server/app/admin/dashboard/page.js
index a5e1027b834cd11aae5331e74cff7a6657681d74..a5910c6c1fe811b1f5c28c8b04ccbb735f72bd99 100644
--- a/.next/server/app/admin/dashboard/page.js
+++ b/.next/server/app/admin/dashboard/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=5957,e.ids=[5957],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,r,t)=>{Promise.resolve().then(t.bind(t,36903))},36903:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>s});let s=(0,t(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},41389:(e,r,t)=>{"use strict";t.r(r),t.d(r,{GlobalError:()=>i.a,__next_app__:()=>l,pages:()=>u,routeModule:()=>c,tree:()=>p});var s=t(65239),o=t(48088),n=t(88170),i=t.n(n),a=t(30893),d={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(d[e]=()=>a[e]);t.d(r,d);let p={children:["",{children:["admin",{children:["dashboard",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(t.bind(t,61186)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(t.bind(t,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(t.t.bind(t,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(t.t.bind(t,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(t.t.bind(t,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,u=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page.tsx"],l={require:t,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/dashboard/page",pathname:"/admin/dashboard",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:p}})},55511:e=>{"use strict";e.exports=require("crypto")},61186:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>n});var s=t(37413),o=t(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"dashboard"})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,r,t)=>{Promise.resolve().then(t.bind(t,69001))},69001:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>c});var s=t(60687),o=t(43210),n=t(11755),i=t(80021),a=t(35157),d=t(2565),p=t(13265),u=t(96597);function l({view:e,settingsTab:r}){let[t,d]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=t?(0,s.jsx)(a.a,{project:t,onBack:()=>d(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:d,settingsTab:r});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:d,onOpenAbout:()=>c(!0),showSidebar:!t,children:x}),(0,s.jsx)(p.V,{location:"global"}),(0,s.jsx)(u.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:r}){return(0,s.jsx)(d.g,{children:(0,s.jsx)(l,{view:e,settingsTab:r})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4447,8055,329,4390,3640,1123],()=>t(41389));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=5957,a.ids=[5957],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5549:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"dashboard"})}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},71912:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["dashboard",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,5549)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/dashboard/page",pathname:"/admin/dashboard",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/dashboard/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=71912));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/dashboard/page.js.nft.json b/.next/server/app/admin/dashboard/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/dashboard/page.js.nft.json
+++ b/.next/server/app/admin/dashboard/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/dashboard/page_client-reference-manifest.js b/.next/server/app/admin/dashboard/page_client-reference-manifest.js
index 64dfb5d0334eb9370ac42332f2ab35153083a837..4de5f919d83abb1a45aba6da0d30c679625d1a7f 100644
--- a/.next/server/app/admin/dashboard/page_client-reference-manifest.js
+++ b/.next/server/app/admin/dashboard/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/dashboard/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","5957","static/chunks/app/admin/dashboard/page-fbd6d62ec0a157c3.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/dashboard/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","5957","static/chunks/app/admin/dashboard/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/dashboard/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/docs.html b/.next/server/app/admin/docs.html
index 0a946590bdaa394cf9b2203242d13e4916e2469b..bc19cdfb4832d04b90c3c1c6dc75963f7aa048fe 100644
--- a/.next/server/app/admin/docs.html
+++ b/.next/server/app/admin/docs.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Docs
\ No newline at end of file
diff --git a/.next/server/app/admin/docs.rsc b/.next/server/app/admin/docs.rsc
index f8061cdddc44976fc5595301b7007d04d50973b4..49545d138e9e7067e1739b68b6651b25a3f326b8 100644
--- a/.next/server/app/admin/docs.rsc
+++ b/.next/server/app/admin/docs.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","4004","static/chunks/app/admin/docs/page-226865ee37f1fbcc.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","4004","static/chunks/app/admin/docs/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","docs"],"i":false,"f":[[["",{"children":["admin",{"children":["docs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"docs"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","oootytfFKeEpxEP-Uf4pDv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","docs"],"i":false,"f":[[["",{"children":["admin",{"children":["docs",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["docs",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"docs"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/docs/page.js b/.next/server/app/admin/docs/page.js
index 629574fe19f33aa0698d3886af3c7ff7382eb8cf..09e149181ea40b305420af68a9261043382ef11f 100644
--- a/.next/server/app/admin/docs/page.js
+++ b/.next/server/app/admin/docs/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=4004,e.ids=[4004],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,r,t)=>{Promise.resolve().then(t.bind(t,36903))},36271:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>n});var s=t(37413),o=t(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"docs"})}},36903:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>s});let s=(0,t(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,r,t)=>{Promise.resolve().then(t.bind(t,69001))},69001:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>l});var s=t(60687),o=t(43210),n=t(11755),i=t(80021),a=t(35157),p=t(2565),d=t(13265),u=t(96597);function c({view:e,settingsTab:r}){let[t,p]=(0,o.useState)(null),[c,l]=(0,o.useState)(!1),x=t?(0,s.jsx)(a.a,{project:t,onBack:()=>p(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:p,settingsTab:r});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>l(!0),showSidebar:!t,children:x}),(0,s.jsx)(d.V,{location:"global"}),(0,s.jsx)(u.V,{open:c,onOpenChange:l})]})}function l({view:e,settingsTab:r}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(c,{view:e,settingsTab:r})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")},98339:(e,r,t)=>{"use strict";t.r(r),t.d(r,{GlobalError:()=>i.a,__next_app__:()=>c,pages:()=>u,routeModule:()=>l,tree:()=>d});var s=t(65239),o=t(48088),n=t(88170),i=t.n(n),a=t(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);t.d(r,p);let d={children:["",{children:["admin",{children:["docs",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(t.bind(t,36271)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(t.bind(t,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(t.t.bind(t,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(t.t.bind(t,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(t.t.bind(t,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,u=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page.tsx"],c={require:t,loadChunk:()=>Promise.resolve()},l=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/docs/page",pathname:"/admin/docs",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4447,8055,329,4390,3640,1123],()=>t(98339));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=4004,a.ids=[4004],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13201:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"docs"})}},17574:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["docs",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,13201)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/docs/page",pathname:"/admin/docs",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/docs/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=17574));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/docs/page.js.nft.json b/.next/server/app/admin/docs/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/docs/page.js.nft.json
+++ b/.next/server/app/admin/docs/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/docs/page_client-reference-manifest.js b/.next/server/app/admin/docs/page_client-reference-manifest.js
index d064101d2c8b891ac705d7b25d9cf10317d3a8ce..b941731747f5b23b5fa59c25f92cdb3bc92a34e3 100644
--- a/.next/server/app/admin/docs/page_client-reference-manifest.js
+++ b/.next/server/app/admin/docs/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/docs/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","4004","static/chunks/app/admin/docs/page-226865ee37f1fbcc.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/docs/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","4004","static/chunks/app/admin/docs/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/docs/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/login.html b/.next/server/app/admin/login.html
index 80b356a8133861eb8d403aafe6a4712b4efa37df..c7653d428b1e97331e327e260768cec77f06cfa5 100644
--- a/.next/server/app/admin/login.html
+++ b/.next/server/app/admin/login.html
@@ -1 +1 @@
-Open Source Web Studio | Agentic AI Development 🎨
OSW Studio Admin Enter your password to continue
\ No newline at end of file
+Open Source Web Studio | Agentic AI Development 🎨
OSW Studio Admin Enter your password to continue
\ No newline at end of file
diff --git a/.next/server/app/admin/login.rsc b/.next/server/app/admin/login.rsc
index 5f5e028d0f5482b50cede0417db9fc206e4750de..8d080ea8b15186a4996d1cea9a6e981ec0059721 100644
--- a/.next/server/app/admin/login.rsc
+++ b/.next/server/app/admin/login.rsc
@@ -1,28 +1,26 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[90894,[],"ClientPageRoot"]
-8:I[3727,["2116","static/chunks/app/admin/login/page-5470d9718e2ee0e3.js"],"default"]
-b:I[59665,[],"OutletBoundary"]
-e:I[74911,[],"AsyncMetadataOutlet"]
-10:I[59665,[],"ViewportBoundary"]
-12:I[59665,[],"MetadataBoundary"]
-14:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[81959,[],"ClientPageRoot"]
+8:I[62112,["2116","static/chunks/app/admin/login/page-5f069849d073f76f.js"],"default"]
+b:I[24431,[],"OutletBoundary"]
+d:I[15278,[],"AsyncMetadataOutlet"]
+f:I[24431,[],"ViewportBoundary"]
+11:I[24431,[],"MetadataBoundary"]
+12:"$Sreact.suspense"
+14:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","login"],"i":false,"f":[[["",{"children":["admin",{"children":["login",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","jCQj5h30gv2n4H-RsCtzTv",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L12",null,{"children":"$L13"}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true}
-15:"$Sreact.suspense"
-16:I[74911,[],"AsyncMetadata"]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","login"],"i":false,"f":[[["",{"children":["admin",{"children":["login",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["login",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
9:{}
-a:{}
-13:["$","div",null,{"hidden":true,"children":["$","$15",null,{"fallback":null,"children":["$","$L16",null,{"promise":"$@17"}]}]}]
-d:null
-11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+a:"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params"
+10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
c:null
-f:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-17:{"metadata":"$f:metadata","error":null,"digest":"$undefined"}
+15:I[80622,[],"IconMark"]
+e:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L15","20",{}]],"error":null,"digest":"$undefined"}
+13:"$e:metadata"
diff --git a/.next/server/app/admin/login/page.js b/.next/server/app/admin/login/page.js
index 32a82a6f801cd6a3e7eaf272784150af8f5ce8e8..9b45316ee638ae68988086cb51ad7c3f62a5b0ea 100644
--- a/.next/server/app/admin/login/page.js
+++ b/.next/server/app/admin/login/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=2116,e.ids=[2116],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},9911:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>r});let r=(0,s(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx","default")},10716:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,86346,23)),Promise.resolve().then(s.t.bind(s,27924,23)),Promise.resolve().then(s.t.bind(s,35656,23)),Promise.resolve().then(s.t.bind(s,40099,23)),Promise.resolve().then(s.t.bind(s,38243,23)),Promise.resolve().then(s.t.bind(s,28827,23)),Promise.resolve().then(s.t.bind(s,62763,23)),Promise.resolve().then(s.t.bind(s,97173,23))},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12913:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>l});var r=s(60687),n=s(76180),o=s.n(n),i=s(43210),a=s(16189);function l(){let e=(0,a.useRouter)(),[t,s]=(0,i.useState)(""),[n,l]=(0,i.useState)(!1),[c,d]=(0,i.useState)(""),u=async s=>{s.preventDefault(),d(""),l(!0);try{let s=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:t})}),r=await s.json();if(!s.ok)return void d(r.error||"Login failed");e.push("/admin")}catch(e){d("An error occurred. Please try again."),console.error("Login error:",e)}finally{l(!1)}};return(0,r.jsxs)("div",{className:"jsx-301ec7a03a062a2c min-h-screen bg-[#0a0a0a] text-white flex items-center justify-center p-4 animate-fadeIn",children:[(0,r.jsx)(o(),{id:"301ec7a03a062a2c",children:"@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-o-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes float{0%,100%{-webkit-transform:translatey(0px);transform:translatey(0px)}50%{-webkit-transform:translatey(-10px);transform:translatey(-10px)}}@-moz-keyframes float{0%,100%{-moz-transform:translatey(0px);transform:translatey(0px)}50%{-moz-transform:translatey(-10px);transform:translatey(-10px)}}@-o-keyframes float{0%,100%{-o-transform:translatey(0px);transform:translatey(0px)}50%{-o-transform:translatey(-10px);transform:translatey(-10px)}}@keyframes float{0%,100%{-webkit-transform:translatey(0px);-moz-transform:translatey(0px);-o-transform:translatey(0px);transform:translatey(0px)}50%{-webkit-transform:translatey(-10px);-moz-transform:translatey(-10px);-o-transform:translatey(-10px);transform:translatey(-10px)}}.animate-fadeIn.jsx-301ec7a03a062a2c{-webkit-animation:fadeIn.6s ease-in;-moz-animation:fadeIn.6s ease-in;-o-animation:fadeIn.6s ease-in;animation:fadeIn.6s ease-in}.animate-float.jsx-301ec7a03a062a2c{-webkit-animation:float 3s ease-in-out infinite;-moz-animation:float 3s ease-in-out infinite;-o-animation:float 3s ease-in-out infinite;animation:float 3s ease-in-out infinite}"}),(0,r.jsxs)("div",{className:"jsx-301ec7a03a062a2c max-w-md w-full text-center",children:[(0,r.jsx)("div",{className:"jsx-301ec7a03a062a2c mb-8 animate-float",children:(0,r.jsxs)("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",preserveAspectRatio:"xMidYMid meet",className:"jsx-301ec7a03a062a2c w-24 h-24 mx-auto",children:[(0,r.jsx)("rect",{x:"0",y:"0",width:"256",height:"256",rx:"20",ry:"20",fill:"#000000",className:"jsx-301ec7a03a062a2c"}),(0,r.jsxs)("g",{transform:"translate(0,256) scale(0.0476,-0.0476)",fill:"#ffffff",stroke:"none",className:"jsx-301ec7a03a062a2c",children:[(0,r.jsx)("path",{d:"M725 4825 c-50 -18 -100 -71 -114 -122 -15 -54 -15 -1573 0 -1628 16 -55 44 -92 89 -115 38 -19 62 -20 855 -20 781 0 817 1 853 19 46 23 67 46 87 94 13 32 15 138 15 830 0 566 -3 804 -11 828 -16 45 -55 87 -104 110 -38 18 -82 19 -835 18 -659 0 -802 -2 -835 -14z m1351 -371 c15 -11 37 -33 48 -48 21 -27 21 -38 21 -520 0 -547 3 -523 -68 -566 -31 -19 -54 -20 -521 -20 -483 0 -489 0 -524 22 -20 12 -42 38 -53 62 -17 38 -19 74 -19 504 0 496 1 503 51 548 46 41 66 43 561 41 464 -2 477 -3 504 -23z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M3058 4830 c-44 -13 -87 -49 -108 -90 -19 -37 -20 -61 -20 -471 0 -428 0 -432 22 -471 13 -22 41 -51 64 -64 41 -24 41 -24 685 -24 645 0 645 0 689 -22 63 -33 80 -71 80 -183 0 -101 -15 -144 -63 -179 -28 -21 -41 -21 -695 -26 -666 -5 -667 -5 -702 -27 -109 -68 -106 -247 5 -310 40 -23 40 -23 858 -23 664 0 824 3 850 14 43 17 95 78 102 118 3 18 5 225 3 459 -3 426 -3 426 -31 462 -58 76 -15 71 -757 77 -620 5 -667 6 -692 23 -44 30 -58 74 -58 179 0 116 16 153 80 186 44 22 44 22 693 22 710 0 678 -3 731 60 80 96 41 240 -79 287 -35 14 -1612 17 -1657 3z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M702 2509 c-48 -24 -75 -57 -91 -114 -9 -29 -11 -253 -9 -840 3 -779 4 -801 23 -834 11 -19 37 -48 58 -65 39 -31 39 -31 380 -31 342 0 342 0 399 28 31 15 63 39 73 53 16 25 16 25 62 -16 77 -67 104 -71 470 -68 320 3 320 3 360 30 24 16 49 44 62 70 21 44 21 49 21 854 0 773 -1 811 -19 851 -35 76 -135 120 -215 93 -41 -13 -90 -51 -109 -84 -9 -16 -13 -187 -17 -688 -5 -654 -5 -667 -26 -694 -43 -58 -68 -69 -169 -72 -82 -3 -99 -1 -133 18 -22 12 -49 39 -61 60 -21 37 -21 45 -21 664 0 439 -3 641 -11 673 -32 123 -190 174 -285 91 -73 -64 -69 -20 -70 -743 0 -721 3 -687 -66 -737 -28 -20 -47 -23 -133 -26 -91 -3 -103 -2 -134 20 -19 13 -44 36 -55 51 -21 28 -21 38 -26 695 -4 481 -8 673 -17 687 -50 87 -152 118 -241 74z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M3047 2515 c-47 -16 -81 -46 -101 -90 -14 -28 -16 -95 -16 -463 0 -281 4 -440 11 -459 15 -40 48 -73 94 -94 38 -17 79 -19 685 -19 626 0 646 -1 678 -20 58 -35 72 -72 72 -185 0 -110 -14 -147 -67 -182 -25 -17 -73 -18 -698 -23 -672 -5 -672 -5 -708 -33 -20 -15 -44 -42 -53 -60 -21 -39 -21 -125 -1 -163 20 -38 65 -80 100 -93 19 -8 289 -11 833 -11 701 0 809 2 841 15 48 20 71 41 94 88 19 35 19 60 17 480 -3 444 -3 444 -30 479 -54 71 -23 68 -740 68 -612 0 -645 1 -685 20 -67 30 -83 66 -83 183 0 116 14 156 68 189 35 21 35 21 691 22 606 1 658 2 688 19 137 74 130 264 -12 328 -38 18 -85 19 -840 18 -652 0 -807 -2 -838 -14z",className:"jsx-301ec7a03a062a2c"})]})]})}),(0,r.jsx)("h1",{className:"jsx-301ec7a03a062a2c text-3xl font-semibold mb-2 tracking-tight",children:"OSW Studio Admin"}),(0,r.jsx)("p",{className:"jsx-301ec7a03a062a2c text-zinc-400 mb-8",children:"Enter your password to continue"}),(0,r.jsxs)("form",{onSubmit:u,className:"jsx-301ec7a03a062a2c space-y-4",children:[(0,r.jsxs)("div",{className:"jsx-301ec7a03a062a2c text-left",children:[(0,r.jsx)("label",{htmlFor:"password",className:"jsx-301ec7a03a062a2c block text-sm font-medium text-zinc-400 mb-2",children:"Password"}),(0,r.jsx)("input",{id:"password",type:"password",value:t,onChange:e=>s(e.target.value),placeholder:"Enter your password",required:!0,autoFocus:!0,className:"jsx-301ec7a03a062a2c w-full px-4 py-3 bg-zinc-900 border border-zinc-800 rounded-lg text-white placeholder-zinc-500 focus:outline-none focus:ring-2 focus:ring-orange-500 focus:border-transparent transition-all"})]}),c&&(0,r.jsx)("div",{className:"jsx-301ec7a03a062a2c p-3 bg-red-900/20 border border-red-800 text-red-400 rounded-lg text-sm",children:c}),(0,r.jsx)("button",{type:"submit",disabled:n,className:"jsx-301ec7a03a062a2c w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:bg-zinc-700 disabled:text-zinc-500 disabled:cursor-not-allowed",children:n?"Logging in...":"Login"})]}),(0,r.jsxs)("div",{className:"jsx-301ec7a03a062a2c mt-12 pt-6 border-t border-zinc-800 flex items-center justify-center gap-2 text-sm text-zinc-500",children:[(0,r.jsx)("span",{className:"jsx-301ec7a03a062a2c",children:"Powered by"}),(0,r.jsxs)("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",preserveAspectRatio:"xMidYMid meet",className:"jsx-301ec7a03a062a2c w-5 h-5 opacity-80",children:[(0,r.jsx)("rect",{x:"0",y:"0",width:"256",height:"256",rx:"20",ry:"20",fill:"#52525b",className:"jsx-301ec7a03a062a2c"}),(0,r.jsxs)("g",{transform:"translate(0,256) scale(0.0476,-0.0476)",fill:"#ffffff",stroke:"none",className:"jsx-301ec7a03a062a2c",children:[(0,r.jsx)("path",{d:"M725 4825 c-50 -18 -100 -71 -114 -122 -15 -54 -15 -1573 0 -1628 16 -55 44 -92 89 -115 38 -19 62 -20 855 -20 781 0 817 1 853 19 46 23 67 46 87 94 13 32 15 138 15 830 0 566 -3 804 -11 828 -16 45 -55 87 -104 110 -38 18 -82 19 -835 18 -659 0 -802 -2 -835 -14z m1351 -371 c15 -11 37 -33 48 -48 21 -27 21 -38 21 -520 0 -547 3 -523 -68 -566 -31 -19 -54 -20 -521 -20 -483 0 -489 0 -524 22 -20 12 -42 38 -53 62 -17 38 -19 74 -19 504 0 496 1 503 51 548 46 41 66 43 561 41 464 -2 477 -3 504 -23z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M3058 4830 c-44 -13 -87 -49 -108 -90 -19 -37 -20 -61 -20 -471 0 -428 0 -432 22 -471 13 -22 41 -51 64 -64 41 -24 41 -24 685 -24 645 0 645 0 689 -22 63 -33 80 -71 80 -183 0 -101 -15 -144 -63 -179 -28 -21 -41 -21 -695 -26 -666 -5 -667 -5 -702 -27 -109 -68 -106 -247 5 -310 40 -23 40 -23 858 -23 664 0 824 3 850 14 43 17 95 78 102 118 3 18 5 225 3 459 -3 426 -3 426 -31 462 -58 76 -15 71 -757 77 -620 5 -667 6 -692 23 -44 30 -58 74 -58 179 0 116 16 153 80 186 44 22 44 22 693 22 710 0 678 -3 731 60 80 96 41 240 -79 287 -35 14 -1612 17 -1657 3z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M702 2509 c-48 -24 -75 -57 -91 -114 -9 -29 -11 -253 -9 -840 3 -779 4 -801 23 -834 11 -19 37 -48 58 -65 39 -31 39 -31 380 -31 342 0 342 0 399 28 31 15 63 39 73 53 16 25 16 25 62 -16 77 -67 104 -71 470 -68 320 3 320 3 360 30 24 16 49 44 62 70 21 44 21 49 21 854 0 773 -1 811 -19 851 -35 76 -135 120 -215 93 -41 -13 -90 -51 -109 -84 -9 -16 -13 -187 -17 -688 -5 -654 -5 -667 -26 -694 -43 -58 -68 -69 -169 -72 -82 -3 -99 -1 -133 18 -22 12 -49 39 -61 60 -21 37 -21 45 -21 664 0 439 -3 641 -11 673 -32 123 -190 174 -285 91 -73 -64 -69 -20 -70 -743 0 -721 3 -687 -66 -737 -28 -20 -47 -23 -133 -26 -91 -3 -103 -2 -134 20 -19 13 -44 36 -55 51 -21 28 -21 38 -26 695 -4 481 -8 673 -17 687 -50 87 -152 118 -241 74z",className:"jsx-301ec7a03a062a2c"}),(0,r.jsx)("path",{d:"M3047 2515 c-47 -16 -81 -46 -101 -90 -14 -28 -16 -95 -16 -463 0 -281 4 -440 11 -459 15 -40 48 -73 94 -94 38 -17 79 -19 685 -19 626 0 646 -1 678 -20 58 -35 72 -72 72 -185 0 -110 -14 -147 -67 -182 -25 -17 -73 -18 -698 -23 -672 -5 -672 -5 -708 -33 -20 -15 -44 -42 -53 -60 -21 -39 -21 -125 -1 -163 20 -38 65 -80 100 -93 19 -8 289 -11 833 -11 701 0 809 2 841 15 48 20 71 41 94 88 19 35 19 60 17 480 -3 444 -3 444 -30 479 -54 71 -23 68 -740 68 -612 0 -645 1 -685 20 -67 30 -83 66 -83 183 0 116 14 156 68 189 35 21 35 21 691 22 606 1 658 2 688 19 137 74 130 264 -12 328 -38 18 -85 19 -840 18 -652 0 -807 -2 -838 -14z",className:"jsx-301ec7a03a062a2c"})]})]}),(0,r.jsx)("span",{className:"jsx-301ec7a03a062a2c",children:"OSW Studio"})]})]})]})}},16189:(e,t,s)=>{"use strict";var r=s(65773);s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},17841:(e,t,s)=>{Promise.resolve().then(s.bind(s,12913))},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},39035:(e,t,s)=>{"use strict";s.d(t,{ThemeProvider:()=>r});let r=(0,s(12907).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},41900:(e,t,s)=>{"use strict";s.d(t,{default:()=>r});let r=(0,s(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},52572:(e,t,s)=>{Promise.resolve().then(s.t.bind(s,16444,23)),Promise.resolve().then(s.t.bind(s,16042,23)),Promise.resolve().then(s.t.bind(s,88170,23)),Promise.resolve().then(s.t.bind(s,49477,23)),Promise.resolve().then(s.t.bind(s,29345,23)),Promise.resolve().then(s.t.bind(s,12089,23)),Promise.resolve().then(s.t.bind(s,46577,23)),Promise.resolve().then(s.t.bind(s,31307,23))},52689:(e,t,s)=>{Promise.resolve().then(s.bind(s,9911))},53014:(e,t,s)=>{"use strict";s.d(t,{default:()=>i});var r=s(60687),n=s(26553),o=s(8693);function i({children:e}){let t=new n.E;return(0,r.jsx)(o.Ht,{client:t,children:e})}},54261:(e,t,s)=>{"use strict";s.r(t),s.d(t,{GlobalError:()=>i.a,__next_app__:()=>u,pages:()=>d,routeModule:()=>p,tree:()=>c});var r=s(65239),n=s(48088),o=s(88170),i=s.n(o),a=s(30893),l={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(l[e]=()=>a[e]);s.d(t,l);let c={children:["",{children:["admin",{children:["login",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(s.bind(s,9911)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(s.bind(s,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(s.t.bind(s,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(s.t.bind(s,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(s.t.bind(s,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx"],u={require:s,loadChunk:()=>Promise.resolve()},p=new r.AppPageRouteModule({definition:{kind:n.RouteKind.APP_PAGE,page:"/admin/login/page",pathname:"/admin/login",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:c}})},54920:(e,t,s)=>{Promise.resolve().then(s.bind(s,53014)),Promise.resolve().then(s.bind(s,99197)),Promise.resolve().then(s.bind(s,94593))},56397:()=>{},58014:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>m,metadata:()=>u,viewport:()=>p});var r=s(37413),n=s(95474),o=s.n(n),i=s(31015),a=s.n(i),l=s(41900),c=s(39035);s(94348);var d=s(80363);let u={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},p={initialScale:1,maximumScale:1,themeColor:"#000000"};function m({children:e}){return(0,r.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,r.jsx)("body",{className:`${o().variable} ${a().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,r.jsxs)(c.ThemeProvider,{children:[(0,r.jsx)(d.Toaster,{richColors:!0,position:"bottom-center"}),(0,r.jsx)(l.default,{children:e})]})})})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75913:(e,t,s)=>{"use strict";s(56397);var r=s(43210),n=function(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}(r),o="undefined"!=typeof process&&process.env&&!0,i=function(e){return"[object String]"===Object.prototype.toString.call(e)},a=function(){function e(e){var t=void 0===e?{}:e,s=t.name,r=void 0===s?"stylesheet":s,n=t.optimizeForSpeed,a=void 0===n?o:n;l(i(r),"`name` must be a string"),this._name=r,this._deletedRulePlaceholder="#"+r+"-deleted-rule____{}",l("boolean"==typeof a,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=a,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var t,s=e.prototype;return s.setOptimizeForSpeed=function(e){l("boolean"==typeof e,"`setOptimizeForSpeed` accepts a boolean"),l(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=e,this.inject()},s.isOptimizeForSpeed=function(){return this._optimizeForSpeed},s.inject=function(){var e=this;l(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(t,s){return"number"==typeof s?e._serverSheet.cssRules[s]={cssText:t}:e._serverSheet.cssRules.push({cssText:t}),s},deleteRule:function(t){e._serverSheet.cssRules[t]=null}}},s.getSheetForTag=function(e){if(e.sheet)return e.sheet;for(var t=0;t>>0},d={};function u(e,t){if(!t)return"jsx-"+e;var s=String(t),r=e+s;return d[r]||(d[r]="jsx-"+c(e+"-"+s)),d[r]}function p(e,t){var s=e+(t=t.replace(/\/style/gi,"\\/style"));return d[s]||(d[s]=t.replace(/__jsx-style-dynamic-selector/g,e)),d[s]}var m=function(){function e(e){var t=void 0===e?{}:e,s=t.styleSheet,r=void 0===s?null:s,n=t.optimizeForSpeed,o=void 0!==n&&n;this._sheet=r||new a({name:"styled-jsx",optimizeForSpeed:o}),this._sheet.inject(),r&&"boolean"==typeof o&&(this._sheet.setOptimizeForSpeed(o),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var t=e.prototype;return t.add=function(e){var t=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(e.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var s=this.getIdAndRules(e),r=s.styleId,n=s.rules;if(r in this._instancesCounts){this._instancesCounts[r]+=1;return}var o=n.map(function(e){return t._sheet.insertRule(e)}).filter(function(e){return -1!==e});this._indices[r]=o,this._instancesCounts[r]=1},t.remove=function(e){var t=this,s=this.getIdAndRules(e).styleId;if(function(e,t){if(!e)throw Error("StyleSheetRegistry: "+t+".")}(s in this._instancesCounts,"styleId: `"+s+"` not found"),this._instancesCounts[s]-=1,this._instancesCounts[s]<1){var r=this._fromServer&&this._fromServer[s];r?(r.parentNode.removeChild(r),delete this._fromServer[s]):(this._indices[s].forEach(function(e){return t._sheet.deleteRule(e)}),delete this._indices[s]),delete this._instancesCounts[s]}},t.update=function(e,t){this.add(t),this.remove(e)},t.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},t.cssRules=function(){var e=this,t=this._fromServer?Object.keys(this._fromServer).map(function(t){return[t,e._fromServer[t]]}):[],s=this._sheet.cssRules();return t.concat(Object.keys(this._indices).map(function(t){return[t,e._indices[t].map(function(e){return s[e].cssText}).join(e._optimizeForSpeed?"":"\n")]}).filter(function(e){return!!e[1]}))},t.styles=function(e){var t,s;return t=this.cssRules(),void 0===(s=e)&&(s={}),t.map(function(e){var t=e[0],r=e[1];return n.default.createElement("style",{id:"__"+t,key:"__"+t,nonce:s.nonce?s.nonce:void 0,dangerouslySetInnerHTML:{__html:r}})})},t.getIdAndRules=function(e){var t=e.children,s=e.dynamic,r=e.id;if(s){var n=u(r,s);return{styleId:n,rules:Array.isArray(t)?t.map(function(e){return p(n,e)}):[p(n,t)]}}return{styleId:u(r),rules:Array.isArray(t)?t:[t]}},t.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(e,t){return e[t.id.slice(2)]=t,e},{})},e}(),h=r.createContext(null);h.displayName="StyleSheetContext";n.default.useInsertionEffect||n.default.useLayoutEffect;var f=void 0;function v(e){var t=f||r.useContext(h);return t&&t.add(e),null}v.dynamic=function(e){return e.map(function(e){return u(e[0],e[1])}).join(" ")},t.style=v},76180:(e,t,s)=>{"use strict";e.exports=s(75913).style},80363:(e,t,s)=>{"use strict";s.d(t,{Toaster:()=>r});let r=(0,s(12907).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},91368:(e,t,s)=>{Promise.resolve().then(s.bind(s,41900)),Promise.resolve().then(s.bind(s,39035)),Promise.resolve().then(s.bind(s,80363))},94348:()=>{},94593:(e,t,s)=>{"use strict";s.d(t,{Toaster:()=>i});var r=s(60687),n=s(10218),o=s(52581);let i=({...e})=>{let{theme:t}=(0,n.D)();return(0,r.jsx)(o.l$,{theme:t,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...e})}},99197:(e,t,s)=>{"use strict";s.d(t,{ThemeProvider:()=>o});var r=s(60687);s(43210);var n=s(10218);function o({children:e,attribute:t="class",defaultTheme:s="dark",enableSystem:o=!0,storageKey:i="osw-studio-theme",...a}){return(0,r.jsx)(n.N,{attribute:t,defaultTheme:s,enableSystem:o,storageKey:i,disableTransitionOnChange:!0,...a,children:e})}}};var t=require("../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[4447,8055],()=>s(54261));module.exports=r})();
\ No newline at end of file
+(()=>{var a={};a.id=2116,a.ids=[2116],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7760:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx","default")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16953:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>l,viewport:()=>m});var d=c(75338),e=c(17092),f=c.n(e),g=c(35385),h=c.n(g),i=c(69507),j=c(26262);c(94348);var k=c(20656);let l={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},m={initialScale:1,maximumScale:1,themeColor:"#000000"};function n({children:a}){return(0,d.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,d.jsxs)(j.ThemeProvider,{children:[(0,d.jsx)(k.Toaster,{richColors:!0,position:"bottom-center"}),(0,d.jsx)(i.default,{children:a})]})})})}},17841:(a,b,c)=>{Promise.resolve().then(c.bind(c,92130))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20656:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},26262:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35704:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},38502:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>g});var d=c(21124),e=c(45523),f=c(42830);let g=({...a})=>{let{theme:b}=(0,e.D)();return(0,d.jsx)(f.l$,{theme:b,className:"toaster group",closeButton:!0,style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42378:(a,b,c)=>{"use strict";var d=c(91330);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},45432:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},46544:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["login",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,7760)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/login/page",pathname:"/admin/login",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/login/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},52689:(a,b,c)=>{Promise.resolve().then(c.bind(c,7760))},54920:(a,b,c)=>{Promise.resolve().then(c.bind(c,83133)),Promise.resolve().then(c.bind(c,67600)),Promise.resolve().then(c.bind(c,38502))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67600:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(21124);c(38301);var e=c(45523);function f({children:a,attribute:b="class",defaultTheme:c="dark",enableSystem:f=!0,storageKey:g="osw-studio-theme",...h}){return(0,d.jsx)(e.N,{attribute:b,defaultTheme:c,enableSystem:f,storageKey:g,disableTransitionOnChange:!0,...h,children:a})}},69507:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},83133:(a,b,c)=>{"use strict";c.d(b,{default:()=>g});var d=c(21124),e=c(62806),f=c(96610);function g({children:a}){let b=new e.E;return(0,d.jsx)(f.Ht,{client:b,children:a})}},83796:(a,b,c)=>{"use strict";c(83946);var d=c(38301),e=function(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}(d),f="undefined"!=typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);o.displayName="StyleSheetContext";e.default.useInsertionEffect||e.default.useLayoutEffect;var p=void 0;function q(a){var b=p||d.useContext(o);return b&&b.add(a),null}q.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},b.style=q},83946:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91368:(a,b,c)=>{Promise.resolve().then(c.bind(c,69507)),Promise.resolve().then(c.bind(c,26262)),Promise.resolve().then(c.bind(c,20656))},92130:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(21124),e=c(95627),f=c.n(e),g=c(38301),h=c(42378);function i(){let a=(0,h.useRouter)(),[b,c]=(0,g.useState)(""),[e,i]=(0,g.useState)(!1),[j,k]=(0,g.useState)(""),l=async c=>{c.preventDefault(),k(""),i(!0);try{let c=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:b})}),d=await c.json();if(!c.ok)return void k(d.error||"Login failed");a.push("/admin")}catch(a){k("An error occurred. Please try again."),console.error("Login error:",a)}finally{i(!1)}};return(0,d.jsxs)("div",{className:"jsx-301ec7a03a062a2c min-h-screen bg-[#0a0a0a] text-white flex items-center justify-center p-4 animate-fadeIn",children:[(0,d.jsx)(f(),{id:"301ec7a03a062a2c",children:"@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes float{0%,100%{transform:translatey(0px)}50%{transform:translatey(-10px)}}.animate-fadeIn.jsx-301ec7a03a062a2c{animation:fadeIn.6s ease-in}.animate-float.jsx-301ec7a03a062a2c{animation:float 3s ease-in-out infinite}"}),(0,d.jsxs)("div",{className:"jsx-301ec7a03a062a2c max-w-md w-full text-center",children:[(0,d.jsx)("div",{className:"jsx-301ec7a03a062a2c mb-8 animate-float",children:(0,d.jsxs)("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",preserveAspectRatio:"xMidYMid meet",className:"jsx-301ec7a03a062a2c w-24 h-24 mx-auto",children:[(0,d.jsx)("rect",{x:"0",y:"0",width:"256",height:"256",rx:"20",ry:"20",fill:"#000000",className:"jsx-301ec7a03a062a2c"}),(0,d.jsxs)("g",{transform:"translate(0,256) scale(0.0476,-0.0476)",fill:"#ffffff",stroke:"none",className:"jsx-301ec7a03a062a2c",children:[(0,d.jsx)("path",{d:"M725 4825 c-50 -18 -100 -71 -114 -122 -15 -54 -15 -1573 0 -1628 16 -55 44 -92 89 -115 38 -19 62 -20 855 -20 781 0 817 1 853 19 46 23 67 46 87 94 13 32 15 138 15 830 0 566 -3 804 -11 828 -16 45 -55 87 -104 110 -38 18 -82 19 -835 18 -659 0 -802 -2 -835 -14z m1351 -371 c15 -11 37 -33 48 -48 21 -27 21 -38 21 -520 0 -547 3 -523 -68 -566 -31 -19 -54 -20 -521 -20 -483 0 -489 0 -524 22 -20 12 -42 38 -53 62 -17 38 -19 74 -19 504 0 496 1 503 51 548 46 41 66 43 561 41 464 -2 477 -3 504 -23z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M3058 4830 c-44 -13 -87 -49 -108 -90 -19 -37 -20 -61 -20 -471 0 -428 0 -432 22 -471 13 -22 41 -51 64 -64 41 -24 41 -24 685 -24 645 0 645 0 689 -22 63 -33 80 -71 80 -183 0 -101 -15 -144 -63 -179 -28 -21 -41 -21 -695 -26 -666 -5 -667 -5 -702 -27 -109 -68 -106 -247 5 -310 40 -23 40 -23 858 -23 664 0 824 3 850 14 43 17 95 78 102 118 3 18 5 225 3 459 -3 426 -3 426 -31 462 -58 76 -15 71 -757 77 -620 5 -667 6 -692 23 -44 30 -58 74 -58 179 0 116 16 153 80 186 44 22 44 22 693 22 710 0 678 -3 731 60 80 96 41 240 -79 287 -35 14 -1612 17 -1657 3z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M702 2509 c-48 -24 -75 -57 -91 -114 -9 -29 -11 -253 -9 -840 3 -779 4 -801 23 -834 11 -19 37 -48 58 -65 39 -31 39 -31 380 -31 342 0 342 0 399 28 31 15 63 39 73 53 16 25 16 25 62 -16 77 -67 104 -71 470 -68 320 3 320 3 360 30 24 16 49 44 62 70 21 44 21 49 21 854 0 773 -1 811 -19 851 -35 76 -135 120 -215 93 -41 -13 -90 -51 -109 -84 -9 -16 -13 -187 -17 -688 -5 -654 -5 -667 -26 -694 -43 -58 -68 -69 -169 -72 -82 -3 -99 -1 -133 18 -22 12 -49 39 -61 60 -21 37 -21 45 -21 664 0 439 -3 641 -11 673 -32 123 -190 174 -285 91 -73 -64 -69 -20 -70 -743 0 -721 3 -687 -66 -737 -28 -20 -47 -23 -133 -26 -91 -3 -103 -2 -134 20 -19 13 -44 36 -55 51 -21 28 -21 38 -26 695 -4 481 -8 673 -17 687 -50 87 -152 118 -241 74z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M3047 2515 c-47 -16 -81 -46 -101 -90 -14 -28 -16 -95 -16 -463 0 -281 4 -440 11 -459 15 -40 48 -73 94 -94 38 -17 79 -19 685 -19 626 0 646 -1 678 -20 58 -35 72 -72 72 -185 0 -110 -14 -147 -67 -182 -25 -17 -73 -18 -698 -23 -672 -5 -672 -5 -708 -33 -20 -15 -44 -42 -53 -60 -21 -39 -21 -125 -1 -163 20 -38 65 -80 100 -93 19 -8 289 -11 833 -11 701 0 809 2 841 15 48 20 71 41 94 88 19 35 19 60 17 480 -3 444 -3 444 -30 479 -54 71 -23 68 -740 68 -612 0 -645 1 -685 20 -67 30 -83 66 -83 183 0 116 14 156 68 189 35 21 35 21 691 22 606 1 658 2 688 19 137 74 130 264 -12 328 -38 18 -85 19 -840 18 -652 0 -807 -2 -838 -14z",className:"jsx-301ec7a03a062a2c"})]})]})}),(0,d.jsx)("h1",{className:"jsx-301ec7a03a062a2c text-3xl font-semibold mb-2 tracking-tight",children:"OSW Studio Admin"}),(0,d.jsx)("p",{className:"jsx-301ec7a03a062a2c text-zinc-400 mb-8",children:"Enter your password to continue"}),(0,d.jsxs)("form",{onSubmit:l,className:"jsx-301ec7a03a062a2c space-y-4",children:[(0,d.jsxs)("div",{className:"jsx-301ec7a03a062a2c text-left",children:[(0,d.jsx)("label",{htmlFor:"password",className:"jsx-301ec7a03a062a2c block text-sm font-medium text-zinc-400 mb-2",children:"Password"}),(0,d.jsx)("input",{id:"password",type:"password",value:b,onChange:a=>c(a.target.value),placeholder:"Enter your password",required:!0,autoFocus:!0,className:"jsx-301ec7a03a062a2c w-full px-4 py-3 bg-zinc-900 border border-zinc-800 rounded-lg text-white placeholder-zinc-500 focus:outline-none focus:ring-2 focus:ring-orange-500 focus:border-transparent transition-all"})]}),j&&(0,d.jsx)("div",{className:"jsx-301ec7a03a062a2c p-3 bg-red-900/20 border border-red-800 text-red-400 rounded-lg text-sm",children:j}),(0,d.jsx)("button",{type:"submit",disabled:e,className:"jsx-301ec7a03a062a2c w-full bg-orange-600 hover:bg-orange-700 text-white font-medium py-3 px-4 rounded-lg transition-colors disabled:bg-zinc-700 disabled:text-zinc-500 disabled:cursor-not-allowed",children:e?"Logging in...":"Login"})]}),(0,d.jsxs)("div",{className:"jsx-301ec7a03a062a2c mt-12 pt-6 border-t border-zinc-800 flex items-center justify-center gap-2 text-sm text-zinc-500",children:[(0,d.jsx)("span",{className:"jsx-301ec7a03a062a2c",children:"Powered by"}),(0,d.jsxs)("svg",{version:"1.0",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 256 256",preserveAspectRatio:"xMidYMid meet",className:"jsx-301ec7a03a062a2c w-5 h-5 opacity-80",children:[(0,d.jsx)("rect",{x:"0",y:"0",width:"256",height:"256",rx:"20",ry:"20",fill:"#52525b",className:"jsx-301ec7a03a062a2c"}),(0,d.jsxs)("g",{transform:"translate(0,256) scale(0.0476,-0.0476)",fill:"#ffffff",stroke:"none",className:"jsx-301ec7a03a062a2c",children:[(0,d.jsx)("path",{d:"M725 4825 c-50 -18 -100 -71 -114 -122 -15 -54 -15 -1573 0 -1628 16 -55 44 -92 89 -115 38 -19 62 -20 855 -20 781 0 817 1 853 19 46 23 67 46 87 94 13 32 15 138 15 830 0 566 -3 804 -11 828 -16 45 -55 87 -104 110 -38 18 -82 19 -835 18 -659 0 -802 -2 -835 -14z m1351 -371 c15 -11 37 -33 48 -48 21 -27 21 -38 21 -520 0 -547 3 -523 -68 -566 -31 -19 -54 -20 -521 -20 -483 0 -489 0 -524 22 -20 12 -42 38 -53 62 -17 38 -19 74 -19 504 0 496 1 503 51 548 46 41 66 43 561 41 464 -2 477 -3 504 -23z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M3058 4830 c-44 -13 -87 -49 -108 -90 -19 -37 -20 -61 -20 -471 0 -428 0 -432 22 -471 13 -22 41 -51 64 -64 41 -24 41 -24 685 -24 645 0 645 0 689 -22 63 -33 80 -71 80 -183 0 -101 -15 -144 -63 -179 -28 -21 -41 -21 -695 -26 -666 -5 -667 -5 -702 -27 -109 -68 -106 -247 5 -310 40 -23 40 -23 858 -23 664 0 824 3 850 14 43 17 95 78 102 118 3 18 5 225 3 459 -3 426 -3 426 -31 462 -58 76 -15 71 -757 77 -620 5 -667 6 -692 23 -44 30 -58 74 -58 179 0 116 16 153 80 186 44 22 44 22 693 22 710 0 678 -3 731 60 80 96 41 240 -79 287 -35 14 -1612 17 -1657 3z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M702 2509 c-48 -24 -75 -57 -91 -114 -9 -29 -11 -253 -9 -840 3 -779 4 -801 23 -834 11 -19 37 -48 58 -65 39 -31 39 -31 380 -31 342 0 342 0 399 28 31 15 63 39 73 53 16 25 16 25 62 -16 77 -67 104 -71 470 -68 320 3 320 3 360 30 24 16 49 44 62 70 21 44 21 49 21 854 0 773 -1 811 -19 851 -35 76 -135 120 -215 93 -41 -13 -90 -51 -109 -84 -9 -16 -13 -187 -17 -688 -5 -654 -5 -667 -26 -694 -43 -58 -68 -69 -169 -72 -82 -3 -99 -1 -133 18 -22 12 -49 39 -61 60 -21 37 -21 45 -21 664 0 439 -3 641 -11 673 -32 123 -190 174 -285 91 -73 -64 -69 -20 -70 -743 0 -721 3 -687 -66 -737 -28 -20 -47 -23 -133 -26 -91 -3 -103 -2 -134 20 -19 13 -44 36 -55 51 -21 28 -21 38 -26 695 -4 481 -8 673 -17 687 -50 87 -152 118 -241 74z",className:"jsx-301ec7a03a062a2c"}),(0,d.jsx)("path",{d:"M3047 2515 c-47 -16 -81 -46 -101 -90 -14 -28 -16 -95 -16 -463 0 -281 4 -440 11 -459 15 -40 48 -73 94 -94 38 -17 79 -19 685 -19 626 0 646 -1 678 -20 58 -35 72 -72 72 -185 0 -110 -14 -147 -67 -182 -25 -17 -73 -18 -698 -23 -672 -5 -672 -5 -708 -33 -20 -15 -44 -42 -53 -60 -21 -39 -21 -125 -1 -163 20 -38 65 -80 100 -93 19 -8 289 -11 833 -11 701 0 809 2 841 15 48 20 71 41 94 88 19 35 19 60 17 480 -3 444 -3 444 -30 479 -54 71 -23 68 -740 68 -612 0 -645 1 -685 20 -67 30 -83 66 -83 183 0 116 14 156 68 189 35 21 35 21 691 22 606 1 658 2 688 19 137 74 130 264 -12 328 -38 18 -85 19 -840 18 -652 0 -807 -2 -838 -14z",className:"jsx-301ec7a03a062a2c"})]})]}),(0,d.jsx)("span",{className:"jsx-301ec7a03a062a2c",children:"OSW Studio"})]})]})]})}},94348:()=>{},95627:(a,b,c)=>{"use strict";a.exports=c(83796).style}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495],()=>b(b.s=46544));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/login/page.js.nft.json b/.next/server/app/admin/login/page.js.nft.json
index a0f6cb1d7f70a587b1138f9091917d87885d3167..a6622048bc2b292398f2319105c12da49cd12876 100644
--- a/.next/server/app/admin/login/page.js.nft.json
+++ b/.next/server/app/admin/login/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../package.json","../../../chunks/4447.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../package.json","../../../chunks/4586.js","../../../chunks/495.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/login/page_client-reference-manifest.js b/.next/server/app/admin/login/page_client-reference-manifest.js
index 741fc304f4a796c2bf965ab8dbc914ff54785c8d..40738e43d11fbb51aba7fd0ea174c5a8d37e1011 100644
--- a/.next/server/app/admin/login/page_client-reference-manifest.js
+++ b/.next/server/app/admin/login/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/login/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":["2116","static/chunks/app/admin/login/page-5470d9718e2ee0e3.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/login/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":["2116","static/chunks/app/admin/login/page-5f069849d073f76f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/page.js b/.next/server/app/admin/page.js
index bfabcbd909674371b13f13ac1eede8179cf1c7bf..6e6ac568df577f3bd1bef7cde0ac7b35e376844e 100644
--- a/.next/server/app/admin/page.js
+++ b/.next/server/app/admin/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=3698,e.ids=[3698],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8521:(e,t,o)=>{Promise.resolve().then(o.bind(o,20435))},10716:(e,t,o)=>{Promise.resolve().then(o.t.bind(o,86346,23)),Promise.resolve().then(o.t.bind(o,27924,23)),Promise.resolve().then(o.t.bind(o,35656,23)),Promise.resolve().then(o.t.bind(o,40099,23)),Promise.resolve().then(o.t.bind(o,38243,23)),Promise.resolve().then(o.t.bind(o,28827,23)),Promise.resolve().then(o.t.bind(o,62763,23)),Promise.resolve().then(o.t.bind(o,97173,23))},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16189:(e,t,o)=>{"use strict";var r=o(65773);o.o(r,"useRouter")&&o.d(t,{useRouter:function(){return r.useRouter}}),o.o(r,"useSearchParams")&&o.d(t,{useSearchParams:function(){return r.useSearchParams}})},18249:(e,t,o)=>{Promise.resolve().then(o.bind(o,49441))},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20435:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>n});var r=o(60687);o(43210);var s=o(16189);function n(){return(0,s.useRouter)(),(0,r.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#0a0a0a]",children:(0,r.jsx)("p",{className:"text-zinc-400",children:"Redirecting..."})})}},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},39035:(e,t,o)=>{"use strict";o.d(t,{ThemeProvider:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},41900:(e,t,o)=>{"use strict";o.d(t,{default:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},49441:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx","default")},52572:(e,t,o)=>{Promise.resolve().then(o.t.bind(o,16444,23)),Promise.resolve().then(o.t.bind(o,16042,23)),Promise.resolve().then(o.t.bind(o,88170,23)),Promise.resolve().then(o.t.bind(o,49477,23)),Promise.resolve().then(o.t.bind(o,29345,23)),Promise.resolve().then(o.t.bind(o,12089,23)),Promise.resolve().then(o.t.bind(o,46577,23)),Promise.resolve().then(o.t.bind(o,31307,23))},53014:(e,t,o)=>{"use strict";o.d(t,{default:()=>i});var r=o(60687),s=o(26553),n=o(8693);function i({children:e}){let t=new s.E;return(0,r.jsx)(n.Ht,{client:t,children:e})}},54920:(e,t,o)=>{Promise.resolve().then(o.bind(o,53014)),Promise.resolve().then(o.bind(o,99197)),Promise.resolve().then(o.bind(o,94593))},58014:(e,t,o)=>{"use strict";o.r(t),o.d(t,{default:()=>m,metadata:()=>p,viewport:()=>c});var r=o(37413),s=o(95474),n=o.n(s),i=o(31015),a=o.n(i),d=o(41900),l=o(39035);o(94348);var u=o(80363);let p={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},c={initialScale:1,maximumScale:1,themeColor:"#000000"};function m({children:e}){return(0,r.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,r.jsx)("body",{className:`${n().variable} ${a().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,r.jsxs)(l.ThemeProvider,{children:[(0,r.jsx)(u.Toaster,{richColors:!0,position:"bottom-center"}),(0,r.jsx)(d.default,{children:e})]})})})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},80363:(e,t,o)=>{"use strict";o.d(t,{Toaster:()=>r});let r=(0,o(12907).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},86925:(e,t,o)=>{"use strict";o.r(t),o.d(t,{GlobalError:()=>i.a,__next_app__:()=>p,pages:()=>u,routeModule:()=>c,tree:()=>l});var r=o(65239),s=o(48088),n=o(88170),i=o.n(n),a=o(30893),d={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(d[e]=()=>a[e]);o.d(t,d);let l={children:["",{children:["admin",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(o.bind(o,49441)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(o.bind(o,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(o.t.bind(o,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(o.t.bind(o,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(o.t.bind(o,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,u=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx"],p={require:o,loadChunk:()=>Promise.resolve()},c=new r.AppPageRouteModule({definition:{kind:s.RouteKind.APP_PAGE,page:"/admin/page",pathname:"/admin",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:l}})},91368:(e,t,o)=>{Promise.resolve().then(o.bind(o,41900)),Promise.resolve().then(o.bind(o,39035)),Promise.resolve().then(o.bind(o,80363))},94348:()=>{},94593:(e,t,o)=>{"use strict";o.d(t,{Toaster:()=>i});var r=o(60687),s=o(10218),n=o(52581);let i=({...e})=>{let{theme:t}=(0,s.D)();return(0,r.jsx)(n.l$,{theme:t,className:"toaster group",style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...e})}},99197:(e,t,o)=>{"use strict";o.d(t,{ThemeProvider:()=>n});var r=o(60687);o(43210);var s=o(10218);function n({children:e,attribute:t="class",defaultTheme:o="dark",enableSystem:n=!0,storageKey:i="osw-studio-theme",...a}){return(0,r.jsx)(s.N,{attribute:t,defaultTheme:o,enableSystem:n,storageKey:i,disableTransitionOnChange:!0,...a,children:e})}}};var t=require("../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),r=t.X(0,[4447,8055],()=>o(86925));module.exports=r})();
\ No newline at end of file
+(()=>{var a={};a.id=3698,a.ids=[3698],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8521:(a,b,c)=>{Promise.resolve().then(c.bind(c,82016))},10024:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,37734)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/page",pathname:"/admin",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16953:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>n,metadata:()=>l,viewport:()=>m});var d=c(75338),e=c(17092),f=c.n(e),g=c(35385),h=c.n(g),i=c(69507),j=c(26262);c(94348);var k=c(20656);let l={title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",openGraph:{title:"Open Source Web Studio | Agentic AI Development \uD83C\uDFA8",description:"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",url:"https://huggingface.co/spaces/otst/osw-studio",siteName:"Open Source Web Studio",images:[{url:"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png",width:1200,height:630,alt:"Open Source Web Studio - Agentic AI Development"}]},twitter:{card:"summary_large_image",title:"OSW-Studio | Agentic AI Development \uD83C\uDFA8",description:"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language.",images:["https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"]},appleWebApp:{capable:!0,title:"OSW-Studio",statusBarStyle:"black-translucent"},icons:{icon:"/osw-studio-logo.svg",shortcut:"/osw-studio-logo.svg",apple:"/osw-studio-logo.svg"}},m={initialScale:1,maximumScale:1,themeColor:"#000000"};function n({children:a}){return(0,d.jsx)("html",{lang:"en",suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:`${f().variable} ${h().variable} antialiased bg-background h-[100dvh] overflow-hidden`,suppressHydrationWarning:!0,children:(0,d.jsxs)(j.ThemeProvider,{children:[(0,d.jsx)(k.Toaster,{richColors:!0,position:"bottom-center"}),(0,d.jsx)(i.default,{children:a})]})})})}},18249:(a,b,c)=>{Promise.resolve().then(c.bind(c,37734))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20656:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Toaster() from the server but Toaster is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx","Toaster")},26262:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx","ThemeProvider")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35704:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},37734:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx","default")},38502:(a,b,c)=>{"use strict";c.d(b,{Toaster:()=>g});var d=c(21124),e=c(45523),f=c(42830);let g=({...a})=>{let{theme:b}=(0,e.D)();return(0,d.jsx)(f.l$,{theme:b,className:"toaster group",closeButton:!0,style:{"--normal-bg":"var(--popover)","--normal-text":"var(--popover-foreground)","--normal-border":"var(--border)"},...a})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42378:(a,b,c)=>{"use strict";var d=c(91330);c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},45432:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},54920:(a,b,c)=>{Promise.resolve().then(c.bind(c,83133)),Promise.resolve().then(c.bind(c,67600)),Promise.resolve().then(c.bind(c,38502))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67600:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(21124);c(38301);var e=c(45523);function f({children:a,attribute:b="class",defaultTheme:c="dark",enableSystem:f=!0,storageKey:g="osw-studio-theme",...h}){return(0,d.jsx)(e.N,{attribute:b,defaultTheme:c,enableSystem:f,storageKey:g,disableTransitionOnChange:!0,...h,children:a})}},69507:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx","default")},82016:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(21124);c(38301);var e=c(42378);function f(){return(0,e.useRouter)(),(0,d.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#0a0a0a]",children:(0,d.jsx)("p",{className:"text-zinc-400",children:"Redirecting..."})})}},83133:(a,b,c)=>{"use strict";c.d(b,{default:()=>g});var d=c(21124),e=c(62806),f=c(96610);function g({children:a}){let b=new e.E;return(0,d.jsx)(f.Ht,{client:b,children:a})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91368:(a,b,c)=>{Promise.resolve().then(c.bind(c,69507)),Promise.resolve().then(c.bind(c,26262)),Promise.resolve().then(c.bind(c,20656))},94348:()=>{}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495],()=>b(b.s=10024));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/page.js.nft.json b/.next/server/app/admin/page.js.nft.json
index 99a9c00592ebcfd9966fb119f30779d09806bd21..9942162f87594dc184ec46e4d3101b0ebbbfef58 100644
--- a/.next/server/app/admin/page.js.nft.json
+++ b/.next/server/app/admin/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/package.json","../../../package.json","../../chunks/4447.js","../../chunks/8055.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/package.json","../../../package.json","../../chunks/4586.js","../../chunks/495.js","../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/page_client-reference-manifest.js b/.next/server/app/admin/page_client-reference-manifest.js
index 74d2a462115fd46a0ad3ffc0eb5bbbd378545420..f8748fd42b063d3995cfe252c84b0bcdc5772219 100644
--- a/.next/server/app/admin/page_client-reference-manifest.js
+++ b/.next/server/app/admin/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/projects.html b/.next/server/app/admin/projects.html
index 9b58ffffefd563112f6446a484348cd8654c0cf4..1497e53472828c5d41329ace54d6564cc36055cc 100644
--- a/.next/server/app/admin/projects.html
+++ b/.next/server/app/admin/projects.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Projects
\ No newline at end of file
diff --git a/.next/server/app/admin/projects.rsc b/.next/server/app/admin/projects.rsc
index cd0f5a5743bf52132cf12ad5679516b38fc598e0..14bdd7d660ef3d997e10bbf918b6cbb2ea0dce0e 100644
--- a/.next/server/app/admin/projects.rsc
+++ b/.next/server/app/admin/projects.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","3321","static/chunks/app/admin/projects/page-1fe7c7e20e00f2b6.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","3321","static/chunks/app/admin/projects/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","projects"],"i":false,"f":[[["",{"children":["admin",{"children":["projects",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["projects",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"projects"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","FSQAEgqLaodOFNXTr-iD3v",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","projects"],"i":false,"f":[[["",{"children":["admin",{"children":["projects",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["projects",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"projects"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/projects/page.js b/.next/server/app/admin/projects/page.js
index ef5ec75ecfd605499535b631e2b28557e795a15f..0dbc7a40f8ca16a69a992c2399dd66a60f27494c 100644
--- a/.next/server/app/admin/projects/page.js
+++ b/.next/server/app/admin/projects/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=3321,e.ids=[3321],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},9063:(e,r,t)=>{"use strict";t.r(r),t.d(r,{GlobalError:()=>i.a,__next_app__:()=>c,pages:()=>d,routeModule:()=>l,tree:()=>u});var s=t(65239),o=t(48088),n=t(88170),i=t.n(n),a=t(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);t.d(r,p);let u={children:["",{children:["admin",{children:["projects",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(t.bind(t,72438)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(t.bind(t,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(t.t.bind(t,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(t.t.bind(t,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(t.t.bind(t,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page.tsx"],c={require:t,loadChunk:()=>Promise.resolve()},l=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/projects/page",pathname:"/admin/projects",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,r,t)=>{Promise.resolve().then(t.bind(t,36903))},36903:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>s});let s=(0,t(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,r,t)=>{Promise.resolve().then(t.bind(t,69001))},69001:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>l});var s=t(60687),o=t(43210),n=t(11755),i=t(80021),a=t(35157),p=t(2565),u=t(13265),d=t(96597);function c({view:e,settingsTab:r}){let[t,p]=(0,o.useState)(null),[c,l]=(0,o.useState)(!1),x=t?(0,s.jsx)(a.a,{project:t,onBack:()=>p(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:p,settingsTab:r});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>l(!0),showSidebar:!t,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:c,onOpenChange:l})]})}function l({view:e,settingsTab:r}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(c,{view:e,settingsTab:r})})}},72438:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>n});var s=t(37413),o=t(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"projects"})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4447,8055,329,4390,3640,1123],()=>t(9063));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=3321,a.ids=[3321],a.modules={100:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"projects"})}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},72114:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["projects",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,100)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/projects/page",pathname:"/admin/projects",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/projects/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=72114));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/projects/page.js.nft.json b/.next/server/app/admin/projects/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/projects/page.js.nft.json
+++ b/.next/server/app/admin/projects/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/projects/page_client-reference-manifest.js b/.next/server/app/admin/projects/page_client-reference-manifest.js
index 276ab482c88fd01cb22f45f7d0bb674a84343fc6..5c99c8fe00065357021f86a8e6b96bf2f1c7ace3 100644
--- a/.next/server/app/admin/projects/page_client-reference-manifest.js
+++ b/.next/server/app/admin/projects/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/projects/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","3321","static/chunks/app/admin/projects/page-1fe7c7e20e00f2b6.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/projects/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","3321","static/chunks/app/admin/projects/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/projects/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings.html b/.next/server/app/admin/settings.html
index 68c7766e98c7f4f42c7d159eda11b799b6742969..4c7046ff98839267f3fd3fa4f830176d9b7d4d0a 100644
--- a/.next/server/app/admin/settings.html
+++ b/.next/server/app/admin/settings.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Settings
\ No newline at end of file
diff --git a/.next/server/app/admin/settings.rsc b/.next/server/app/admin/settings.rsc
index 8ba8d5b80d41da197eb2e0e69b84a0797dd718a2..53c3847b51ac74a72876c76e913d233904fe0e9b 100644
--- a/.next/server/app/admin/settings.rsc
+++ b/.next/server/app/admin/settings.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","7122","static/chunks/app/admin/settings/page-9f364b6b8587064f.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","7122","static/chunks/app/admin/settings/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","settings"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","KqxEfsOmTSxej7szlqrI4v",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","settings"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/settings/application.html b/.next/server/app/admin/settings/application.html
index b2dc9ce8f81c0916d27a31bf30d2ba45d3814631..a5e59fcc974fd10995a086951e3526d8968dd357 100644
--- a/.next/server/app/admin/settings/application.html
+++ b/.next/server/app/admin/settings/application.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Settings
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/application.rsc b/.next/server/app/admin/settings/application.rsc
index 8b4d538c8744f84343de935a6ade583c8f858cd7..8932d410e644a4ad3438566549a463e345a4a5b0 100644
--- a/.next/server/app/admin/settings/application.rsc
+++ b/.next/server/app/admin/settings/application.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","6047","static/chunks/app/admin/settings/application/page-a874fccacd499bea.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","6047","static/chunks/app/admin/settings/application/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","settings","application"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["application",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["application",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings","settingsTab":"application"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","zaUWWFFDoiKtDKkefN0rXv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","settings","application"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["application",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["application",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings","settingsTab":"application"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/settings/application/page.js b/.next/server/app/admin/settings/application/page.js
index a3592e25aef106dfa7ba850d4d579dca9aec4865..caf58866739d242518b18519c496da04102b2e05 100644
--- a/.next/server/app/admin/settings/application/page.js
+++ b/.next/server/app/admin/settings/application/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=6047,e.ids=[6047],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,t,r)=>{Promise.resolve().then(r.bind(r,36903))},36903:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},37088:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>o});var s=r(37413),i=r(36903);function o(){return(0,s.jsx)(i.PageWrapper,{view:"settings",settingsTab:"application"})}},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,t,r)=>{Promise.resolve().then(r.bind(r,69001))},69001:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>c});var s=r(60687),i=r(43210),o=r(11755),n=r(80021),a=r(35157),p=r(2565),u=r(13265),d=r(96597);function l({view:e,settingsTab:t}){let[r,p]=(0,i.useState)(null),[l,c]=(0,i.useState)(!1),x=r?(0,s.jsx)(a.a,{project:r,onBack:()=>p(null)}):(0,s.jsx)(n.f,{view:e,onProjectSelect:p,settingsTab:t});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(o.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!r,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:t}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:t})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},89575:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>n.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>u});var s=r(65239),i=r(48088),o=r(88170),n=r.n(o),a=r(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);r.d(t,p);let u={children:["",{children:["admin",{children:["settings",{children:["application",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,37088)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page.tsx"]}]},{}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:i.RouteKind.APP_PAGE,page:"/admin/settings/application/page",pathname:"/admin/settings/application",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(89575));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=6047,a.ids=[6047],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},22578:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["settings",{children:["application",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,74629)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page.tsx"]}]},{}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/settings/application/page",pathname:"/admin/settings/application",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/settings/application/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},74629:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"settings",settingsTab:"application"})}},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=22578));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/application/page.js.nft.json b/.next/server/app/admin/settings/application/page.js.nft.json
index f9f3dc260a31f04e5f7a316f07aabef5170c7ddf..45991383d5de1781c3099d6be3b7b2e86f1a6f73 100644
--- a/.next/server/app/admin/settings/application/page.js.nft.json
+++ b/.next/server/app/admin/settings/application/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1123.js","../../../../chunks/1519.js","../../../../chunks/2629.js","../../../../chunks/329.js","../../../../chunks/3640.js","../../../../chunks/4390.js","../../../../chunks/4447.js","../../../../chunks/7783.js","../../../../chunks/8055.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4221.js","../../../../chunks/4586.js","../../../../chunks/4681.js","../../../../chunks/495.js","../../../../chunks/740.js","../../../../chunks/774.js","../../../../chunks/7811.js","../../../../chunks/8686.js","../../../../chunks/9975.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/application/page_client-reference-manifest.js b/.next/server/app/admin/settings/application/page_client-reference-manifest.js
index d41da0fbe47819f2b8155fc348ee6830179ef563..02eafe27895bc27d3453542e3f5bb8ad1ea0dd0b 100644
--- a/.next/server/app/admin/settings/application/page_client-reference-manifest.js
+++ b/.next/server/app/admin/settings/application/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/application/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","6047","static/chunks/app/admin/settings/application/page-a874fccacd499bea.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/application/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","6047","static/chunks/app/admin/settings/application/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/application/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/model.html b/.next/server/app/admin/settings/model.html
index addad281d67286f331fad6a3411f6e50d9705076..fd6faa03af71d58cddc2b42a4cf8aef93c04ecfc 100644
--- a/.next/server/app/admin/settings/model.html
+++ b/.next/server/app/admin/settings/model.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Settings
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/model.rsc b/.next/server/app/admin/settings/model.rsc
index 8e512a6777cec7f34132714ca8d0747edb2594cb..d481c267d68ccc9da7574faca8ecea3edd85bc99 100644
--- a/.next/server/app/admin/settings/model.rsc
+++ b/.next/server/app/admin/settings/model.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","3116","static/chunks/app/admin/settings/model/page-5bed268748dbbc2a.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","3116","static/chunks/app/admin/settings/model/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","settings","model"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["model",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["model",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings","settingsTab":"model"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","c9wKEjvW4AKZmrwxmRNUSv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","settings","model"],"i":false,"f":[[["",{"children":["admin",{"children":["settings",{"children":["model",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["settings",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["model",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"settings","settingsTab":"model"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/settings/model/page.js b/.next/server/app/admin/settings/model/page.js
index f5bab615d7ea21d5426b6db70f96dc9b9616377d..c8294acc4dbd99dec879fc244d810978c41618af 100644
--- a/.next/server/app/admin/settings/model/page.js
+++ b/.next/server/app/admin/settings/model/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=3116,e.ids=[3116],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,t,r)=>{Promise.resolve().then(r.bind(r,36903))},36903:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55355:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>l,pages:()=>u,routeModule:()=>c,tree:()=>d});var s=r(65239),o=r(48088),n=r(88170),i=r.n(n),a=r(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);r.d(t,p);let d={children:["",{children:["admin",{children:["settings",{children:["model",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,91855)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page.tsx"]}]},{}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,u=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/settings/model/page",pathname:"/admin/settings/model",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:d}})},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,t,r)=>{Promise.resolve().then(r.bind(r,69001))},69001:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>c});var s=r(60687),o=r(43210),n=r(11755),i=r(80021),a=r(35157),p=r(2565),d=r(13265),u=r(96597);function l({view:e,settingsTab:t}){let[r,p]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=r?(0,s.jsx)(a.a,{project:r,onBack:()=>p(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:p,settingsTab:t});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!r,children:x}),(0,s.jsx)(d.V,{location:"global"}),(0,s.jsx)(u.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:t}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:t})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},91855:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});var s=r(37413),o=r(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"settings",settingsTab:"model"})}},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(55355));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=3116,a.ids=[3116],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},67570:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"settings",settingsTab:"model"})}},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},80862:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["settings",{children:["model",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,67570)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page.tsx"]}]},{}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/settings/model/page",pathname:"/admin/settings/model",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/settings/model/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=80862));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/model/page.js.nft.json b/.next/server/app/admin/settings/model/page.js.nft.json
index f9f3dc260a31f04e5f7a316f07aabef5170c7ddf..45991383d5de1781c3099d6be3b7b2e86f1a6f73 100644
--- a/.next/server/app/admin/settings/model/page.js.nft.json
+++ b/.next/server/app/admin/settings/model/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1123.js","../../../../chunks/1519.js","../../../../chunks/2629.js","../../../../chunks/329.js","../../../../chunks/3640.js","../../../../chunks/4390.js","../../../../chunks/4447.js","../../../../chunks/7783.js","../../../../chunks/8055.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4221.js","../../../../chunks/4586.js","../../../../chunks/4681.js","../../../../chunks/495.js","../../../../chunks/740.js","../../../../chunks/774.js","../../../../chunks/7811.js","../../../../chunks/8686.js","../../../../chunks/9975.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/model/page_client-reference-manifest.js b/.next/server/app/admin/settings/model/page_client-reference-manifest.js
index 10f5d159dcbabacf0aec1d548a65d5ec333cf1c1..779046735dbc3c1374a35ec59de0c08e8e71f6a3 100644
--- a/.next/server/app/admin/settings/model/page_client-reference-manifest.js
+++ b/.next/server/app/admin/settings/model/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/model/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","3116","static/chunks/app/admin/settings/model/page-5bed268748dbbc2a.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/model/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","3116","static/chunks/app/admin/settings/model/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/model/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/page.js b/.next/server/app/admin/settings/page.js
index 3335c9345a41eb44427b29e1359aea8cfa0cdb71..4bdedacab625d2edcc0084fb6f00612ee087eba7 100644
--- a/.next/server/app/admin/settings/page.js
+++ b/.next/server/app/admin/settings/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=7122,e.ids=[7122],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,t,r)=>{Promise.resolve().then(r.bind(r,36903))},36903:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,t,r)=>{Promise.resolve().then(r.bind(r,69001))},69001:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>c});var s=r(60687),o=r(43210),n=r(11755),i=r(80021),a=r(35157),p=r(2565),u=r(13265),d=r(96597);function l({view:e,settingsTab:t}){let[r,p]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=r?(0,s.jsx)(a.a,{project:r,onBack:()=>p(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:p,settingsTab:t});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!r,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:t}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:t})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},81881:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});var s=r(37413),o=r(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"settings"})}},87371:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>u});var s=r(65239),o=r(48088),n=r(88170),i=r.n(n),a=r(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);r.d(t,p);let u={children:["",{children:["admin",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,81881)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/settings/page",pathname:"/admin/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(87371));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=7122,a.ids=[7122],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},60270:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["settings",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,62800)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/settings/page",pathname:"/admin/settings",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/settings/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},62800:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"settings"})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=60270));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/page.js.nft.json b/.next/server/app/admin/settings/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/settings/page.js.nft.json
+++ b/.next/server/app/admin/settings/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/settings/page_client-reference-manifest.js b/.next/server/app/admin/settings/page_client-reference-manifest.js
index 806221107382bcfa3203872aade56c4660640bc6..4906cadf50eb5ae25a137e8b4504b0bf6249014c 100644
--- a/.next/server/app/admin/settings/page_client-reference-manifest.js
+++ b/.next/server/app/admin/settings/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","7122","static/chunks/app/admin/settings/page-9f364b6b8587064f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/settings/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","7122","static/chunks/app/admin/settings/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/settings/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/sites.html b/.next/server/app/admin/sites.html
index 231dfab1011d7935dc8ea3adb75bcb3d97437422..1c447e3834ffb040fb6f2485f6f146ef24d13a56 100644
--- a/.next/server/app/admin/sites.html
+++ b/.next/server/app/admin/sites.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
Sites feature is only available in Server Mode
\ No newline at end of file
+ Sites
Sites feature is only available in Server Mode
\ No newline at end of file
diff --git a/.next/server/app/admin/sites.rsc b/.next/server/app/admin/sites.rsc
index ce630c199744139cc2755f4c33d719c87707fe01..5029550646fcd0f8ee5a930073faba74539b55d1 100644
--- a/.next/server/app/admin/sites.rsc
+++ b/.next/server/app/admin/sites.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","921","static/chunks/app/admin/sites/page-cab0d1490b6a10b2.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","921","static/chunks/app/admin/sites/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","sites"],"i":false,"f":[[["",{"children":["admin",{"children":["sites",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["sites",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"sites"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","9GCyB1WVKfTs8lnBP_OWDv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","sites"],"i":false,"f":[[["",{"children":["admin",{"children":["sites",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["sites",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"sites"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/sites/page.js b/.next/server/app/admin/sites/page.js
index 6dfb075364ee5619ee073283d0b2bf94c1e8850f..0b0bd70358741485e2ac5732e1ae3d591ade8765 100644
--- a/.next/server/app/admin/sites/page.js
+++ b/.next/server/app/admin/sites/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=921,e.ids=[921],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,t,r)=>{Promise.resolve().then(r.bind(r,36903))},36903:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55511:e=>{"use strict";e.exports=require("crypto")},56117:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>n.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>u});var s=r(65239),o=r(48088),i=r(88170),n=r.n(i),a=r(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);r.d(t,p);let u={children:["",{children:["admin",{children:["sites",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,69862)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/sites/page",pathname:"/admin/sites",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,t,r)=>{Promise.resolve().then(r.bind(r,69001))},69001:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>c});var s=r(60687),o=r(43210),i=r(11755),n=r(80021),a=r(35157),p=r(2565),u=r(13265),d=r(96597);function l({view:e,settingsTab:t}){let[r,p]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=r?(0,s.jsx)(a.a,{project:r,onBack:()=>p(null)}):(0,s.jsx)(n.f,{view:e,onProjectSelect:p,settingsTab:t});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!r,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:t}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:t})})}},69862:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var s=r(37413),o=r(36903);function i(){return(0,s.jsx)(o.PageWrapper,{view:"sites"})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(56117));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=921,a.ids=[921],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},76464:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["sites",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,85433)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/sites/page",pathname:"/admin/sites",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/sites/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},85433:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"sites"})}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=76464));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/sites/page.js.nft.json b/.next/server/app/admin/sites/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/sites/page.js.nft.json
+++ b/.next/server/app/admin/sites/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/sites/page_client-reference-manifest.js b/.next/server/app/admin/sites/page_client-reference-manifest.js
index f3f0dd63ec05eec98d0a964d3b9c132e1248d26a..ef91baff656698ef0e5a438ed8eb3b4dd08ba5b4 100644
--- a/.next/server/app/admin/sites/page_client-reference-manifest.js
+++ b/.next/server/app/admin/sites/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/sites/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","921","static/chunks/app/admin/sites/page-cab0d1490b6a10b2.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/sites/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","921","static/chunks/app/admin/sites/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/sites/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/skills.html b/.next/server/app/admin/skills.html
index cd3db1e35a0846eedb13727972319f44c106fc89..7d703700dbacb63142aedae478b4b1aff4cc34dd 100644
--- a/.next/server/app/admin/skills.html
+++ b/.next/server/app/admin/skills.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Skills
\ No newline at end of file
diff --git a/.next/server/app/admin/skills.rsc b/.next/server/app/admin/skills.rsc
index 2d117f750662624ca270ab63405a4dd4e55e7713..4af6baaee4694a1e1da849f735f551137f93b989 100644
--- a/.next/server/app/admin/skills.rsc
+++ b/.next/server/app/admin/skills.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","849","static/chunks/app/admin/skills/page-929d76911d7d6b6c.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","849","static/chunks/app/admin/skills/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","skills"],"i":false,"f":[[["",{"children":["admin",{"children":["skills",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["skills",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"skills"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","NXOqrb1LKA_nk85Y1DBD4v",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","skills"],"i":false,"f":[[["",{"children":["admin",{"children":["skills",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["skills",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"skills"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/skills/page.js b/.next/server/app/admin/skills/page.js
index ca5d20ad60ca6397766070ce7681b48a62479185..defb750d08f1de691c3b0b5cfb6377898b6bdf04 100644
--- a/.next/server/app/admin/skills/page.js
+++ b/.next/server/app/admin/skills/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=849,e.ids=[849],e.modules={1239:(e,r,t)=>{"use strict";t.r(r),t.d(r,{GlobalError:()=>n.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>u});var s=t(65239),o=t(48088),i=t(88170),n=t.n(i),a=t(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);t.d(r,p);let u={children:["",{children:["admin",{children:["skills",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(t.bind(t,35110)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(t.bind(t,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(t.t.bind(t,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(t.t.bind(t,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(t.t.bind(t,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page.tsx"],l={require:t,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/skills/page",pathname:"/admin/skills",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},35110:(e,r,t)=>{"use strict";t.r(r),t.d(r,{default:()=>i});var s=t(37413),o=t(36903);function i(){return(0,s.jsx)(o.PageWrapper,{view:"skills"})}},36167:(e,r,t)=>{Promise.resolve().then(t.bind(t,36903))},36903:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>s});let s=(0,t(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,r,t)=>{Promise.resolve().then(t.bind(t,69001))},69001:(e,r,t)=>{"use strict";t.d(r,{PageWrapper:()=>c});var s=t(60687),o=t(43210),i=t(11755),n=t(80021),a=t(35157),p=t(2565),u=t(13265),d=t(96597);function l({view:e,settingsTab:r}){let[t,p]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=t?(0,s.jsx)(a.a,{project:t,onBack:()=>p(null)}):(0,s.jsx)(n.f,{view:e,onProjectSelect:p,settingsTab:r});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!t,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:r}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:r})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4447,8055,329,4390,3640,1123],()=>t(1239));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=849,a.ids=[849],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64354:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["skills",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,76983)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/skills/page",pathname:"/admin/skills",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/skills/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},76983:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"skills"})}},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=64354));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/skills/page.js.nft.json b/.next/server/app/admin/skills/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/skills/page.js.nft.json
+++ b/.next/server/app/admin/skills/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/skills/page_client-reference-manifest.js b/.next/server/app/admin/skills/page_client-reference-manifest.js
index 142d4b17ecfe0afb627d9321ccee2312ea973137..ae8977c41f9cc465268a39dc542e47436412e291 100644
--- a/.next/server/app/admin/skills/page_client-reference-manifest.js
+++ b/.next/server/app/admin/skills/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/skills/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","849","static/chunks/app/admin/skills/page-929d76911d7d6b6c.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/skills/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","849","static/chunks/app/admin/skills/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/skills/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/admin/templates.html b/.next/server/app/admin/templates.html
index 5d04d3cce4805340de78bc95c375d4a1cead9ab3..bad0ce2ef09d039c08dd16e1b2a5ff0f1020c5cc 100644
--- a/.next/server/app/admin/templates.html
+++ b/.next/server/app/admin/templates.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+ Templates
\ No newline at end of file
diff --git a/.next/server/app/admin/templates.rsc b/.next/server/app/admin/templates.rsc
index ad3dfc5fafec407238912ecff7f049cdf4bdd09d..6ca397a9a2f4d8e508d74c70b3d978f614c5f13d 100644
--- a/.next/server/app/admin/templates.rsc
+++ b/.next/server/app/admin/templates.rsc
@@ -1,25 +1,23 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[19009,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","7698","static/chunks/app/admin/templates/page-504a7473b0432e50.js"],"PageWrapper"]
-8:I[59665,[],"OutletBoundary"]
-b:I[74911,[],"AsyncMetadataOutlet"]
-d:I[59665,[],"ViewportBoundary"]
-f:I[59665,[],"MetadataBoundary"]
-11:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[43688,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","7698","static/chunks/app/admin/templates/page-6851bc68b8a2db8f.js"],"PageWrapper"]
+8:I[24431,[],"OutletBoundary"]
+a:I[15278,[],"AsyncMetadataOutlet"]
+c:I[24431,[],"ViewportBoundary"]
+e:I[24431,[],"MetadataBoundary"]
+f:"$Sreact.suspense"
+11:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","admin","templates"],"i":false,"f":[[["",{"children":["admin",{"children":["templates",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["templates",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"templates"}],null,["$","$L8",null,{"children":["$L9","$La",["$","$Lb",null,{"promise":"$@c"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","sm3CE0sixPr7FflLzBHVgv",{"children":[["$","$Ld",null,{"children":"$Le"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$Lf",null,{"children":"$L10"}]]}],false]],"m":"$undefined","G":["$11","$undefined"],"s":false,"S":true}
-12:"$Sreact.suspense"
-13:I[74911,[],"AsyncMetadata"]
-10:["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":["$","$L13",null,{"promise":"$@14"}]}]}]
-a:null
-e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","admin","templates"],"i":false,"f":[[["",{"children":["admin",{"children":["templates",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["admin",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["templates",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"view":"templates"}],null,["$","$L8",null,{"children":["$L9",["$","$La",null,{"promise":"$@b"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lc",null,{"children":"$Ld"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$Le",null,{"children":["$","div",null,{"hidden":true,"children":["$","$f",null,{"fallback":null,"children":"$L10"}]}]}]]}],false]],"m":"$undefined","G":["$11",[]],"s":false,"S":true}
+d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
9:null
-c:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-14:{"metadata":"$c:metadata","error":null,"digest":"$undefined"}
+12:I[80622,[],"IconMark"]
+b:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L12","20",{}]],"error":null,"digest":"$undefined"}
+10:"$b:metadata"
diff --git a/.next/server/app/admin/templates/page.js b/.next/server/app/admin/templates/page.js
index e89e3d9c90748d418b9ea8e560a614065ba19df8..538233bf1efd1cbeb289ccde9d1b47eda5cee178 100644
--- a/.next/server/app/admin/templates/page.js
+++ b/.next/server/app/admin/templates/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=7698,e.ids=[7698],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11849:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});var s=r(37413),o=r(36903);function n(){return(0,s.jsx)(o.PageWrapper,{view:"templates"})}},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},36167:(e,t,r)=>{Promise.resolve().then(r.bind(r,36903))},36903:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},46125:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>u});var s=r(65239),o=r(48088),n=r(88170),i=r.n(n),a=r(30893),p={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(p[e]=()=>a[e]);r.d(t,p);let u={children:["",{children:["admin",{children:["templates",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,11849)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}]}.children,d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/admin/templates/page",pathname:"/admin/templates",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:u}})},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(e,t,r)=>{Promise.resolve().then(r.bind(r,69001))},69001:(e,t,r)=>{"use strict";r.d(t,{PageWrapper:()=>c});var s=r(60687),o=r(43210),n=r(11755),i=r(80021),a=r(35157),p=r(2565),u=r(13265),d=r(96597);function l({view:e,settingsTab:t}){let[r,p]=(0,o.useState)(null),[l,c]=(0,o.useState)(!1),x=r?(0,s.jsx)(a.a,{project:r,onBack:()=>p(null)}):(0,s.jsx)(i.f,{view:e,onProjectSelect:p,settingsTab:t});return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.M,{currentView:e,onNavigate:()=>{},onProjectSelect:p,onOpenAbout:()=>c(!0),showSidebar:!r,children:x}),(0,s.jsx)(u.V,{location:"global"}),(0,s.jsx)(d.V,{open:l,onOpenChange:c})]})}function c({view:e,settingsTab:t}){return(0,s.jsx)(p.g,{children:(0,s.jsx)(l,{view:e,settingsTab:t})})}},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},87550:e=>{"use strict";e.exports=require("better-sqlite3")},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(46125));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=7698,a.ids=[7698],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},2054:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call PageWrapper() from the server but PageWrapper is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx","PageWrapper")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31152:(a,b,c)=>{"use strict";c.d(b,{PageWrapper:()=>m});var d=c(21124),e=c(38301),f=c(29569),g=c(81535),h=c(40987),i=c(95919),j=c(14258),k=c(45914);function l({view:a,settingsTab:b}){let[c,i]=(0,e.useState)(null),[l,m]=(0,e.useState)(!1),n=c?(0,d.jsx)(h.a,{project:c,onBack:()=>i(null)}):(0,d.jsx)(g.f,{view:a,onProjectSelect:i,settingsTab:b});return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.M,{currentView:a,onNavigate:()=>{},onProjectSelect:i,onOpenAbout:()=>m(!0),showSidebar:!c,children:n}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(k.V,{open:l,onOpenChange:m})]})}function m({view:a,settingsTab:b}){return(0,d.jsx)(i.g,{children:(0,d.jsx)(l,{view:a,settingsTab:b})})}},33873:a=>{"use strict";a.exports=require("path")},36167:(a,b,c)=>{Promise.resolve().then(c.bind(c,2054))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46888:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H={children:["",{children:["admin",{children:["templates",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50554)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page.tsx"]}]},{}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}]}.children,I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/admin/templates/page",pathname:"/admin/templates",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/admin/templates/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},50554:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(2054);function f(){return(0,d.jsx)(e.PageWrapper,{view:"templates"})}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66431:(a,b,c)=>{Promise.resolve().then(c.bind(c,31152))},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=46888));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/admin/templates/page.js.nft.json b/.next/server/app/admin/templates/page.js.nft.json
index 6f4650d25405861319e2cf72dfe289aaa6cbe4f6..c792533b162039ba63383da3913630d94bbba358 100644
--- a/.next/server/app/admin/templates/page.js.nft.json
+++ b/.next/server/app/admin/templates/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1123.js","../../../chunks/1519.js","../../../chunks/2629.js","../../../chunks/329.js","../../../chunks/3640.js","../../../chunks/4390.js","../../../chunks/4447.js","../../../chunks/7783.js","../../../chunks/8055.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4221.js","../../../chunks/4586.js","../../../chunks/4681.js","../../../chunks/495.js","../../../chunks/740.js","../../../chunks/774.js","../../../chunks/7811.js","../../../chunks/8686.js","../../../chunks/9975.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/admin/templates/page_client-reference-manifest.js b/.next/server/app/admin/templates/page_client-reference-manifest.js
index b9f8dabf7bd4a4667c221223cad8eece69258f85..87c1c3b784114bd538f2bbf0f9cc3db95dd2b8c2 100644
--- a/.next/server/app/admin/templates/page_client-reference-manifest.js
+++ b/.next/server/app/admin/templates/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/templates/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","7698","static/chunks/app/admin/templates/page-504a7473b0432e50.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":["3698","static/chunks/app/admin/page-b2a62d22e5b9b7f1.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/admin/templates/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","7698","static/chunks/app/admin/templates/page-6851bc68b8a2db8f.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":["3698","static/chunks/app/admin/page-700ea05bb99f3aa7.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/templates/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/dashboard/route.js b/.next/server/app/api/admin/dashboard/route.js
index ea8a9e4bab382e2618892351801ea88289225e9e..26344e894bb0331310b83020972567fff031babb 100644
--- a/.next/server/app/api/admin/dashboard/route.js
+++ b/.next/server/app/api/admin/dashboard/route.js
@@ -1,38 +1,38 @@
-(()=>{var e={};e.id=7426,e.ids=[7426],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19870:(e,t,r)=>{"use strict";r.d(t,{XO:()=>i,ad:()=>o,p1:()=>u});var s=r(55511);let n=null;function a(){if(!n){let{getCoreDatabase:e}=r(50854);n=e()}return n}function o(e){try{var t;let r=a();if(!r)return;let n=(t=e.ip)&&"unknown"!==t?(0,s.createHash)("sha256").update(t).digest("hex").substring(0,8):"unknown",o=e.userAgent?.substring(0,255)||"";r.prepare(`
+(()=>{var a={};a.id=7426,a.ids=[7426],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39588:(a,b,c)=>{"use strict";c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},42054:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>M,patchFetch:()=>L,routeModule:()=>H,serverHooks:()=>K,workAsyncStorage:()=>I,workUnitAsyncStorage:()=>J});var d={};c.r(d),c.d(d,{GET:()=>G});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(86802),x=c(74051),y=c(94471),z=c(29021),A=c(33873),B=c.n(A);async function C(){try{let a=B().join(process.cwd(),"package.json"),b=await z.promises.readFile(a,"utf-8");return JSON.parse(b).version||"unknown"}catch{return"unknown"}}async function D(){let a={version:"unknown",title:"Welcome to OSW Studio",highlights:[]};try{let b,c=B().join(process.cwd(),"docs","WHATS_NEW.md"),d=await z.promises.readFile(c,"utf-8"),e=d.match(/^## v(\d+\.\d+\.\d+)\s*-\s*(.+)$/m);if(!e)return a;let f=e[1],g=e[2].trim(),h=d.indexOf(e[0]),i=d.substring(h+e[0].length),j=i.match(/^(?:## |---)/m),k=j?i.substring(0,j.index):i,l=/^[-*]\s+\*\*(.+?)\*\*\s*[-–]?\s*(.*)$/gm,m=[];for(;null!==(b=l.exec(k))&&m.length<4;){let a=b[1].trim(),c=b[2]?.trim();m.push(c?`${a} - ${c}`:a)}if(0===m.length){let a=/^[-*]\s+(.+)$/gm;for(;null!==(b=a.exec(k))&&m.length<4;){let a=b[1].trim();a.match(/^\[.*\]\(.*\)$/)||m.push(a.replace(/\*\*/g,""))}}return{version:f,title:g,highlights:m}}catch{return a}}async function E(a){let b=0;try{for(let c of(await z.promises.readdir(a,{withFileTypes:!0}))){let d=B().join(a,c.name);if(c.isDirectory())b+=await E(d);else if(c.isFile()){let a=await z.promises.stat(d);b+=a.size}}}catch{}return b}async function F(){let a=B().join(process.cwd(),"sites"),b=0;try{for(let c of(await z.promises.readdir(a,{withFileTypes:!0})))if(c.isDirectory()){let d=B().join(a,c.name,"site.sqlite");try{await z.promises.access(d),b++}catch{}}}catch{}return b}async function G(){try{let a=await (0,w.UL)(),b=a.get("osw_session")?.value;if(!b)return u.NextResponse.json({error:"Unauthorized"},{status:401});let c=await (0,v.gV)(b);if(!c||!c.isAdmin)return u.NextResponse.json({error:"Unauthorized"},{status:401});let d=(0,x.getCoreDatabase)();(0,y.p1)(7);let[e,f,g,h,i,j,k,l,m,n]=await Promise.all([C(),Promise.resolve(d.prepare("SELECT COUNT(*) as count FROM projects").get().count),Promise.resolve(d.prepare("SELECT COUNT(*) as count FROM custom_templates").get().count),Promise.resolve(d.prepare("SELECT COUNT(*) as count FROM skills").get().count),Promise.resolve(d.prepare("SELECT COUNT(*) as count FROM files").get().count),Promise.resolve(d.prepare("SELECT COUNT(*) as count FROM sites WHERE published_at IS NOT NULL").get().count),F(),E(B().join(process.cwd(),"public","sites")),Promise.resolve((0,y.XO)(24)),D()]),o=m.topSites.map(a=>{let b=d.prepare("SELECT name FROM sites WHERE id = ?").get(a.siteId);return{...a,siteName:b?.name||a.siteId.substring(0,8)}}),p=d.prepare(`
+ SELECT id, name, description, updated_at as updatedAt
+ FROM projects
+ ORDER BY updated_at DESC
+ LIMIT 5
+ `).all(),q=d.prepare(`
+ SELECT id, name, slug, enabled, published_at as publishedAt, updated_at as updatedAt
+ FROM sites
+ ORDER BY updated_at DESC
+ LIMIT 5
+ `).all(),r=process.memoryUsage();return u.NextResponse.json({system:{version:e,nodeVersion:process.version,uptime:process.uptime(),memoryUsed:r.heapUsed,memoryTotal:r.heapTotal},content:{projects:f,templates:g,skills:h,totalFiles:i},hosting:{publishedSites:j,sitesWithDb:k,storageUsed:l},traffic:{requestsLastHour:m.requestsLastHour,requestsLastDay:m.requestsLastDay,errorCount:m.errorCount,topSites:o,recentErrors:m.recentErrors},whatsNew:n,recentProjects:p,recentSites:q.map(a=>({...a,enabled:!!a.enabled}))})}catch(a){return console.error("[Dashboard API] Error:",a),u.NextResponse.json({error:"Failed to fetch dashboard data"},{status:500})}}let H=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/dashboard/route",pathname:"/api/admin/dashboard",filename:"route",bundlePath:"app/api/admin/dashboard/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/dashboard/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:I,workUnitAsyncStorage:J,serverHooks:K}=H;function L(){return(0,g.patchFetch)({workAsyncStorage:I,workUnitAsyncStorage:J})}async function M(a,b,c){var d;let e="/api/admin/dashboard/route";"/index"===e&&(e="/");let g=await H.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:C}=g,D=(0,j.normalizeAppPath)(e),E=!!(y.dynamicRoutes[D]||y.routes[C]);if(E&&!x){let a=!!y.routes[C],b=y.dynamicRoutes[D];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let F=null;!E||H.isDev||x||(F="/index"===(F=C)?"/":F);let G=!0===H.isDev||!E,I=E&&!G,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:G,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>H.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>H.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!E)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await H.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await H.handleResponse({req:a,nextConfig:w,cacheKey:F,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!E)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&E||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await H.onRequestError(a,b,{routerKind:"App Router",routePath:D,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),E)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74051:(a,b,c)=>{"use strict";c.r(b),c.d(b,{closeAllConnections:()=>v,closeCoreDatabase:()=>u,closeSiteDatabase:()=>t,deleteSiteDatabase:()=>s,getCoreDatabase:()=>p,getCoreDatabasePath:()=>y,getSiteDatabase:()=>q,getSiteDatabasePath:()=>x,listSiteIds:()=>w,siteExists:()=>r});var d=c(87550),e=c.n(d),f=c(33873),g=c.n(f),h=c(29021),i=c.n(h);let j=null,k=new Map;function l(){return process.env.DATA_DIR||g().join(process.cwd(),"data")}function m(){return g().join(process.cwd(),"sites")}function n(a){i().existsSync(a)||i().mkdirSync(a,{recursive:!0})}function o(a){a.pragma("journal_mode = WAL"),a.pragma("foreign_keys = ON"),a.pragma("synchronous = NORMAL"),a.pragma("cache_size = -64000"),a.pragma("temp_store = MEMORY")}function p(){if(j)return j;let a=l();n(a);let b=g().join(a,"osws.sqlite");return o(j=new(e())(b)),j}function q(a){let b=k.get(a);if(b)return b;let c=m(),d=g().join(c,a);n(d);let f=g().join(d,"site.sqlite"),h=new(e())(f);return o(h),k.set(a,h),h}function r(a){let b=m(),c=g().join(b,a,"site.sqlite");return i().existsSync(c)}function s(a){t(a);let b=m(),c=g().join(b,a);if(i().existsSync(c)){for(let a of i().readdirSync(c))i().unlinkSync(g().join(c,a));i().rmdirSync(c)}}function t(a){let b=k.get(a);if(b){try{b.close()}catch{}k.delete(a)}}function u(){if(j){try{j.close()}catch{}j=null}}function v(){for(let[a]of k)t(a);u()}function w(){let a=m();return i().existsSync(a)?i().readdirSync(a,{withFileTypes:!0}).filter(a=>a.isDirectory()).filter(b=>i().existsSync(g().join(a,b.name,"site.sqlite"))).map(a=>a.name):[]}function x(a){let b=m();return g().join(b,a,"site.sqlite")}function y(){let a=l();return g().join(a,"osws.sqlite")}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94471:(a,b,c)=>{"use strict";c.d(b,{XO:()=>h,ad:()=>g,p1:()=>i});var d=c(55511);let e=null;function f(){if(!e){let{getCoreDatabase:a}=c(74051);e=a()}return e}function g(a){try{var b;let c=f();if(!c)return;let e=(b=a.ip)&&"unknown"!==b?(0,d.createHash)("sha256").update(b).digest("hex").substring(0,8):"unknown",g=a.userAgent?.substring(0,255)||"";c.prepare(`
INSERT INTO request_log (site_id, path, status_code, ip_hash, user_agent, timestamp)
VALUES (?, ?, ?, ?, ?, datetime('now'))
- `).run(e.siteId,e.path,e.statusCode,n,o)}catch(e){console.error("[RequestLogger] Failed to log request:",e)}}function i(e=24){try{let e=a();if(!e)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let t=e.prepare(`
+ `).run(a.siteId,a.path,a.statusCode,e,g)}catch(a){console.error("[RequestLogger] Failed to log request:",a)}}function h(a=24){try{let a=f();if(!a)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let b=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-1 hour')
- `).get(),r=e.prepare(`
+ `).get(),c=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
- `).get(),s=e.prepare(`
+ `).get(),d=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
AND status_code >= 400
- `).get(),n=e.prepare(`
+ `).get(),e=a.prepare(`
SELECT site_id as siteId, COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
GROUP BY site_id
ORDER BY count DESC
LIMIT 10
- `).all(),o=e.prepare(`
+ `).all(),g=a.prepare(`
SELECT site_id as siteId, path, status_code as statusCode, timestamp FROM request_log
WHERE status_code >= 400
ORDER BY timestamp DESC
LIMIT 10
- `).all();return{requestsLastHour:t.count,requestsLastDay:r.count,errorCount:s.count,topSites:n,recentErrors:o}}catch(e){return console.error("[RequestLogger] Failed to get stats:",e),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function u(e=7){try{let t=a();if(!t)return 0;return t.prepare(`
+ `).all();return{requestsLastHour:b.count,requestsLastDay:c.count,errorCount:d.count,topSites:e,recentErrors:g}}catch(a){return console.error("[RequestLogger] Failed to get stats:",a),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function i(a=7){try{let b=f();if(!b)return 0;return b.prepare(`
DELETE FROM request_log
WHERE timestamp < datetime('now', '-' || ? || ' days')
- `).run(e).changes}catch(e){return console.error("[RequestLogger] Failed to cleanup logs:",e),0}}},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{"use strict";r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>c,jw:()=>u,oC:()=>d});var s=r(87806),n=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let n=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new s.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(n)}async function c(e){try{let t=i(),{payload:r}=await (0,n.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?c(t):null}async function p(){(await (0,a.UL)()).delete(o)}async function d(){let e=await l();if(!e)throw Error("Unauthorized");return e}},50854:(e,t,r)=>{"use strict";r.r(t),r.d(t,{closeAllConnections:()=>R,closeCoreDatabase:()=>w,closeSiteDatabase:()=>S,deleteSiteDatabase:()=>y,getCoreDatabase:()=>E,getCoreDatabasePath:()=>O,getSiteDatabase:()=>f,getSiteDatabasePath:()=>T,listSiteIds:()=>C,siteExists:()=>h});var s=r(87550),n=r.n(s),a=r(33873),o=r.n(a),i=r(29021),u=r.n(i);let c=null,l=new Map;function p(){return process.env.DATA_DIR||o().join(process.cwd(),"data")}function d(){return o().join(process.cwd(),"sites")}function m(e){u().existsSync(e)||u().mkdirSync(e,{recursive:!0})}function g(e){e.pragma("journal_mode = WAL"),e.pragma("foreign_keys = ON"),e.pragma("synchronous = NORMAL"),e.pragma("cache_size = -64000"),e.pragma("temp_store = MEMORY")}function E(){if(c)return c;let e=p();m(e);let t=o().join(e,"osws.sqlite");return g(c=new(n())(t)),c}function f(e){let t=l.get(e);if(t)return t;let r=d(),s=o().join(r,e);m(s);let a=o().join(s,"site.sqlite"),i=new(n())(a);return g(i),l.set(e,i),i}function h(e){let t=d(),r=o().join(t,e,"site.sqlite");return u().existsSync(r)}function y(e){S(e);let t=d(),r=o().join(t,e);if(u().existsSync(r)){for(let e of u().readdirSync(r))u().unlinkSync(o().join(r,e));u().rmdirSync(r)}}function S(e){let t=l.get(e);if(t){try{t.close()}catch{}l.delete(e)}}function w(){if(c){try{c.close()}catch{}c=null}}function R(){for(let[e]of l)S(e);w()}function C(){let e=d();return u().existsSync(e)?u().readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(t=>u().existsSync(o().join(e,t.name,"site.sqlite"))).map(e=>e.name):[]}function T(e){let t=d();return o().join(t,e,"site.sqlite")}function O(){let e=p();return o().join(e,"osws.sqlite")}},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72485:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>O,routeModule:()=>w,serverHooks:()=>T,workAsyncStorage:()=>R,workUnitAsyncStorage:()=>C});var s={};r.r(s),r.d(s,{GET:()=>S});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),c=r(44999),l=r(50854),p=r(19870),d=r(29021),m=r(33873),g=r.n(m);async function E(){try{let e=g().join(process.cwd(),"package.json"),t=await d.promises.readFile(e,"utf-8");return JSON.parse(t).version||"unknown"}catch{return"unknown"}}async function f(){let e={version:"unknown",title:"Welcome to OSW Studio",highlights:[]};try{let t,r=g().join(process.cwd(),"docs","WHATS_NEW.md"),s=await d.promises.readFile(r,"utf-8"),n=s.match(/^## v(\d+\.\d+\.\d+)\s*-\s*(.+)$/m);if(!n)return e;let a=n[1],o=n[2].trim(),i=s.indexOf(n[0]),u=s.substring(i+n[0].length),c=u.match(/^(?:## |---)/m),l=c?u.substring(0,c.index):u,p=/^[-*]\s+\*\*(.+?)\*\*\s*[-–]?\s*(.*)$/gm,m=[];for(;null!==(t=p.exec(l))&&m.length<4;){let e=t[1].trim(),r=t[2]?.trim();m.push(r?`${e} - ${r}`:e)}if(0===m.length){let e=/^[-*]\s+(.+)$/gm;for(;null!==(t=e.exec(l))&&m.length<4;){let e=t[1].trim();e.match(/^\[.*\]\(.*\)$/)||m.push(e.replace(/\*\*/g,""))}}return{version:a,title:o,highlights:m}}catch{return e}}async function h(e){let t=0;try{for(let r of(await d.promises.readdir(e,{withFileTypes:!0}))){let s=g().join(e,r.name);if(r.isDirectory())t+=await h(s);else if(r.isFile()){let e=await d.promises.stat(s);t+=e.size}}}catch{}return t}async function y(){let e=g().join(process.cwd(),"sites"),t=0;try{for(let r of(await d.promises.readdir(e,{withFileTypes:!0})))if(r.isDirectory()){let s=g().join(e,r.name,"site.sqlite");try{await d.promises.access(s),t++}catch{}}}catch{}return t}async function S(){try{let e=await (0,c.UL)(),t=e.get("osw_session")?.value;if(!t)return i.NextResponse.json({error:"Unauthorized"},{status:401});let r=await (0,u.gV)(t);if(!r||!r.isAdmin)return i.NextResponse.json({error:"Unauthorized"},{status:401});let s=(0,l.getCoreDatabase)();(0,p.p1)(7);let[n,a,o,d,m,S,w,R,C,T]=await Promise.all([E(),Promise.resolve(s.prepare("SELECT COUNT(*) as count FROM projects").get().count),Promise.resolve(s.prepare("SELECT COUNT(*) as count FROM custom_templates").get().count),Promise.resolve(s.prepare("SELECT COUNT(*) as count FROM skills").get().count),Promise.resolve(s.prepare("SELECT COUNT(*) as count FROM files").get().count),Promise.resolve(s.prepare("SELECT COUNT(*) as count FROM sites WHERE published_at IS NOT NULL").get().count),y(),h(g().join(process.cwd(),"public","sites")),Promise.resolve((0,p.XO)(24)),f()]),O=C.topSites.map(e=>{let t=s.prepare("SELECT name FROM sites WHERE id = ?").get(e.siteId);return{...e,siteName:t?.name||e.siteId.substring(0,8)}}),x=s.prepare(`
- SELECT id, name, description, updated_at as updatedAt
- FROM projects
- ORDER BY updated_at DESC
- LIMIT 5
- `).all(),q=s.prepare(`
- SELECT id, name, slug, enabled, published_at as publishedAt, updated_at as updatedAt
- FROM sites
- ORDER BY updated_at DESC
- LIMIT 5
- `).all(),L=process.memoryUsage();return i.NextResponse.json({system:{version:n,nodeVersion:process.version,uptime:process.uptime(),memoryUsed:L.heapUsed,memoryTotal:L.heapTotal},content:{projects:a,templates:o,skills:d,totalFiles:m},hosting:{publishedSites:S,sitesWithDb:w,storageUsed:R},traffic:{requestsLastHour:C.requestsLastHour,requestsLastDay:C.requestsLastDay,errorCount:C.errorCount,topSites:O,recentErrors:C.recentErrors},whatsNew:T,recentProjects:x,recentSites:q.map(e=>({...e,enabled:!!e.enabled}))})}catch(e){return console.error("[Dashboard API] Error:",e),i.NextResponse.json({error:"Failed to fetch dashboard data"},{status:500})}}let w=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/dashboard/route",pathname:"/api/admin/dashboard",filename:"route",bundlePath:"app/api/admin/dashboard/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/dashboard/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:R,workUnitAsyncStorage:C,serverHooks:T}=w;function O(){return(0,o.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:C})}},78335:()=>{},87550:e=>{"use strict";e.exports=require("better-sqlite3")},96487:()=>{}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,5155],()=>r(72485));module.exports=s})();
\ No newline at end of file
+ `).run(a).changes}catch(a){return console.error("[RequestLogger] Failed to cleanup logs:",a),0}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151],()=>b(b.s=42054));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/dashboard/route.js.nft.json b/.next/server/app/api/admin/dashboard/route.js.nft.json
index 28ca7d9a2675bcb641abeb6feee1b3a296294103..2ef7f23fbf50dbe5379ac9900f76c0c1c2b08f59 100644
--- a/.next/server/app/api/admin/dashboard/route.js.nft.json
+++ b/.next/server/app/api/admin/dashboard/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../docs/WHATS_NEW.md","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../docs/WHATS_NEW.md","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/dashboard/route_client-reference-manifest.js b/.next/server/app/api/admin/dashboard/route_client-reference-manifest.js
index dad7755a1198f7a1e35e4c3bd43f7b6dc4e9f4c4..42ae82478e4b1257bd2911b48df5e1f814516978 100644
--- a/.next/server/app/api/admin/dashboard/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/dashboard/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/dashboard/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/dashboard/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/dashboard/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/dashboard/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/run-migrations/route.js b/.next/server/app/api/admin/run-migrations/route.js
index f77f8fa51e236bef9edad6ca10488413ab1ba0c6..820313c924f5f228583029e499746bfc1bf14a76 100644
--- a/.next/server/app/api/admin/run-migrations/route.js
+++ b/.next/server/app/api/admin/run-migrations/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=729,e.ids=[729],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},a=new Uint8Array(256),i=a.length,o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(i>a.length-16&&((0,n.randomFillSync)(a),i=0),a.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>p});var n=r(87806),s=r(77412),a=r(44999);let i="osw_session";function o(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=o(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function d(e){try{let t=o(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(i)?.value;return t?d(t):null}async function c(){(await (0,a.UL)()).delete(i)}async function p(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},92435:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>g,routeModule:()=>c,serverHooks:()=>f,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{POST:()=>l});var s=r(96559),a=r(48088),i=r(37719),o=r(32190),u=r(50613),d=r(30417);async function l(e){try{if(!await (0,u.Ht)())return o.NextResponse.json({error:"Unauthorized"},{status:401});let{action:t}=await e.json(),r=(0,d.q)();if("status"===t)return await r.init(),o.NextResponse.json({success:!0,database:"SQLite",message:"Database initialized and ready. SQLite uses automatic schema creation."});if("reinitialize"===t)return await r.init(),o.NextResponse.json({success:!0,message:"Database reinitialized successfully."});if("list"===t)return o.NextResponse.json({success:!0,migrations:[],message:"SQLite uses automatic schema creation. No migration tracking required."});return o.NextResponse.json({error:'Invalid action. Use "status", "reinitialize", or "list".'},{status:400})}catch(e){return console.error("[Database Admin API] Error:",e),o.NextResponse.json({error:"Failed to perform database operation"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/run-migrations/route",pathname:"/api/admin/run-migrations",filename:"route",bundlePath:"app/api/admin/run-migrations/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/run-migrations/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:p,workUnitAsyncStorage:m,serverHooks:f}=c;function g(){return(0,i.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:m})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(92435));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=729,a.ids=[729],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72514:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{action:b}=await a.json(),c=(0,w.q)();if("status"===b)return await c.init(),u.NextResponse.json({success:!0,database:"SQLite",message:"Database initialized and ready. SQLite uses automatic schema creation."});if("reinitialize"===b)return await c.init(),u.NextResponse.json({success:!0,message:"Database reinitialized successfully."});if("list"===b)return u.NextResponse.json({success:!0,migrations:[],message:"SQLite uses automatic schema creation. No migration tracking required."});return u.NextResponse.json({error:'Invalid action. Use "status", "reinitialize", or "list".'},{status:400})}catch(a){return console.error("[Database Admin API] Error:",a),u.NextResponse.json({error:"Failed to perform database operation"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/run-migrations/route",pathname:"/api/admin/run-migrations",filename:"route",bundlePath:"app/api/admin/run-migrations/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/run-migrations/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/run-migrations/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=72514));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/run-migrations/route.js.nft.json b/.next/server/app/api/admin/run-migrations/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/admin/run-migrations/route.js.nft.json
+++ b/.next/server/app/api/admin/run-migrations/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/run-migrations/route_client-reference-manifest.js b/.next/server/app/api/admin/run-migrations/route_client-reference-manifest.js
index 96e5f5993a9cfe0e0590d878c7fcfee1649ffbdd..f1f9777f651087f9d40cf130657daecdc095e890 100644
--- a/.next/server/app/api/admin/run-migrations/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/run-migrations/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/run-migrations/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/run-migrations/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/run-migrations/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/run-migrations/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/logs/route.js b/.next/server/app/api/admin/sites/[id]/database/logs/route.js
index 4f95fb0f11cf956475c375df5d58b9ed7ca6f2ae..0bf39a4530798758e4ff4176804052a49647d5ee 100644
--- a/.next/server/app/api/admin/sites/[id]/database/logs/route.js
+++ b/.next/server/app/api/admin/sites/[id]/database/logs/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=9886,e.ids=[9886],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,n.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),s=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function p(){(await (0,a.UL)()).delete(o)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},51581:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>c,serverHooks:()=>m,workAsyncStorage:()=>f,workUnitAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{DELETE:()=>p,GET:()=>l});var s=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{await (0,u.oC)();let{id:r}=await t,{searchParams:n}=new URL(e.url),s=Math.min(parseInt(n.get("limit")||"100"),1e3),a=(0,d.q)();await a.init();let o=await a.getSite?.(r);if(!o)return i.NextResponse.json({error:"Site not found"},{status:404});if(!o.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let l=a.getSiteDatabaseForAnalytics(r);if(!l)return i.NextResponse.json({error:"Site database not available"},{status:500});let p=l.getRecentLogs(s),c=l.listFunctions(),f=Object.fromEntries(c.map(e=>[e.id,e.name])),g=p.map(e=>({...e,functionName:f[e.functionId]||"Unknown"}));return i.NextResponse.json({logs:g})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}async function p(e,{params:t}){try{await (0,u.oC)();let{id:r}=await t,{searchParams:n}=new URL(e.url),s=n.get("functionId")||void 0,a=(0,d.q)();await a.init();let o=await a.getSite?.(r);if(!o)return i.NextResponse.json({error:"Site not found"},{status:404});if(!o.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let l=a.getSiteDatabaseForAnalytics(r);if(!l)return i.NextResponse.json({error:"Site database not available"},{status:500});return l.clearFunctionLogs(s),i.NextResponse.json({success:!0})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/logs/route",pathname:"/api/admin/sites/[id]/database/logs",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/logs/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/logs/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:f,workUnitAsyncStorage:g,serverHooks:m}=c;function x(){return(0,o.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:g})}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(51581));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=9886,a.ids=[9886],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4145:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{DELETE:()=>y,GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{await (0,v.oC)();let{id:c}=await b,{searchParams:d}=new URL(a.url),e=Math.min(parseInt(d.get("limit")||"100"),1e3),f=(0,w.q)();await f.init();let g=await f.getSite?.(c);if(!g)return u.NextResponse.json({error:"Site not found"},{status:404});if(!g.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let h=f.getSiteDatabaseForAnalytics(c);if(!h)return u.NextResponse.json({error:"Site database not available"},{status:500});let i=h.getRecentLogs(e),j=h.listFunctions(),k=Object.fromEntries(j.map(a=>[a.id,a.name])),l=i.map(a=>({...a,functionName:k[a.functionId]||"Unknown"}));return u.NextResponse.json({logs:l})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}async function y(a,{params:b}){try{await (0,v.oC)();let{id:c}=await b,{searchParams:d}=new URL(a.url),e=d.get("functionId")||void 0,f=(0,w.q)();await f.init();let g=await f.getSite?.(c);if(!g)return u.NextResponse.json({error:"Site not found"},{status:404});if(!g.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let h=f.getSiteDatabaseForAnalytics(c);if(!h)return u.NextResponse.json({error:"Site database not available"},{status:500});return h.clearFunctionLogs(e),u.NextResponse.json({success:!0})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/logs/route",pathname:"/api/admin/sites/[id]/database/logs",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/logs/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/logs/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/admin/sites/[id]/database/logs/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=4145));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/logs/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/database/logs/route.js.nft.json
index 1dd16c0c630e1891a6b1648c48193fe32bf26f62..1029ab8a3d9e801f59b6a34f4723550c6e1225fe 100644
--- a/.next/server/app/api/admin/sites/[id]/database/logs/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/database/logs/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/logs/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/database/logs/route_client-reference-manifest.js
index 12a32d0e1123368bd7799d184d3512b8ca3fe997..2c374159eb83f52a823a3b71c78a09000d608f10 100644
--- a/.next/server/app/api/admin/sites/[id]/database/logs/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/database/logs/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/logs/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/logs/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/query/route.js b/.next/server/app/api/admin/sites/[id]/database/query/route.js
index cd9f6c69c144c09b6aa551185156b52ad317ffaf..93ccd447ea7c021c052645d34bc516e69782fa8e 100644
--- a/.next/server/app/api/admin/sites/[id]/database/query/route.js
+++ b/.next/server/app/api/admin/sites/[id]/database/query/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=9053,e.ids=[9053],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,n.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},23998:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>w,routeModule:()=>p,serverHooks:()=>x,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>f});var n={};r.r(n),r.d(n,{POST:()=>l});var s=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{await (0,u.oC)();let{id:r}=await t,{sql:n}=await e.json();if(!n||"string"!=typeof n)return i.NextResponse.json({error:"SQL query is required"},{status:400});let s=(0,d.q)();await s.init();let a=await s.getSite?.(r);if(!a)return i.NextResponse.json({error:"Site not found"},{status:404});if(!a.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let o=s.getSiteDatabaseForAnalytics(r);if(!o)return i.NextResponse.json({error:"Site database not available"},{status:500});try{let e=o.executeRawSQL(n);return i.NextResponse.json({success:!0,columns:e.columns,rows:e.rows,rowsAffected:e.rowsAffected})}catch(t){let e=t instanceof Error?t.message:"Query failed";return i.NextResponse.json({error:e},{status:400})}}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/query/route",pathname:"/api/admin/sites/[id]/database/query",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/query/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/query/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:f,serverHooks:x}=p;function w(){return(0,o.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:f})}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),s=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function p(){(await (0,a.UL)()).delete(o)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(23998));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=9053,a.ids=[9053],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49946:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{await (0,v.oC)();let{id:c}=await b,{sql:d}=await a.json();if(!d||"string"!=typeof d)return u.NextResponse.json({error:"SQL query is required"},{status:400});let e=(0,w.q)();await e.init();let f=await e.getSite?.(c);if(!f)return u.NextResponse.json({error:"Site not found"},{status:404});if(!f.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let g=e.getSiteDatabaseForAnalytics(c);if(!g)return u.NextResponse.json({error:"Site database not available"},{status:500});try{let a=g.executeRawSQL(d);return u.NextResponse.json({success:!0,columns:a.columns,rows:a.rows,rowsAffected:a.rowsAffected})}catch(b){let a=b instanceof Error?b.message:"Query failed";return u.NextResponse.json({error:a},{status:400})}}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/query/route",pathname:"/api/admin/sites/[id]/database/query",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/query/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/query/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/sites/[id]/database/query/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=49946));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/query/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/database/query/route.js.nft.json
index 1dd16c0c630e1891a6b1648c48193fe32bf26f62..1029ab8a3d9e801f59b6a34f4723550c6e1225fe 100644
--- a/.next/server/app/api/admin/sites/[id]/database/query/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/database/query/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/query/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/database/query/route_client-reference-manifest.js
index 2eed7ef45d70a872abb81051774d654030d7b5b5..dfdc4116cc313fa1612db0e5bcf906c6e917e7a2 100644
--- a/.next/server/app/api/admin/sites/[id]/database/query/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/database/query/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/query/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/query/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/query/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/query/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/schema/route.js b/.next/server/app/api/admin/sites/[id]/database/schema/route.js
index ec2102fe34d436c393db25494068acbc6a93a5b0..4c135cd2d363131bb928ce4adb7a8ff1ef0a4846 100644
--- a/.next/server/app/api/admin/sites/[id]/database/schema/route.js
+++ b/.next/server/app/api/admin/sites/[id]/database/schema/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=2202,e.ids=[2202],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let a={randomUUID:n.randomUUID},s=new Uint8Array(256),o=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>s.length-16&&((0,n.randomFillSync)(s),o=0),s.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),a=r(77412),s=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let a=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(a)}async function d(e){try{let t=i(),{payload:r}=await (0,a.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,s.UL)(),t=e.get(o)?.value;return t?d(t):null}async function p(){(await (0,s.UL)()).delete(o)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},89629:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>p,serverHooks:()=>f,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>l});var a=r(96559),s=r(48088),o=r(37719),i=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{await (0,u.oC)();let{id:e}=await t,r=(0,d.q)();await r.init();let n=await r.getSite?.(e);if(!n)return i.NextResponse.json({error:"Site not found"},{status:404});if(!n.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let a=r.getSiteDatabaseForAnalytics(e);if(!a)return i.NextResponse.json({error:"Site database not available"},{status:500});let s=a.getTableSchema();return i.NextResponse.json({tables:s})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}let p=new a.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/schema/route",pathname:"/api/admin/sites/[id]/database/schema",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/schema/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/schema/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:m,serverHooks:f}=p;function x(){return(0,o.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:m})}}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(89629));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=2202,a.ids=[2202],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},43926:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{await (0,v.oC)();let{id:a}=await b,c=(0,w.q)();await c.init();let d=await c.getSite?.(a);if(!d)return u.NextResponse.json({error:"Site not found"},{status:404});if(!d.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let e=c.getSiteDatabaseForAnalytics(a);if(!e)return u.NextResponse.json({error:"Site database not available"},{status:500});let f=e.getTableSchema();return u.NextResponse.json({tables:f})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Database API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/database/schema/route",pathname:"/api/admin/sites/[id]/database/schema",filename:"route",bundlePath:"app/api/admin/sites/[id]/database/schema/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/schema/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/sites/[id]/database/schema/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=43926));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/schema/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/database/schema/route.js.nft.json
index 1dd16c0c630e1891a6b1648c48193fe32bf26f62..1029ab8a3d9e801f59b6a34f4723550c6e1225fe 100644
--- a/.next/server/app/api/admin/sites/[id]/database/schema/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/database/schema/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/database/schema/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/database/schema/route_client-reference-manifest.js
index b6e686b9b31540265637680b4bc5289bb089ce61..197584805eeb43490f7b0798f8e29be66d5a3616 100644
--- a/.next/server/app/api/admin/sites/[id]/database/schema/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/database/schema/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/schema/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/schema/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/database/schema/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/database/schema/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js
index 0406e671bf9142d348f30e2a61b5666ed60de261..25a78f13cf880fc5246252276c36f44f2f841726 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=530,e.ids=[530],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4696:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>p,serverHooks:()=>g,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>f});var n={};r.r(n),r.d(n,{GET:()=>l});var o=r(96559),s=r(48088),i=r(37719),a=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{await (0,u.oC)();let{id:r,functionId:n}=await t,{searchParams:o}=new URL(e.url),s=Math.min(parseInt(o.get("limit")||"100"),1e3),i=(0,d.q)();await i.init();let l=await i.getSite?.(r);if(!l)return a.NextResponse.json({error:"Site not found"},{status:404});if(!l.databaseEnabled)return a.NextResponse.json({error:"Site database not enabled"},{status:400});let p=i.getSiteDatabaseForAnalytics(r);if(!p)return a.NextResponse.json({error:"Site database not available"},{status:500});if(!p.getFunction(n))return a.NextResponse.json({error:"Function not found"},{status:404});let c=p.getFunctionLogs(n,s);return a.NextResponse.json({logs:c})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return a.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),a.NextResponse.json({error:"Internal server error"},{status:500})}}let p=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/[functionId]/logs/route",pathname:"/api/admin/sites/[id]/functions/[functionId]/logs",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/[functionId]/logs/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/logs/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:f,serverHooks:g}=p;function x(){return(0,i.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:f})}},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),i=s.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(i>s.length-16&&((0,n.randomFillSync)(s),i=0),s.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),o=r(77412),s=r(44999);let i="osw_session";function a(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=a(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function d(e){try{let t=a(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,s.UL)(),t=e.get(i)?.value;return t?d(t):null}async function p(){(await (0,s.UL)()).delete(i)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(4696));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=530,a.ids=[530],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48010:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{await (0,v.oC)();let{id:c,functionId:d}=await b,{searchParams:e}=new URL(a.url),f=Math.min(parseInt(e.get("limit")||"100"),1e3),g=(0,w.q)();await g.init();let h=await g.getSite?.(c);if(!h)return u.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let i=g.getSiteDatabaseForAnalytics(c);if(!i)return u.NextResponse.json({error:"Site database not available"},{status:500});if(!i.getFunction(d))return u.NextResponse.json({error:"Function not found"},{status:404});let j=i.getFunctionLogs(d,f);return u.NextResponse.json({logs:j})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/[functionId]/logs/route",pathname:"/api/admin/sites/[id]/functions/[functionId]/logs",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/[functionId]/logs/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/logs/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/sites/[id]/functions/[functionId]/logs/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=48010));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js.nft.json
index 2c2ef45e0f2b2647239f4cdda3fbbfd2f9b50a60..2bd7394b6013c8fcb6bc6db85f91172ae3123c65 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../../data/osws.sqlite","../../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../../node_modules/next/package.json","../../../../../../../../../../package.json","../../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../../package.json","../../../../../../../../chunks/4447.js","../../../../../../../../chunks/5155.js","../../../../../../../../chunks/580.js","../../../../../../../../chunks/9709.js","../../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../../data/osws.sqlite","../../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../../node_modules/next/package.json","../../../../../../../../../../package.json","../../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../../package.json","../../../../../../../../chunks/1692.js","../../../../../../../../chunks/4586.js","../../../../../../../../chunks/6151.js","../../../../../../../../chunks/726.js","../../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route_client-reference-manifest.js
index 74b8846f8168b742d675de5433ee8c0ea4047baa..1ca67a7b82b45b4466d1e2ebae5d3dcdcce9a39e 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/logs/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/[functionId]/logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/logs/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/[functionId]/logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/logs/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js
index a82f129b337330ab74ab57bbf129c99293c9b8d2..e4314f092d6e51d5e8245c3c8269f637c71cb189 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=6560,e.ids=[6560],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:e=>{e.exports=import("quickjs-emscripten-core")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16801:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{patchFetch:()=>d,routeModule:()=>c,serverHooks:()=>f,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>l});var s=r(96559),o=r(48088),a=r(37719),i=r(92781),u=e([i]);i=(u.then?(await u)():u)[0];let c=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/[functionId]/route",pathname:"/api/admin/sites/[id]/functions/[functionId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/[functionId]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route.ts",nextConfigOutput:"standalone",userland:i}),{workAsyncStorage:p,workUnitAsyncStorage:l,serverHooks:f}=c;function d(){return(0,a.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:l})}n()}catch(e){n(e)}})},17915:e=>{e.exports=import("@jitl/quickjs-wasmfile-release-sync")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>l});var n=r(87806),s=r(77412),o=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,o.UL)(),t=e.get(a)?.value;return t?d(t):null}async function p(){(await (0,o.UL)()).delete(a)}async function l(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},92781:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{DELETE:()=>p,GET:()=>d,PUT:()=>c});var s=r(32190),o=r(50613),a=r(30417),i=r(3149),u=e([i]);async function d(e,{params:t}){try{await (0,o.oC)();let{id:e,functionId:r}=await t,n=(0,a.q)();await n.init();let i=await n.getSite?.(e);if(!i)return s.NextResponse.json({error:"Site not found"},{status:404});if(!i.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let u=n.getSiteDatabaseForAnalytics(e);if(!u)return s.NextResponse.json({error:"Site database not available"},{status:500});let d=u.getFunction(r);if(!d)return s.NextResponse.json({error:"Function not found"},{status:404});return s.NextResponse.json({function:d})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function c(e,{params:t}){try{await (0,o.oC)();let{id:r,functionId:n}=await t,u=await e.json(),d=(0,a.q)();await d.init();let c=await d.getSite?.(r);if(!c)return s.NextResponse.json({error:"Site not found"},{status:404});if(!c.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let p=d.getSiteDatabaseForAnalytics(r);if(!p)return s.NextResponse.json({error:"Site database not available"},{status:500});let l=p.getFunction(n);if(!l)return s.NextResponse.json({error:"Function not found"},{status:404});let f={};if(void 0!==u.name&&u.name!==l.name){let e=(0,i.QH)(u.name);if(e)return s.NextResponse.json({error:e},{status:400});let t=p.getFunctionByName(u.name);if(t&&t.id!==n)return s.NextResponse.json({error:"A function with this name already exists"},{status:409});f.name=u.name}if(void 0!==u.code){let e=(0,i.c2)(u.code);if(e)return s.NextResponse.json({error:e},{status:400});f.code=u.code}if(void 0!==u.description&&(f.description=u.description),void 0!==u.method){if(!["GET","POST","PUT","DELETE","ANY"].includes(u.method))return s.NextResponse.json({error:"Invalid HTTP method"},{status:400});f.method=u.method}void 0!==u.enabled&&(f.enabled=u.enabled),void 0!==u.timeoutMs&&(f.timeoutMs=Math.min(Math.max(u.timeoutMs,1e3),3e4)),Object.keys(f).length>0&&p.updateFunction(n,f);let x=p.getFunction(n);return s.NextResponse.json({function:x})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function p(e,{params:t}){try{await (0,o.oC)();let{id:e,functionId:r}=await t,n=(0,a.q)();await n.init();let i=await n.getSite?.(e);if(!i)return s.NextResponse.json({error:"Site not found"},{status:404});if(!i.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let u=n.getSiteDatabaseForAnalytics(e);if(!u)return s.NextResponse.json({error:"Site database not available"},{status:500});if(!u.getFunction(r))return s.NextResponse.json({error:"Function not found"},{status:404});return u.deleteFunction(r),s.NextResponse.json({success:!0})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}i=(u.then?(await u)():u)[0],n()}catch(e){n(e)}})}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709,8274],()=>r(16801));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=6560,a.ids=[6560],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:a=>{a.exports=import("quickjs-emscripten-core")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:a=>{a.exports=import("@jitl/quickjs-wasmfile-release-sync")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44426:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>l,GET:()=>j,PUT:()=>k});var e=c(10641),f=c(39588),g=c(97778),h=c(19958),i=a([h]);async function j(a,{params:b}){try{await (0,f.oC)();let{id:a,functionId:c}=await b,d=(0,g.q)();await d.init();let h=await d.getSite?.(a);if(!h)return e.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let i=d.getSiteDatabaseForAnalytics(a);if(!i)return e.NextResponse.json({error:"Site database not available"},{status:500});let j=i.getFunction(c);if(!j)return e.NextResponse.json({error:"Function not found"},{status:404});return e.NextResponse.json({function:j})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function k(a,{params:b}){try{await (0,f.oC)();let{id:c,functionId:d}=await b,i=await a.json(),j=(0,g.q)();await j.init();let k=await j.getSite?.(c);if(!k)return e.NextResponse.json({error:"Site not found"},{status:404});if(!k.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let l=j.getSiteDatabaseForAnalytics(c);if(!l)return e.NextResponse.json({error:"Site database not available"},{status:500});let m=l.getFunction(d);if(!m)return e.NextResponse.json({error:"Function not found"},{status:404});let n={};if(void 0!==i.name&&i.name!==m.name){let a=(0,h.QH)(i.name);if(a)return e.NextResponse.json({error:a},{status:400});let b=l.getFunctionByName(i.name);if(b&&b.id!==d)return e.NextResponse.json({error:"A function with this name already exists"},{status:409});n.name=i.name}if(void 0!==i.code){let a=(0,h.c2)(i.code);if(a)return e.NextResponse.json({error:a},{status:400});n.code=i.code}if(void 0!==i.description&&(n.description=i.description),void 0!==i.method){if(!["GET","POST","PUT","DELETE","ANY"].includes(i.method))return e.NextResponse.json({error:"Invalid HTTP method"},{status:400});n.method=i.method}void 0!==i.enabled&&(n.enabled=i.enabled),void 0!==i.timeoutMs&&(n.timeoutMs=Math.min(Math.max(i.timeoutMs,1e3),3e4)),Object.keys(n).length>0&&l.updateFunction(d,n);let o=l.getFunction(d);return e.NextResponse.json({function:o})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function l(a,{params:b}){try{await (0,f.oC)();let{id:a,functionId:c}=await b,d=(0,g.q)();await d.init();let h=await d.getSite?.(a);if(!h)return e.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let i=d.getSiteDatabaseForAnalytics(a);if(!i)return e.NextResponse.json({error:"Site database not available"},{status:500});if(!i.getFunction(c))return e.NextResponse.json({error:"Function not found"},{status:404});return i.deleteFunction(c),e.NextResponse.json({success:!0})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},83188:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(44426),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/[functionId]/route",pathname:"/api/admin/sites/[id]/functions/[functionId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/[functionId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route.ts",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/admin/sites/[id]/functions/[functionId]/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726,3543],()=>b(b.s=83188));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js.nft.json
index 818c46920b17a4f5d2344f04f5b9408ec0d670a8..b15d5ee8dccceda48af9d667512ebb83bf714d32 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/8274.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/3543.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route_client-reference-manifest.js
index e643040a06638ca6c4bad0f959bd3a941482806c..74cd07dbfd2048312fd9b1dae21544a04a0024ea 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/[functionId]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/[functionId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/[functionId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/[functionId]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/route.js b/.next/server/app/api/admin/sites/[id]/functions/route.js
index be12f3a5b7cb59111a4d754f8ec8c065be0546f8..1f6e2558355f6a3cff685b4df1256d19f9bc65cc 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/route.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=5646,e.ids=[5646],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:e=>{e.exports=import("quickjs-emscripten-core")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:e=>{e.exports=import("@jitl/quickjs-wasmfile-release-sync")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33087:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{patchFetch:()=>d,routeModule:()=>c,serverHooks:()=>x,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>l});var s=r(96559),a=r(48088),o=r(37719),i=r(81315),u=e([i]);i=(u.then?(await u)():u)[0];let c=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/route",pathname:"/api/admin/sites/[id]/functions",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route.ts",nextConfigOutput:"standalone",userland:i}),{workAsyncStorage:p,workUnitAsyncStorage:l,serverHooks:x}=c;function d(){return(0,o.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:l})}n()}catch(e){n(e)}})},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>l});var n=r(87806),s=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function p(){(await (0,a.UL)()).delete(o)}async function l(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},81315:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>d,POST:()=>c});var s=r(32190),a=r(50613),o=r(30417),i=r(3149),u=e([i]);async function d(e,{params:t}){try{await (0,a.oC)();let{id:e}=await t,r=(0,o.q)();await r.init();let n=await r.getSite?.(e);if(!n)return s.NextResponse.json({error:"Site not found"},{status:404});if(!n.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let i=r.getSiteDatabaseForAnalytics(e);if(!i)return s.NextResponse.json({error:"Site database not available"},{status:500});let u=i.listFunctions();return s.NextResponse.json({functions:u})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function c(e,{params:t}){try{await (0,a.oC)();let{id:r}=await t,n=await e.json();if(!n.name)return s.NextResponse.json({error:"Function name is required"},{status:400});if(!n.code)return s.NextResponse.json({error:"Function code is required"},{status:400});let u=(0,i.QH)(n.name);if(u)return s.NextResponse.json({error:u},{status:400});let d=(0,i.c2)(n.code);if(d)return s.NextResponse.json({error:d},{status:400});let c=n.method||"ANY";if(!["GET","POST","PUT","DELETE","ANY"].includes(c))return s.NextResponse.json({error:"Invalid HTTP method"},{status:400});let p=Math.min(Math.max(n.timeoutMs||5e3,1e3),3e4),l=(0,o.q)();await l.init();let x=await l.getSite?.(r);if(!x)return s.NextResponse.json({error:"Site not found"},{status:404});x.databaseEnabled||(x.databaseEnabled=!0,await l.enableSiteDatabase(r),await l.updateSite?.(x));let f=l.getSiteDatabaseForAnalytics(r);if(!f)return s.NextResponse.json({error:"Site database not available"},{status:500});if(f.getFunctionByName(n.name))return s.NextResponse.json({error:"A function with this name already exists"},{status:409});let m=f.createFunction({name:n.name,description:n.description||void 0,code:n.code,method:c,enabled:!1!==n.enabled,timeoutMs:p}),w=f.getFunction(m);return s.NextResponse.json({function:w},{status:201})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}i=(u.then?(await u)():u)[0],n()}catch(e){n(e)}})},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709,8274],()=>r(33087));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=5646,a.ids=[5646],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:a=>{a.exports=import("quickjs-emscripten-core")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11266:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j,POST:()=>k});var e=c(10641),f=c(39588),g=c(97778),h=c(19958),i=a([h]);async function j(a,{params:b}){try{await (0,f.oC)();let{id:a}=await b,c=(0,g.q)();await c.init();let d=await c.getSite?.(a);if(!d)return e.NextResponse.json({error:"Site not found"},{status:404});if(!d.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let h=c.getSiteDatabaseForAnalytics(a);if(!h)return e.NextResponse.json({error:"Site database not available"},{status:500});let i=h.listFunctions();return e.NextResponse.json({functions:i})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function k(a,{params:b}){try{await (0,f.oC)();let{id:c}=await b,d=await a.json();if(!d.name)return e.NextResponse.json({error:"Function name is required"},{status:400});if(!d.code)return e.NextResponse.json({error:"Function code is required"},{status:400});let i=(0,h.QH)(d.name);if(i)return e.NextResponse.json({error:i},{status:400});let j=(0,h.c2)(d.code);if(j)return e.NextResponse.json({error:j},{status:400});let k=d.method||"ANY";if(!["GET","POST","PUT","DELETE","ANY"].includes(k))return e.NextResponse.json({error:"Invalid HTTP method"},{status:400});let l=Math.min(Math.max(d.timeoutMs||5e3,1e3),3e4),m=(0,g.q)();await m.init();let n=await m.getSite?.(c);if(!n)return e.NextResponse.json({error:"Site not found"},{status:404});n.databaseEnabled||(n.databaseEnabled=!0,await m.enableSiteDatabase(c),await m.updateSite?.(n));let o=m.getSiteDatabaseForAnalytics(c);if(!o)return e.NextResponse.json({error:"Site database not available"},{status:500});if(o.getFunctionByName(d.name))return e.NextResponse.json({error:"A function with this name already exists"},{status:409});let p=o.createFunction({name:d.name,description:d.description||void 0,code:d.code,method:k,enabled:!1!==d.enabled,timeoutMs:l}),q=o.getFunction(p);return e.NextResponse.json({function:q},{status:201})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},17915:a=>{a.exports=import("@jitl/quickjs-wasmfile-release-sync")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71370:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(11266),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/functions/route",pathname:"/api/admin/sites/[id]/functions",filename:"route",bundlePath:"app/api/admin/sites/[id]/functions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route.ts",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/admin/sites/[id]/functions/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726,3543],()=>b(b.s=71370));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/functions/route.js.nft.json
index 61412027cd8ff8c2c39e676c7a0d2eeec53e8e55..5f91d1805adb75097532cad6ae95104f6a62d4b1 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/functions/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/4447.js","../../../../../../chunks/5155.js","../../../../../../chunks/580.js","../../../../../../chunks/8274.js","../../../../../../chunks/9709.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/1692.js","../../../../../../chunks/3543.js","../../../../../../chunks/4586.js","../../../../../../chunks/6151.js","../../../../../../chunks/726.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/functions/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/functions/route_client-reference-manifest.js
index c5ca92c15d5b3e534b45c863a1b7aec20f275d12..6e36b7f0f2a8f9187b5164697f8646771e84b043 100644
--- a/.next/server/app/api/admin/sites/[id]/functions/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/functions/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/functions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/functions/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js
index 991e546df325633afb8f8841e29ce02422c7afa1..60ceff81db38b6f6174c4c59d7628db08940990e 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js
+++ b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=5940,e.ids=[5940],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var s=r(55511);let n={randomUUID:s.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(n.randomUUID&&!t&&!e)return n.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,s.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>p});var s=r(87806),n=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let n=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new s.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(n)}async function d(e){try{let t=i(),{payload:r}=await (0,n.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function c(){(await (0,a.UL)()).delete(o)}async function p(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},99661:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>w,routeModule:()=>S,serverHooks:()=>g,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>x});var s={};r.r(s),r.d(s,{DELETE:()=>f,GET:()=>c,PUT:()=>p});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),d=r(30417),l=r(2573);async function c(e,{params:t}){try{await (0,u.oC)();let{id:e,secretId:r}=await t,s=(0,d.q)();await s.init();let n=await s.getSite?.(e);if(!n)return i.NextResponse.json({error:"Site not found"},{status:404});if(!n.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let a=s.getSiteDatabaseForAnalytics(e);if(!a)return i.NextResponse.json({error:"Site database not available"},{status:500});let o=a.getSecret(r);if(!o)return i.NextResponse.json({error:"Secret not found"},{status:404});return i.NextResponse.json({secret:o})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}async function p(e,{params:t}){try{await (0,u.oC)();let{id:s,secretId:n}=await t,a=await e.json(),o=(0,d.q)();await o.init();let c=await o.getSite?.(s);if(!c)return i.NextResponse.json({error:"Site not found"},{status:404});if(!c.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let p=o.getSiteDatabaseForAnalytics(s);if(!p)return i.NextResponse.json({error:"Site database not available"},{status:500});let f=p.getSecret(n);if(!f)return i.NextResponse.json({error:"Secret not found"},{status:404});if(void 0!==a.value&&""!==a.value){if(!(0,l.yg)())return i.NextResponse.json({error:"Secrets encryption not configured. Set SECRETS_ENCRYPTION_KEY environment variable."},{status:500});p.updateSecretValue(n,a.value)}let S={};if(void 0!==a.name&&a.name!==f.name){var r;let e=(r=a.name)&&0!==r.trim().length?r.length>64?"Secret name must be 64 characters or less":/^[A-Z][A-Z0-9_]*$/.test(r)?null:"Secret name must be SCREAMING_SNAKE_CASE (uppercase letters, numbers, underscores; must start with letter)":"Secret name is required";if(e)return i.NextResponse.json({error:e},{status:400});let t=p.getSecretByName(a.name);if(t&&t.id!==n)return i.NextResponse.json({error:"A secret with this name already exists"},{status:409});S.name=a.name}void 0!==a.description&&(S.description=a.description),Object.keys(S).length>0&&p.updateSecretMetadata(n,S);let m=p.getSecret(n);return i.NextResponse.json({secret:m})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}async function f(e,{params:t}){try{await (0,u.oC)();let{id:e,secretId:r}=await t,s=(0,d.q)();await s.init();let n=await s.getSite?.(e);if(!n)return i.NextResponse.json({error:"Site not found"},{status:404});if(!n.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let a=s.getSiteDatabaseForAnalytics(e);if(!a)return i.NextResponse.json({error:"Site database not available"},{status:500});if(!a.getSecret(r))return i.NextResponse.json({error:"Secret not found"},{status:404});return a.deleteSecret(r),i.NextResponse.json({success:!0})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}let S=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/secrets/[secretId]/route",pathname:"/api/admin/sites/[id]/secrets/[secretId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/secrets/[secretId]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/[secretId]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:m,workUnitAsyncStorage:x,serverHooks:g}=S;function w(){return(0,o.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:x})}}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,5155,9709],()=>r(99661));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=5940,a.ids=[5940],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},28478:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,PUT:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778),x=c(75794);async function y(a,{params:b}){try{await (0,v.oC)();let{id:a,secretId:c}=await b,d=(0,w.q)();await d.init();let e=await d.getSite?.(a);if(!e)return u.NextResponse.json({error:"Site not found"},{status:404});if(!e.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let f=d.getSiteDatabaseForAnalytics(a);if(!f)return u.NextResponse.json({error:"Site database not available"},{status:500});let g=f.getSecret(c);if(!g)return u.NextResponse.json({error:"Secret not found"},{status:404});return u.NextResponse.json({secret:g})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}async function z(a,{params:b}){try{await (0,v.oC)();let{id:d,secretId:e}=await b,f=await a.json(),g=(0,w.q)();await g.init();let h=await g.getSite?.(d);if(!h)return u.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let i=g.getSiteDatabaseForAnalytics(d);if(!i)return u.NextResponse.json({error:"Site database not available"},{status:500});let j=i.getSecret(e);if(!j)return u.NextResponse.json({error:"Secret not found"},{status:404});if(void 0!==f.value&&""!==f.value){if(!(0,x.yg)())return u.NextResponse.json({error:"Secrets encryption not configured. Set SECRETS_ENCRYPTION_KEY environment variable."},{status:500});i.updateSecretValue(e,f.value)}let k={};if(void 0!==f.name&&f.name!==j.name){var c;let a=(c=f.name)&&0!==c.trim().length?c.length>64?"Secret name must be 64 characters or less":/^[A-Z][A-Z0-9_]*$/.test(c)?null:"Secret name must be SCREAMING_SNAKE_CASE (uppercase letters, numbers, underscores; must start with letter)":"Secret name is required";if(a)return u.NextResponse.json({error:a},{status:400});let b=i.getSecretByName(f.name);if(b&&b.id!==e)return u.NextResponse.json({error:"A secret with this name already exists"},{status:409});k.name=f.name}void 0!==f.description&&(k.description=f.description),Object.keys(k).length>0&&i.updateSecretMetadata(e,k);let l=i.getSecret(e);return u.NextResponse.json({secret:l})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}async function A(a,{params:b}){try{await (0,v.oC)();let{id:a,secretId:c}=await b,d=(0,w.q)();await d.init();let e=await d.getSite?.(a);if(!e)return u.NextResponse.json({error:"Site not found"},{status:404});if(!e.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let f=d.getSiteDatabaseForAnalytics(a);if(!f)return u.NextResponse.json({error:"Site database not available"},{status:500});if(!f.getSecret(c))return u.NextResponse.json({error:"Secret not found"},{status:404});return f.deleteSecret(c),u.NextResponse.json({success:!0})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/secrets/[secretId]/route",pathname:"/api/admin/sites/[id]/secrets/[secretId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/secrets/[secretId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/[secretId]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/api/admin/sites/[id]/secrets/[secretId]/route";"/index"===e&&(e="/");let g=await B.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>B.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>B.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=28478));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js.nft.json
index 1dd16c0c630e1891a6b1648c48193fe32bf26f62..1029ab8a3d9e801f59b6a34f4723550c6e1225fe 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route_client-reference-manifest.js
index e360baafd2707141be8c43d931188fb5696df920..86c053fba45485c80c855d94e4d624fcaa72c9b7 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/secrets/[secretId]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/secrets/[secretId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/[secretId]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/secrets/[secretId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/[secretId]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/route.js b/.next/server/app/api/admin/sites/[id]/secrets/route.js
index 6624cb893c3305b01ed45670c21e382b3672339a..6b12316998f7f885cb38ef516ab78e6f1c44d52d 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/route.js
+++ b/.next/server/app/api/admin/sites/[id]/secrets/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=134,e.ids=[134],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},20985:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>g,routeModule:()=>m,serverHooks:()=>x,workAsyncStorage:()=>f,workUnitAsyncStorage:()=>S});var s={};r.r(s),r.d(s,{GET:()=>c,POST:()=>p});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),d=r(30417),l=r(2573);async function c(e,{params:t}){try{await (0,u.oC)();let{id:e}=await t,r=(0,d.q)();await r.init();let s=await r.getSite?.(e);if(!s)return i.NextResponse.json({error:"Site not found"},{status:404});if(!s.databaseEnabled)return i.NextResponse.json({error:"Site database not enabled"},{status:400});let n=r.getSiteDatabaseForAnalytics(e);if(!n)return i.NextResponse.json({error:"Site database not available"},{status:500});let a=n.listSecrets();return i.NextResponse.json({secrets:a,encryptionConfigured:(0,l.yg)()})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}async function p(e,{params:t}){try{var r;await (0,u.oC)();let{id:s}=await t,n=await e.json();if(!(0,l.yg)())return i.NextResponse.json({error:"Secrets encryption not configured. Set SECRETS_ENCRYPTION_KEY environment variable."},{status:500});if(!n.name)return i.NextResponse.json({error:"Secret name is required"},{status:400});if(!n.value)return i.NextResponse.json({error:"Secret value is required"},{status:400});let a=(r=n.name)&&0!==r.trim().length?r.length>64?"Secret name must be 64 characters or less":/^[A-Z][A-Z0-9_]*$/.test(r)?null:"Secret name must be SCREAMING_SNAKE_CASE (uppercase letters, numbers, underscores; must start with letter)":"Secret name is required";if(a)return i.NextResponse.json({error:a},{status:400});let o=(0,d.q)();await o.init();let c=await o.getSite?.(s);if(!c)return i.NextResponse.json({error:"Site not found"},{status:404});c.databaseEnabled||(c.databaseEnabled=!0,await o.enableSiteDatabase(s),await o.updateSite?.(c));let p=o.getSiteDatabaseForAnalytics(s);if(!p)return i.NextResponse.json({error:"Site database not available"},{status:500});if(p.getSecretByName(n.name))return i.NextResponse.json({error:"A secret with this name already exists"},{status:409});let m=p.createSecret(n.name,n.value,n.description||void 0),f=p.getSecret(m);return i.NextResponse.json({secret:f},{status:201})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",e),i.NextResponse.json({error:"Internal server error"},{status:500})}}let m=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/secrets/route",pathname:"/api/admin/sites/[id]/secrets",filename:"route",bundlePath:"app/api/admin/sites/[id]/secrets/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:f,workUnitAsyncStorage:S,serverHooks:x}=m;function g(){return(0,o.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:S})}},23870:(e,t,r)=>{r.d(t,{A:()=>u});var s=r(55511);let n={randomUUID:s.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(n.randomUUID&&!t&&!e)return n.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,s.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>p});var s=r(87806),n=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let n=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new s.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(n)}async function d(e){try{let t=i(),{payload:r}=await (0,n.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function c(){(await (0,a.UL)()).delete(o)}async function p(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,5155,9709],()=>r(20985));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=134,a.ids=[134],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},34901:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778),x=c(75794);async function y(a,{params:b}){try{await (0,v.oC)();let{id:a}=await b,c=(0,w.q)();await c.init();let d=await c.getSite?.(a);if(!d)return u.NextResponse.json({error:"Site not found"},{status:404});if(!d.databaseEnabled)return u.NextResponse.json({error:"Site database not enabled"},{status:400});let e=c.getSiteDatabaseForAnalytics(a);if(!e)return u.NextResponse.json({error:"Site database not available"},{status:500});let f=e.listSecrets();return u.NextResponse.json({secrets:f,encryptionConfigured:(0,x.yg)()})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}async function z(a,{params:b}){try{var c;await (0,v.oC)();let{id:d}=await b,e=await a.json();if(!(0,x.yg)())return u.NextResponse.json({error:"Secrets encryption not configured. Set SECRETS_ENCRYPTION_KEY environment variable."},{status:500});if(!e.name)return u.NextResponse.json({error:"Secret name is required"},{status:400});if(!e.value)return u.NextResponse.json({error:"Secret value is required"},{status:400});let f=(c=e.name)&&0!==c.trim().length?c.length>64?"Secret name must be 64 characters or less":/^[A-Z][A-Z0-9_]*$/.test(c)?null:"Secret name must be SCREAMING_SNAKE_CASE (uppercase letters, numbers, underscores; must start with letter)":"Secret name is required";if(f)return u.NextResponse.json({error:f},{status:400});let g=(0,w.q)();await g.init();let h=await g.getSite?.(d);if(!h)return u.NextResponse.json({error:"Site not found"},{status:404});h.databaseEnabled||(h.databaseEnabled=!0,await g.enableSiteDatabase(d),await g.updateSite?.(h));let i=g.getSiteDatabaseForAnalytics(d);if(!i)return u.NextResponse.json({error:"Site database not available"},{status:500});if(i.getSecretByName(e.name))return u.NextResponse.json({error:"A secret with this name already exists"},{status:409});let j=i.createSecret(e.name,e.value,e.description||void 0),k=i.getSecret(j);return u.NextResponse.json({secret:k},{status:201})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Secrets API] Error:",a),u.NextResponse.json({error:"Internal server error"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/secrets/route",pathname:"/api/admin/sites/[id]/secrets",filename:"route",bundlePath:"app/api/admin/sites/[id]/secrets/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/admin/sites/[id]/secrets/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=34901));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/secrets/route.js.nft.json
index 4b93122c612d42342417723922e638784d869a9e..a2f881879257a6a6b1387819ac32d223a161b44f 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/secrets/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/4447.js","../../../../../../chunks/5155.js","../../../../../../chunks/580.js","../../../../../../chunks/9709.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/1692.js","../../../../../../chunks/4586.js","../../../../../../chunks/6151.js","../../../../../../chunks/726.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/secrets/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/secrets/route_client-reference-manifest.js
index 9b2cdb99a5d848174b5d9641d0a43b93dc61f70c..dbfd34ba087219cbbf961007becff928c02ce8f9 100644
--- a/.next/server/app/api/admin/sites/[id]/secrets/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/secrets/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/secrets/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/secrets/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/secrets/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js
index 497d908145996890ea50883d3c89952bb57cfcf5..8153ff8a6a339de9746b67e5f95fee6aec446f75 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js
+++ b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=7061,e.ids=[7061],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,s)=>{s.d(t,{A:()=>u});var r=s(55511);let n={randomUUID:r.randomUUID},o=new Uint8Array(256),i=o.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let u=function(e,t,s){if(n.randomUUID&&!t&&!e)return n.randomUUID();let u=(e=e||{}).random??e.rng?.()??(i>o.length-16&&((0,r.randomFillSync)(o),i=0),o.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((s=s||0)<0||s+16>t.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[s+e]=u[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54007:(e,t,s)=>{s.r(t),s.d(t,{patchFetch:()=>h,routeModule:()=>l,serverHooks:()=>f,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>m});var r={};s.r(r),s.d(r,{POST:()=>d});var n=s(96559),o=s(48088),i=s(37719),a=s(32190),u=s(30417),c=s(78508);async function d(e,t){try{let{id:s}=await t.params,{operation:r,path:n,content:o}=await e.json();if(!n)return a.NextResponse.json({success:!1,error:"Path is required"},{status:400});let i=(0,u.q)();if(await i.init(),!await i.getSite(s))return a.NextResponse.json({success:!1,error:"Site not found"},{status:404});let d=i.getSiteDatabaseForAnalytics(s);if(!d)return a.NextResponse.json({success:!1,error:"Site database not available"},{status:500});if("delete"===r)return function(e,t){if(e.startsWith("/.server/secrets/")&&e.endsWith(".json")){let s=e.split("/").pop().replace(".json",""),r=t.getSecretByName(s);return r?(t.deleteSecret(r.id),a.NextResponse.json({success:!0})):a.NextResponse.json({success:!1,error:`Secret not found: ${s}`},{status:404})}if(e.startsWith("/.server/edge-functions/")&&e.endsWith(".json")){let s=e.split("/").pop().replace(".json",""),r=t.getFunctionByName(s);return r?(t.deleteFunction(r.id),a.NextResponse.json({success:!0})):a.NextResponse.json({success:!1,error:`Edge function not found: ${s}`},{status:404})}if(e.startsWith("/.server/server-functions/")&&e.endsWith(".json")){let s=e.split("/").pop().replace(".json",""),r=t.getServerFunctionByName(s);return r?(t.deleteServerFunction(r.id),a.NextResponse.json({success:!0})):a.NextResponse.json({success:!1,error:`Server function not found: ${s}`},{status:404})}return a.NextResponse.json({success:!1,error:`Cannot delete ${e}`},{status:400})}(n,d);if(!o)return a.NextResponse.json({success:!1,error:"Content is required for create/update"},{status:400});if("/.server/db/schema.sql"===n)return a.NextResponse.json({success:!1,error:`Cannot modify ${n} - read-only file`},{status:400});if(n.startsWith("/.server/secrets/")&&n.endsWith(".json"))return function(e,t,s){let r;try{r=JSON.parse(t)}catch(t){let e=t instanceof Error?t.message:String(t);return a.NextResponse.json({success:!1,error:`Invalid JSON: ${e}`},{status:400})}let n=(0,c.xJ)(r);if(!n.valid)return a.NextResponse.json({success:!1,error:`Validation failed: ${n.errors.join("; ")}`},{status:400});let o=r,i=e.split("/").pop().replace(".json",""),u=s.getSecretByName(i);u?s.updateSecretMetadata(u.id,{name:o.name,description:o.description||""}):s.createSecretPlaceholder(o.name,o.description||"");let d=s.getSecretByName(o.name),l=`/.server/secrets/${o.name}.json`;return a.NextResponse.json({success:!0,file:{path:l,content:(0,c.e0)(d),isReadOnly:!1}})}(n,o,d);if(n.startsWith("/.server/edge-functions/")&&n.endsWith(".json"))return function(e,t,s){let r;try{r=JSON.parse(t)}catch(t){let e=t instanceof Error?t.message:String(t);return a.NextResponse.json({success:!1,error:`Invalid JSON: ${e}`},{status:400})}let n=(0,c.K3)(r);if(!n.valid)return a.NextResponse.json({success:!1,error:`Validation failed: ${n.errors.join("; ")}`},{status:400});let o=r,i=e.split("/").pop().replace(".json",""),u=s.getFunctionByName(i);u?s.updateFunction(u.id,{name:o.name,code:o.code,method:o.method,description:o.description,enabled:o.enabled??!0,timeoutMs:o.timeoutMs??5e3}):s.createFunction({name:o.name,code:o.code,method:o.method,description:o.description,enabled:o.enabled??!0,timeoutMs:o.timeoutMs??5e3});let d=s.getFunctionByName(o.name),l=`/.server/edge-functions/${o.name}.json`;return a.NextResponse.json({success:!0,file:{path:l,content:(0,c.hS)(d),isReadOnly:!1}})}(n,o,d);if(n.startsWith("/.server/server-functions/")&&n.endsWith(".json"))return function(e,t,s){let r;try{r=JSON.parse(t)}catch(t){let e=t instanceof Error?t.message:String(t);return a.NextResponse.json({success:!1,error:`Invalid JSON: ${e}`},{status:400})}let n=(0,c.W8)(r);if(!n.valid)return a.NextResponse.json({success:!1,error:`Validation failed: ${n.errors.join("; ")}`},{status:400});let o=r,i=e.split("/").pop().replace(".json",""),u=s.getServerFunctionByName(i);u?s.updateServerFunction(u.id,{name:o.name,code:o.code,description:o.description,enabled:o.enabled??!0}):s.createServerFunction({name:o.name,code:o.code,description:o.description,enabled:o.enabled??!0});let d=s.getServerFunctionByName(o.name),l=`/.server/server-functions/${o.name}.json`;return a.NextResponse.json({success:!0,file:{path:l,content:(0,c.HI)(d),isReadOnly:!1}})}(n,o,d);return a.NextResponse.json({success:!1,error:`Unrecognized server context path: ${n}`},{status:400})}catch(e){return console.error("[API] Server context mutation failed:",e),a.NextResponse.json({success:!1,error:e instanceof Error?e.message:"Mutation failed"},{status:500})}}let l=new n.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-context/mutate/route",pathname:"/api/admin/sites/[id]/server-context/mutate",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-context/mutate/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/mutate/route.ts",nextConfigOutput:"standalone",userland:r}),{workAsyncStorage:p,workUnitAsyncStorage:m,serverHooks:f}=l;function h(){return(0,i.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:m})}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78508:(e,t,s)=>{function r(e){return JSON.stringify({name:e.name,method:e.method,description:e.description,enabled:e.enabled,timeoutMs:e.timeoutMs||5e3,code:e.code},null,2)}function n(e){return JSON.stringify({name:e.name,description:e.description,enabled:e.enabled,code:e.code},null,2)}function o(e){return JSON.stringify({name:e.name,description:e.description||void 0,hasValue:e.hasValue},null,2)}s.d(t,{HI:()=>n,K3:()=>a,W8:()=>u,e0:()=>o,hS:()=>r,xJ:()=>c});let i=["db","fetch","console","args","request","Response","server","secrets","atob","btoa"];function a(e){let t=[];if(!e||"object"!=typeof e)return{valid:!1,errors:["Invalid JSON: expected an object"]};e.name&&"string"==typeof e.name?/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(e.name)||t.push('Name must be lowercase letters, numbers, and hyphens only (e.g., "get-users")'):t.push('Missing or invalid "name" field');let s=["GET","POST","PUT","DELETE","ANY"];if(e.method&&"string"==typeof e.method?s.includes(e.method)||t.push(`Method must be one of: ${s.join(", ")}`):t.push('Missing or invalid "method" field'),e.code&&"string"==typeof e.code)try{Function(e.code)}catch(s){let e=s instanceof Error?s.message:String(s);t.push(`JavaScript syntax error: ${e}`)}else t.push('Missing or invalid "code" field');return void 0!==e.enabled&&"boolean"!=typeof e.enabled&&t.push('"enabled" must be a boolean'),void 0!==e.timeoutMs&&("number"!=typeof e.timeoutMs?t.push('"timeoutMs" must be a number'):(e.timeoutMs<1e3||e.timeoutMs>3e4)&&t.push("Timeout must be between 1000 and 30000 ms")),{valid:0===t.length,errors:t}}function u(e){let t=[];if(!e||"object"!=typeof e)return{valid:!1,errors:["Invalid JSON: expected an object"]};if(e.name&&"string"==typeof e.name?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.name)?i.includes(e.name)&&t.push(`Cannot use reserved name: ${e.name}`):t.push('Name must be a valid JavaScript identifier (e.g., "validateAuth", "formatPrice")'):t.push('Missing or invalid "name" field'),e.code&&"string"==typeof e.code)try{Function("args","db","fetch","console",e.code)}catch(s){let e=s instanceof Error?s.message:String(s);t.push(`JavaScript syntax error: ${e}`)}else t.push('Missing or invalid "code" field');return void 0!==e.enabled&&"boolean"!=typeof e.enabled&&t.push('"enabled" must be a boolean'),{valid:0===t.length,errors:t}}function c(e){let t=[];return e&&"object"==typeof e?(e.name&&"string"==typeof e.name?/^[A-Z][A-Z0-9_]*$/.test(e.name)?e.name.length>64&&t.push("Name must be 64 characters or less"):t.push("Name must be SCREAMING_SNAKE_CASE (e.g., MY_API_KEY, SMTP_PASSWORD)"):t.push('Missing or invalid "name" field'),void 0!==e.description&&"string"!=typeof e.description&&t.push('"description" must be a string'),{valid:0===t.length,errors:t}):{valid:!1,errors:["Invalid JSON: expected an object"]}}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[4447,580,9709],()=>s(54007));module.exports=r})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=7061,a.ids=[7061],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64751:(a,b,c)=>{function d(a){return JSON.stringify({name:a.name,method:a.method,description:a.description,enabled:a.enabled,timeoutMs:a.timeoutMs||5e3,code:a.code},null,2)}function e(a){return JSON.stringify({name:a.name,description:a.description,enabled:a.enabled,code:a.code},null,2)}function f(a){return JSON.stringify({name:a.name,description:a.description||void 0,hasValue:a.hasValue},null,2)}c.d(b,{HI:()=>e,K3:()=>h,W8:()=>i,e0:()=>f,hS:()=>d,xJ:()=>j});let g=["db","fetch","console","args","request","Response","server","secrets","atob","btoa"];function h(a){let b=[];if(!a||"object"!=typeof a)return{valid:!1,errors:["Invalid JSON: expected an object"]};a.name&&"string"==typeof a.name?/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(a.name)||b.push('Name must be lowercase letters, numbers, and hyphens only (e.g., "get-users")'):b.push('Missing or invalid "name" field');let c=["GET","POST","PUT","DELETE","ANY"];if(a.method&&"string"==typeof a.method?c.includes(a.method)||b.push(`Method must be one of: ${c.join(", ")}`):b.push('Missing or invalid "method" field'),a.code&&"string"==typeof a.code)try{Function(a.code)}catch(c){let a=c instanceof Error?c.message:String(c);b.push(`JavaScript syntax error: ${a}`)}else b.push('Missing or invalid "code" field');return void 0!==a.enabled&&"boolean"!=typeof a.enabled&&b.push('"enabled" must be a boolean'),void 0!==a.timeoutMs&&("number"!=typeof a.timeoutMs?b.push('"timeoutMs" must be a number'):(a.timeoutMs<1e3||a.timeoutMs>3e4)&&b.push("Timeout must be between 1000 and 30000 ms")),{valid:0===b.length,errors:b}}function i(a){let b=[];if(!a||"object"!=typeof a)return{valid:!1,errors:["Invalid JSON: expected an object"]};if(a.name&&"string"==typeof a.name?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a.name)?g.includes(a.name)&&b.push(`Cannot use reserved name: ${a.name}`):b.push('Name must be a valid JavaScript identifier (e.g., "validateAuth", "formatPrice")'):b.push('Missing or invalid "name" field'),a.code&&"string"==typeof a.code)try{Function("args","db","fetch","console",a.code)}catch(c){let a=c instanceof Error?c.message:String(c);b.push(`JavaScript syntax error: ${a}`)}else b.push('Missing or invalid "code" field');return void 0!==a.enabled&&"boolean"!=typeof a.enabled&&b.push('"enabled" must be a boolean'),{valid:0===b.length,errors:b}}function j(a){let b=[];return a&&"object"==typeof a?(a.name&&"string"==typeof a.name?/^[A-Z][A-Z0-9_]*$/.test(a.name)?a.name.length>64&&b.push("Name must be 64 characters or less"):b.push("Name must be SCREAMING_SNAKE_CASE (e.g., MY_API_KEY, SMTP_PASSWORD)"):b.push('Missing or invalid "name" field'),void 0!==a.description&&"string"!=typeof a.description&&b.push('"description" must be a string'),{valid:0===b.length,errors:b}):{valid:!1,errors:["Invalid JSON: expected an object"]}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},91481:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(64751);async function x(a,b){try{let{id:c}=await b.params,{operation:d,path:e,content:f}=await a.json();if(!e)return u.NextResponse.json({success:!1,error:"Path is required"},{status:400});let g=(0,v.q)();if(await g.init(),!await g.getSite(c))return u.NextResponse.json({success:!1,error:"Site not found"},{status:404});let h=g.getSiteDatabaseForAnalytics(c);if(!h)return u.NextResponse.json({success:!1,error:"Site database not available"},{status:500});if("delete"===d)return function(a,b){if(a.startsWith("/.server/secrets/")&&a.endsWith(".json")){let c=a.split("/").pop().replace(".json",""),d=b.getSecretByName(c);return d?(b.deleteSecret(d.id),u.NextResponse.json({success:!0})):u.NextResponse.json({success:!1,error:`Secret not found: ${c}`},{status:404})}if(a.startsWith("/.server/edge-functions/")&&a.endsWith(".json")){let c=a.split("/").pop().replace(".json",""),d=b.getFunctionByName(c);return d?(b.deleteFunction(d.id),u.NextResponse.json({success:!0})):u.NextResponse.json({success:!1,error:`Edge function not found: ${c}`},{status:404})}if(a.startsWith("/.server/server-functions/")&&a.endsWith(".json")){let c=a.split("/").pop().replace(".json",""),d=b.getServerFunctionByName(c);return d?(b.deleteServerFunction(d.id),u.NextResponse.json({success:!0})):u.NextResponse.json({success:!1,error:`Server function not found: ${c}`},{status:404})}return u.NextResponse.json({success:!1,error:`Cannot delete ${a}`},{status:400})}(e,h);if(!f)return u.NextResponse.json({success:!1,error:"Content is required for create/update"},{status:400});if("/.server/db/schema.sql"===e)return u.NextResponse.json({success:!1,error:`Cannot modify ${e} - read-only file`},{status:400});if(e.startsWith("/.server/secrets/")&&e.endsWith(".json"))return function(a,b,c){let d;try{d=JSON.parse(b)}catch(b){let a=b instanceof Error?b.message:String(b);return u.NextResponse.json({success:!1,error:`Invalid JSON: ${a}`},{status:400})}let e=(0,w.xJ)(d);if(!e.valid)return u.NextResponse.json({success:!1,error:`Validation failed: ${e.errors.join("; ")}`},{status:400});let f=d,g=a.split("/").pop().replace(".json",""),h=c.getSecretByName(g);h?c.updateSecretMetadata(h.id,{name:f.name,description:f.description||""}):c.createSecretPlaceholder(f.name,f.description||"");let i=c.getSecretByName(f.name),j=`/.server/secrets/${f.name}.json`;return u.NextResponse.json({success:!0,file:{path:j,content:(0,w.e0)(i),isReadOnly:!1}})}(e,f,h);if(e.startsWith("/.server/edge-functions/")&&e.endsWith(".json"))return function(a,b,c){let d;try{d=JSON.parse(b)}catch(b){let a=b instanceof Error?b.message:String(b);return u.NextResponse.json({success:!1,error:`Invalid JSON: ${a}`},{status:400})}let e=(0,w.K3)(d);if(!e.valid)return u.NextResponse.json({success:!1,error:`Validation failed: ${e.errors.join("; ")}`},{status:400});let f=d,g=a.split("/").pop().replace(".json",""),h=c.getFunctionByName(g);h?c.updateFunction(h.id,{name:f.name,code:f.code,method:f.method,description:f.description,enabled:f.enabled??!0,timeoutMs:f.timeoutMs??5e3}):c.createFunction({name:f.name,code:f.code,method:f.method,description:f.description,enabled:f.enabled??!0,timeoutMs:f.timeoutMs??5e3});let i=c.getFunctionByName(f.name),j=`/.server/edge-functions/${f.name}.json`;return u.NextResponse.json({success:!0,file:{path:j,content:(0,w.hS)(i),isReadOnly:!1}})}(e,f,h);if(e.startsWith("/.server/server-functions/")&&e.endsWith(".json"))return function(a,b,c){let d;try{d=JSON.parse(b)}catch(b){let a=b instanceof Error?b.message:String(b);return u.NextResponse.json({success:!1,error:`Invalid JSON: ${a}`},{status:400})}let e=(0,w.W8)(d);if(!e.valid)return u.NextResponse.json({success:!1,error:`Validation failed: ${e.errors.join("; ")}`},{status:400});let f=d,g=a.split("/").pop().replace(".json",""),h=c.getServerFunctionByName(g);h?c.updateServerFunction(h.id,{name:f.name,code:f.code,description:f.description,enabled:f.enabled??!0}):c.createServerFunction({name:f.name,code:f.code,description:f.description,enabled:f.enabled??!0});let i=c.getServerFunctionByName(f.name),j=`/.server/server-functions/${f.name}.json`;return u.NextResponse.json({success:!0,file:{path:j,content:(0,w.HI)(i),isReadOnly:!1}})}(e,f,h);return u.NextResponse.json({success:!1,error:`Unrecognized server context path: ${e}`},{status:400})}catch(a){return console.error("[API] Server context mutation failed:",a),u.NextResponse.json({success:!1,error:a instanceof Error?a.message:"Mutation failed"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-context/mutate/route",pathname:"/api/admin/sites/[id]/server-context/mutate",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-context/mutate/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/mutate/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/sites/[id]/server-context/mutate/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=91481));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js.nft.json
index 59dcc1e454e894f9c56dfb2c1608a5470e266576..06aec9d73c39fcc0ed35b32e32cef5f8f04e4f3e 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/580.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route_client-reference-manifest.js
index a8f4b99cdcb0db9d6c310c43f6ed966dbc3987c0..98c68ddd5280db7f6bd0e63910f83d09776ad700 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/mutate/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/server-context/mutate/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-context/mutate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/mutate/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-context/mutate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/mutate/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/route.js b/.next/server/app/api/admin/sites/[id]/server-context/route.js
index c61175a3237afd58c62a1882a0ece3fc8eef2308..89e4e11dd10469d3f44a3c4de2cbd17c4beb743a 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/route.js
+++ b/.next/server/app/api/admin/sites/[id]/server-context/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=5468,e.ids=[5468],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,n)=>{n.d(t,{A:()=>d});var r=n(55511);let s={randomUUID:r.randomUUID},o=new Uint8Array(256),i=o.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let d=function(e,t,n){if(s.randomUUID&&!t&&!e)return s.randomUUID();let d=(e=e||{}).random??e.rng?.()??(i>o.length-16&&((0,r.randomFillSync)(o),i=0),o.slice(i,i+=16));if(d.length<16)throw Error("Random bytes length must be >= 16");if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,t){if((n=n||0)<0||n+16>t.length)throw RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[n+e]=d[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(d)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78508:(e,t,n)=>{function r(e){return JSON.stringify({name:e.name,method:e.method,description:e.description,enabled:e.enabled,timeoutMs:e.timeoutMs||5e3,code:e.code},null,2)}function s(e){return JSON.stringify({name:e.name,description:e.description,enabled:e.enabled,code:e.code},null,2)}function o(e){return JSON.stringify({name:e.name,description:e.description||void 0,hasValue:e.hasValue},null,2)}n.d(t,{HI:()=>s,K3:()=>a,W8:()=>d,e0:()=>o,hS:()=>r,xJ:()=>u});let i=["db","fetch","console","args","request","Response","server","secrets","atob","btoa"];function a(e){let t=[];if(!e||"object"!=typeof e)return{valid:!1,errors:["Invalid JSON: expected an object"]};e.name&&"string"==typeof e.name?/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(e.name)||t.push('Name must be lowercase letters, numbers, and hyphens only (e.g., "get-users")'):t.push('Missing or invalid "name" field');let n=["GET","POST","PUT","DELETE","ANY"];if(e.method&&"string"==typeof e.method?n.includes(e.method)||t.push(`Method must be one of: ${n.join(", ")}`):t.push('Missing or invalid "method" field'),e.code&&"string"==typeof e.code)try{Function(e.code)}catch(n){let e=n instanceof Error?n.message:String(n);t.push(`JavaScript syntax error: ${e}`)}else t.push('Missing or invalid "code" field');return void 0!==e.enabled&&"boolean"!=typeof e.enabled&&t.push('"enabled" must be a boolean'),void 0!==e.timeoutMs&&("number"!=typeof e.timeoutMs?t.push('"timeoutMs" must be a number'):(e.timeoutMs<1e3||e.timeoutMs>3e4)&&t.push("Timeout must be between 1000 and 30000 ms")),{valid:0===t.length,errors:t}}function d(e){let t=[];if(!e||"object"!=typeof e)return{valid:!1,errors:["Invalid JSON: expected an object"]};if(e.name&&"string"==typeof e.name?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e.name)?i.includes(e.name)&&t.push(`Cannot use reserved name: ${e.name}`):t.push('Name must be a valid JavaScript identifier (e.g., "validateAuth", "formatPrice")'):t.push('Missing or invalid "name" field'),e.code&&"string"==typeof e.code)try{Function("args","db","fetch","console",e.code)}catch(n){let e=n instanceof Error?n.message:String(n);t.push(`JavaScript syntax error: ${e}`)}else t.push('Missing or invalid "code" field');return void 0!==e.enabled&&"boolean"!=typeof e.enabled&&t.push('"enabled" must be a boolean'),{valid:0===t.length,errors:t}}function u(e){let t=[];return e&&"object"==typeof e?(e.name&&"string"==typeof e.name?/^[A-Z][A-Z0-9_]*$/.test(e.name)?e.name.length>64&&t.push("Name must be 64 characters or less"):t.push("Name must be SCREAMING_SNAKE_CASE (e.g., MY_API_KEY, SMTP_PASSWORD)"):t.push('Missing or invalid "name" field'),void 0!==e.description&&"string"!=typeof e.description&&t.push('"description" must be a string'),{valid:0===t.length,errors:t}):{valid:!1,errors:["Invalid JSON: expected an object"]}}},87550:e=>{e.exports=require("better-sqlite3")},98681:(e,t,n)=>{n.r(t),n.d(t,{patchFetch:()=>f,routeModule:()=>p,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>m});var r={};n.r(r),n.d(r,{GET:()=>l});var s=n(96559),o=n(48088),i=n(37719),a=n(32190),d=n(30417),u=n(78508);async function l(e,t){try{let{id:e}=await t.params,n=(0,d.q)();await n.init();let r=await n.getSite(e);if(!r)return a.NextResponse.json({error:"Site not found"},{status:404});let s=n.getSiteDatabaseForAnalytics(e);if(!s)return a.NextResponse.json({error:"Site database not available"},{status:500});let o=[];o.push({path:"/.server/db/schema.sql",content:s.getSchemaForExport(),isReadOnly:!0});let i=s.listSecrets();for(let e of i)o.push({path:`/.server/secrets/${e.name}.json`,content:(0,u.e0)(e),isReadOnly:!1});let l=s.listFunctions();for(let e of l)o.push({path:`/.server/edge-functions/${e.name}.json`,content:(0,u.hS)(e),isReadOnly:!1});let p=s.listServerFunctions();for(let e of p)o.push({path:`/.server/server-functions/${e.name}.json`,content:(0,u.HI)(e),isReadOnly:!1});let c={siteName:r.name,siteId:e,hasDatabase:!0,edgeFunctionCount:l.filter(e=>e.enabled).length,serverFunctionCount:p.filter(e=>e.enabled).length,secretCount:i.length};return a.NextResponse.json({files:o,metadata:c})}catch(e){return console.error("[API] Failed to get server context:",e),a.NextResponse.json({error:"Failed to get server context"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-context/route",pathname:"/api/admin/sites/[id]/server-context",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-context/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route.ts",nextConfigOutput:"standalone",userland:r}),{workAsyncStorage:c,workUnitAsyncStorage:m,serverHooks:h}=p;function f(){return(0,i.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:m})}}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var n=e=>t(t.s=e),r=t.X(0,[4447,580,9709],()=>n(98681));module.exports=r})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=5468,a.ids=[5468],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64751:(a,b,c)=>{function d(a){return JSON.stringify({name:a.name,method:a.method,description:a.description,enabled:a.enabled,timeoutMs:a.timeoutMs||5e3,code:a.code},null,2)}function e(a){return JSON.stringify({name:a.name,description:a.description,enabled:a.enabled,code:a.code},null,2)}function f(a){return JSON.stringify({name:a.name,description:a.description||void 0,hasValue:a.hasValue},null,2)}c.d(b,{HI:()=>e,K3:()=>h,W8:()=>i,e0:()=>f,hS:()=>d,xJ:()=>j});let g=["db","fetch","console","args","request","Response","server","secrets","atob","btoa"];function h(a){let b=[];if(!a||"object"!=typeof a)return{valid:!1,errors:["Invalid JSON: expected an object"]};a.name&&"string"==typeof a.name?/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(a.name)||b.push('Name must be lowercase letters, numbers, and hyphens only (e.g., "get-users")'):b.push('Missing or invalid "name" field');let c=["GET","POST","PUT","DELETE","ANY"];if(a.method&&"string"==typeof a.method?c.includes(a.method)||b.push(`Method must be one of: ${c.join(", ")}`):b.push('Missing or invalid "method" field'),a.code&&"string"==typeof a.code)try{Function(a.code)}catch(c){let a=c instanceof Error?c.message:String(c);b.push(`JavaScript syntax error: ${a}`)}else b.push('Missing or invalid "code" field');return void 0!==a.enabled&&"boolean"!=typeof a.enabled&&b.push('"enabled" must be a boolean'),void 0!==a.timeoutMs&&("number"!=typeof a.timeoutMs?b.push('"timeoutMs" must be a number'):(a.timeoutMs<1e3||a.timeoutMs>3e4)&&b.push("Timeout must be between 1000 and 30000 ms")),{valid:0===b.length,errors:b}}function i(a){let b=[];if(!a||"object"!=typeof a)return{valid:!1,errors:["Invalid JSON: expected an object"]};if(a.name&&"string"==typeof a.name?/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(a.name)?g.includes(a.name)&&b.push(`Cannot use reserved name: ${a.name}`):b.push('Name must be a valid JavaScript identifier (e.g., "validateAuth", "formatPrice")'):b.push('Missing or invalid "name" field'),a.code&&"string"==typeof a.code)try{Function("args","db","fetch","console",a.code)}catch(c){let a=c instanceof Error?c.message:String(c);b.push(`JavaScript syntax error: ${a}`)}else b.push('Missing or invalid "code" field');return void 0!==a.enabled&&"boolean"!=typeof a.enabled&&b.push('"enabled" must be a boolean'),{valid:0===b.length,errors:b}}function j(a){let b=[];return a&&"object"==typeof a?(a.name&&"string"==typeof a.name?/^[A-Z][A-Z0-9_]*$/.test(a.name)?a.name.length>64&&b.push("Name must be 64 characters or less"):b.push("Name must be SCREAMING_SNAKE_CASE (e.g., MY_API_KEY, SMTP_PASSWORD)"):b.push('Missing or invalid "name" field'),void 0!==a.description&&"string"!=typeof a.description&&b.push('"description" must be a string'),{valid:0===b.length,errors:b}):{valid:!1,errors:["Invalid JSON: expected an object"]}}},71012:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(64751);async function x(a,b){try{let{id:a}=await b.params,c=(0,v.q)();await c.init();let d=await c.getSite(a);if(!d)return u.NextResponse.json({error:"Site not found"},{status:404});let e=c.getSiteDatabaseForAnalytics(a);if(!e)return u.NextResponse.json({error:"Site database not available"},{status:500});let f=[];f.push({path:"/.server/db/schema.sql",content:e.getSchemaForExport(),isReadOnly:!0});let g=e.listSecrets();for(let a of g)f.push({path:`/.server/secrets/${a.name}.json`,content:(0,w.e0)(a),isReadOnly:!1});let h=e.listFunctions();for(let a of h)f.push({path:`/.server/edge-functions/${a.name}.json`,content:(0,w.hS)(a),isReadOnly:!1});let i=e.listServerFunctions();for(let a of i)f.push({path:`/.server/server-functions/${a.name}.json`,content:(0,w.HI)(a),isReadOnly:!1});let j={siteName:d.name,siteId:a,hasDatabase:!0,edgeFunctionCount:h.filter(a=>a.enabled).length,serverFunctionCount:i.filter(a=>a.enabled).length,secretCount:g.length};return u.NextResponse.json({files:f,metadata:j})}catch(a){return console.error("[API] Failed to get server context:",a),u.NextResponse.json({error:"Failed to get server context"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-context/route",pathname:"/api/admin/sites/[id]/server-context",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-context/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/admin/sites/[id]/server-context/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=71012));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/server-context/route.js.nft.json
index 8add3a1f606e2e2d39ae583ddd14de015f140ff3..52bc88f2531ab24b7524321bfa19d7d2e0f048a6 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/server-context/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/4447.js","../../../../../../chunks/580.js","../../../../../../chunks/9709.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/1692.js","../../../../../../chunks/4586.js","../../../../../../chunks/726.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-context/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/server-context/route_client-reference-manifest.js
index df774c4d4f51204870fa408a6b44d6a26bf0e0a2..eaa04b0596c36c70e136b61462a84310114444cd 100644
--- a/.next/server/app/api/admin/sites/[id]/server-context/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/server-context/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-context/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-context/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-context/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js
index 0b4d404043e4640e003df58a5c5435f3c155f543..f8bf3ab93615f079b8b36c6ab5fb141d78b400e5 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=820,e.ids=[820],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:e=>{e.exports=import("quickjs-emscripten-core")},8535:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{patchFetch:()=>d,routeModule:()=>c,serverHooks:()=>f,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>l});var s=r(96559),o=r(48088),a=r(37719),i=r(50057),u=e([i]);i=(u.then?(await u)():u)[0];let c=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-functions/[functionId]/route",pathname:"/api/admin/sites/[id]/server-functions/[functionId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-functions/[functionId]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/[functionId]/route.ts",nextConfigOutput:"standalone",userland:i}),{workAsyncStorage:p,workUnitAsyncStorage:l,serverHooks:f}=c;function d(){return(0,a.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:l})}n()}catch(e){n(e)}})},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:e=>{e.exports=import("@jitl/quickjs-wasmfile-release-sync")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50057:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{DELETE:()=>p,GET:()=>d,PUT:()=>c});var s=r(32190),o=r(50613),a=r(30417),i=r(3149),u=e([i]);async function d(e,{params:t}){try{await (0,o.oC)();let{id:e,functionId:r}=await t,n=(0,a.q)();await n.init();let i=await n.getSite?.(e);if(!i)return s.NextResponse.json({error:"Site not found"},{status:404});if(!i.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let u=n.getSiteDatabaseForAnalytics(e);if(!u)return s.NextResponse.json({error:"Site database not available"},{status:500});let d=u.getServerFunction(r);if(!d)return s.NextResponse.json({error:"Server function not found"},{status:404});return s.NextResponse.json({function:d})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function c(e,{params:t}){try{await (0,o.oC)();let{id:r,functionId:n}=await t,u=await e.json(),d=(0,a.q)();await d.init();let c=await d.getSite?.(r);if(!c)return s.NextResponse.json({error:"Site not found"},{status:404});if(!c.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let p=d.getSiteDatabaseForAnalytics(r);if(!p)return s.NextResponse.json({error:"Site database not available"},{status:500});let l=p.getServerFunction(n);if(!l)return s.NextResponse.json({error:"Server function not found"},{status:404});let f={};if(void 0!==u.name&&u.name!==l.name){let e=(0,i.Rv)(u.name);if(e)return s.NextResponse.json({error:e},{status:400});let t=p.getServerFunctionByName(u.name);if(t&&t.id!==n)return s.NextResponse.json({error:"A server function with this name already exists"},{status:409});f.name=u.name}if(void 0!==u.code){let e=(0,i.c2)(u.code);if(e)return s.NextResponse.json({error:e},{status:400});f.code=u.code}void 0!==u.description&&(f.description=u.description),void 0!==u.enabled&&(f.enabled=u.enabled),Object.keys(f).length>0&&p.updateServerFunction(n,f);let x=p.getServerFunction(n);return s.NextResponse.json({function:x})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function p(e,{params:t}){try{await (0,o.oC)();let{id:e,functionId:r}=await t,n=(0,a.q)();await n.init();let i=await n.getSite?.(e);if(!i)return s.NextResponse.json({error:"Site not found"},{status:404});if(!i.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let u=n.getSiteDatabaseForAnalytics(e);if(!u)return s.NextResponse.json({error:"Site database not available"},{status:500});if(!u.getServerFunction(r))return s.NextResponse.json({error:"Server function not found"},{status:404});return u.deleteServerFunction(r),s.NextResponse.json({success:!0})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}i=(u.then?(await u)():u)[0],n()}catch(e){n(e)}})},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>l});var n=r(87806),s=r(77412),o=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,o.UL)(),t=e.get(a)?.value;return t?d(t):null}async function p(){(await (0,o.UL)()).delete(a)}async function l(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709,8274],()=>r(8535));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=820,a.ids=[820],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:a=>{a.exports=import("quickjs-emscripten-core")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13026:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(55032),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-functions/[functionId]/route",pathname:"/api/admin/sites/[id]/server-functions/[functionId]",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-functions/[functionId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/[functionId]/route.ts",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/admin/sites/[id]/server-functions/[functionId]/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},17915:a=>{a.exports=import("@jitl/quickjs-wasmfile-release-sync")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55032:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>l,GET:()=>j,PUT:()=>k});var e=c(10641),f=c(39588),g=c(97778),h=c(19958),i=a([h]);async function j(a,{params:b}){try{await (0,f.oC)();let{id:a,functionId:c}=await b,d=(0,g.q)();await d.init();let h=await d.getSite?.(a);if(!h)return e.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let i=d.getSiteDatabaseForAnalytics(a);if(!i)return e.NextResponse.json({error:"Site database not available"},{status:500});let j=i.getServerFunction(c);if(!j)return e.NextResponse.json({error:"Server function not found"},{status:404});return e.NextResponse.json({function:j})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function k(a,{params:b}){try{await (0,f.oC)();let{id:c,functionId:d}=await b,i=await a.json(),j=(0,g.q)();await j.init();let k=await j.getSite?.(c);if(!k)return e.NextResponse.json({error:"Site not found"},{status:404});if(!k.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let l=j.getSiteDatabaseForAnalytics(c);if(!l)return e.NextResponse.json({error:"Site database not available"},{status:500});let m=l.getServerFunction(d);if(!m)return e.NextResponse.json({error:"Server function not found"},{status:404});let n={};if(void 0!==i.name&&i.name!==m.name){let a=(0,h.Rv)(i.name);if(a)return e.NextResponse.json({error:a},{status:400});let b=l.getServerFunctionByName(i.name);if(b&&b.id!==d)return e.NextResponse.json({error:"A server function with this name already exists"},{status:409});n.name=i.name}if(void 0!==i.code){let a=(0,h.c2)(i.code);if(a)return e.NextResponse.json({error:a},{status:400});n.code=i.code}void 0!==i.description&&(n.description=i.description),void 0!==i.enabled&&(n.enabled=i.enabled),Object.keys(n).length>0&&l.updateServerFunction(d,n);let o=l.getServerFunction(d);return e.NextResponse.json({function:o})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function l(a,{params:b}){try{await (0,f.oC)();let{id:a,functionId:c}=await b,d=(0,g.q)();await d.init();let h=await d.getSite?.(a);if(!h)return e.NextResponse.json({error:"Site not found"},{status:404});if(!h.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let i=d.getSiteDatabaseForAnalytics(a);if(!i)return e.NextResponse.json({error:"Site database not available"},{status:500});if(!i.getServerFunction(c))return e.NextResponse.json({error:"Server function not found"},{status:404});return i.deleteServerFunction(c),e.NextResponse.json({success:!0})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726,3543],()=>b(b.s=13026));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js.nft.json
index 818c46920b17a4f5d2344f04f5b9408ec0d670a8..b15d5ee8dccceda48af9d667512ebb83bf714d32 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/4447.js","../../../../../../../chunks/5155.js","../../../../../../../chunks/580.js","../../../../../../../chunks/8274.js","../../../../../../../chunks/9709.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../../data/osws.sqlite","../../../../../../../../../data/osws.sqlite-shm","../../../../../../../../../data/osws.sqlite-wal","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../../node_modules/bindings/package.json","../../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../../package.json","../../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../../package.json","../../../../../../../chunks/1692.js","../../../../../../../chunks/3543.js","../../../../../../../chunks/4586.js","../../../../../../../chunks/6151.js","../../../../../../../chunks/726.js","../../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route_client-reference-manifest.js
index 5867ae50c07ee7a45da592c6eded8a4487215a6e..2181560c5ce5d9f784aad6b2247f3f7b39bccdbc 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/[functionId]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-functions/[functionId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/[functionId]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-functions/[functionId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/[functionId]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/route.js b/.next/server/app/api/admin/sites/[id]/server-functions/route.js
index 21206ae30dff89cfdc35e4df8c68abf4fa77d6dd..cb9e91047d7fac9f53df05c20f464c7080d6d498 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/route.js
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1618,e.ids=[1618],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:e=>{e.exports=import("quickjs-emscripten-core")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:e=>{e.exports=import("@jitl/quickjs-wasmfile-release-sync")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},41921:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{patchFetch:()=>d,routeModule:()=>c,serverHooks:()=>x,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>l});var s=r(96559),a=r(48088),o=r(37719),i=r(97695),u=e([i]);i=(u.then?(await u)():u)[0];let c=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-functions/route",pathname:"/api/admin/sites/[id]/server-functions",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-functions/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route.ts",nextConfigOutput:"standalone",userland:i}),{workAsyncStorage:p,workUnitAsyncStorage:l,serverHooks:x}=c;function d(){return(0,o.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:l})}n()}catch(e){n(e)}})},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>l});var n=r(87806),s=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?d(t):null}async function p(){(await (0,a.UL)()).delete(o)}async function l(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},97695:(e,t,r)=>{r.a(e,async(e,n)=>{try{r.r(t),r.d(t,{GET:()=>d,POST:()=>c});var s=r(32190),a=r(50613),o=r(30417),i=r(3149),u=e([i]);async function d(e,{params:t}){try{await (0,a.oC)();let{id:e}=await t,r=(0,o.q)();await r.init();let n=await r.getSite?.(e);if(!n)return s.NextResponse.json({error:"Site not found"},{status:404});if(!n.databaseEnabled)return s.NextResponse.json({error:"Site database not enabled"},{status:400});let i=r.getSiteDatabaseForAnalytics(e);if(!i)return s.NextResponse.json({error:"Site database not available"},{status:500});let u=i.listServerFunctions();return s.NextResponse.json({functions:u})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}async function c(e,{params:t}){try{await (0,a.oC)();let{id:r}=await t,n=await e.json();if(!n.name)return s.NextResponse.json({error:"Function name is required"},{status:400});if(!n.code)return s.NextResponse.json({error:"Function code is required"},{status:400});let u=(0,i.Rv)(n.name);if(u)return s.NextResponse.json({error:u},{status:400});let d=(0,i.c2)(n.code);if(d)return s.NextResponse.json({error:d},{status:400});let c=(0,o.q)();await c.init();let p=await c.getSite?.(r);if(!p)return s.NextResponse.json({error:"Site not found"},{status:404});p.databaseEnabled||(p.databaseEnabled=!0,await c.enableSiteDatabase(r),await c.updateSite?.(p));let l=c.getSiteDatabaseForAnalytics(r);if(!l)return s.NextResponse.json({error:"Site database not available"},{status:500});if(l.getServerFunctionByName(n.name))return s.NextResponse.json({error:"A server function with this name already exists"},{status:409});let x=l.createServerFunction({name:n.name,description:n.description||void 0,code:n.code,enabled:!1!==n.enabled}),f=l.getServerFunction(x);return s.NextResponse.json({function:f},{status:201})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return s.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",e),s.NextResponse.json({error:"Internal server error"},{status:500})}}i=(u.then?(await u)():u)[0],n()}catch(e){n(e)}})}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709,8274],()=>r(41921));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1618,a.ids=[1618],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:a=>{a.exports=import("quickjs-emscripten-core")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:a=>{a.exports=import("@jitl/quickjs-wasmfile-release-sync")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19924:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(60160),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/admin/sites/[id]/server-functions/route",pathname:"/api/admin/sites/[id]/server-functions",filename:"route",bundlePath:"app/api/admin/sites/[id]/server-functions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route.ts",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/admin/sites/[id]/server-functions/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},60160:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j,POST:()=>k});var e=c(10641),f=c(39588),g=c(97778),h=c(19958),i=a([h]);async function j(a,{params:b}){try{await (0,f.oC)();let{id:a}=await b,c=(0,g.q)();await c.init();let d=await c.getSite?.(a);if(!d)return e.NextResponse.json({error:"Site not found"},{status:404});if(!d.databaseEnabled)return e.NextResponse.json({error:"Site database not enabled"},{status:400});let h=c.getSiteDatabaseForAnalytics(a);if(!h)return e.NextResponse.json({error:"Site database not available"},{status:500});let i=h.listServerFunctions();return e.NextResponse.json({functions:i})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}async function k(a,{params:b}){try{await (0,f.oC)();let{id:c}=await b,d=await a.json();if(!d.name)return e.NextResponse.json({error:"Function name is required"},{status:400});if(!d.code)return e.NextResponse.json({error:"Function code is required"},{status:400});let i=(0,h.Rv)(d.name);if(i)return e.NextResponse.json({error:i},{status:400});let j=(0,h.c2)(d.code);if(j)return e.NextResponse.json({error:j},{status:400});let k=(0,g.q)();await k.init();let l=await k.getSite?.(c);if(!l)return e.NextResponse.json({error:"Site not found"},{status:404});l.databaseEnabled||(l.databaseEnabled=!0,await k.enableSiteDatabase(c),await k.updateSite?.(l));let m=k.getSiteDatabaseForAnalytics(c);if(!m)return e.NextResponse.json({error:"Site database not available"},{status:500});if(m.getServerFunctionByName(d.name))return e.NextResponse.json({error:"A server function with this name already exists"},{status:409});let n=m.createServerFunction({name:d.name,description:d.description||void 0,code:d.code,enabled:!1!==d.enabled}),o=m.getServerFunction(n);return e.NextResponse.json({function:o},{status:201})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return e.NextResponse.json({error:"Unauthorized"},{status:401});return console.error("[Admin Server Functions API] Error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}h=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726,3543],()=>b(b.s=19924));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/route.js.nft.json b/.next/server/app/api/admin/sites/[id]/server-functions/route.js.nft.json
index 61412027cd8ff8c2c39e676c7a0d2eeec53e8e55..5f91d1805adb75097532cad6ae95104f6a62d4b1 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/route.js.nft.json
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/4447.js","../../../../../../chunks/5155.js","../../../../../../chunks/580.js","../../../../../../chunks/8274.js","../../../../../../chunks/9709.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/1692.js","../../../../../../chunks/3543.js","../../../../../../chunks/4586.js","../../../../../../chunks/6151.js","../../../../../../chunks/726.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/admin/sites/[id]/server-functions/route_client-reference-manifest.js b/.next/server/app/api/admin/sites/[id]/server-functions/route_client-reference-manifest.js
index c9025d8ef79839d4e649e5e0b3f087b93382388c..3a322c3dd7ae1f4ae8ca7955bb647ad77369f569 100644
--- a/.next/server/app/api/admin/sites/[id]/server-functions/route_client-reference-manifest.js
+++ b/.next/server/app/api/admin/sites/[id]/server-functions/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-functions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/admin/sites/[id]/server-functions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/admin/sites/[id]/server-functions/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/clear/route.js b/.next/server/app/api/analytics/[siteId]/clear/route.js
index 2efaad12832a7af6db3d15970b60b5e749f9ad94..a334b473e26d23ec74e0c270668f514f4284ea52 100644
--- a/.next/server/app/api/analytics/[siteId]/clear/route.js
+++ b/.next/server/app/api/analytics/[siteId]/clear/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1989,e.ids=[1989],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,n.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>d,Ht:()=>c,gV:()=>l,jw:()=>u,oC:()=>p});var n=r(87806),s=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(s)}async function l(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?l(t):null}async function d(){(await (0,a.UL)()).delete(o)}async function p(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73876:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>y,routeModule:()=>d,serverHooks:()=>g,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>f});var n={};r.r(n),r.d(n,{DELETE:()=>c});var s=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613),l=r(30417);async function c(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,n=e.nextUrl.searchParams.get("type")||"all";if(!["all","pageviews","interactions","sessions"].includes(n))return i.NextResponse.json({error:"Invalid type parameter. Must be one of: all, pageviews, interactions, sessions"},{status:400});let s=(0,l.q)();if(await s.init(),!await s.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let a=s.getSiteDatabaseForAnalytics(r);if(!a)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let o=a.getAnalyticsStorageInfo();"all"===n?a.clearAnalytics():a.clearAnalytics(n);let c=a.getAnalyticsStorageInfo(),d={pageviews:o.pageviewCount-c.pageviewCount,interactions:o.interactionCount-c.interactionCount,sessions:o.sessionCount-c.sessionCount};return i.NextResponse.json({success:!0,message:"Analytics data cleared successfully",deleted:d})}catch(e){return console.error("[Analytics Clear API] Error:",e),i.NextResponse.json({error:"Failed to clear analytics data"},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/clear/route",pathname:"/api/analytics/[siteId]/clear",filename:"route",bundlePath:"app/api/analytics/[siteId]/clear/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/clear/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:p,workUnitAsyncStorage:f,serverHooks:g}=d;function y(){return(0,o.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:f})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(73876));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1989,a.ids=[1989],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},71499:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{DELETE:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,d=a.nextUrl.searchParams.get("type")||"all";if(!["all","pageviews","interactions","sessions"].includes(d))return u.NextResponse.json({error:"Invalid type parameter. Must be one of: all, pageviews, interactions, sessions"},{status:400});let e=(0,w.q)();if(await e.init(),!await e.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let f=e.getSiteDatabaseForAnalytics(c);if(!f)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let g=f.getAnalyticsStorageInfo();"all"===d?f.clearAnalytics():f.clearAnalytics(d);let h=f.getAnalyticsStorageInfo(),i={pageviews:g.pageviewCount-h.pageviewCount,interactions:g.interactionCount-h.interactionCount,sessions:g.sessionCount-h.sessionCount};return u.NextResponse.json({success:!0,message:"Analytics data cleared successfully",deleted:i})}catch(a){return console.error("[Analytics Clear API] Error:",a),u.NextResponse.json({error:"Failed to clear analytics data"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/clear/route",pathname:"/api/analytics/[siteId]/clear",filename:"route",bundlePath:"app/api/analytics/[siteId]/clear/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/clear/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/clear/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=71499));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/clear/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/clear/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/clear/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/clear/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/clear/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/clear/route_client-reference-manifest.js
index 4c40732f76b1cfecdc0ad9dbcbba0b7828622d62..41c3f38620bcae4df4aee488d23c3385c5964394 100644
--- a/.next/server/app/api/analytics/[siteId]/clear/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/clear/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/clear/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/clear/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/clear/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/clear/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/engagement/route.js b/.next/server/app/api/analytics/[siteId]/engagement/route.js
index f60e2484c421f037735ed083e6596c88833ee654..1d6929c65cb64bb2a160dfc4061cd9b534b109cd 100644
--- a/.next/server/app/api/analytics/[siteId]/engagement/route.js
+++ b/.next/server/app/api/analytics/[siteId]/engagement/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=9379,e.ids=[9379],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let a={randomUUID:n.randomUUID},s=new Uint8Array(256),o=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>s.length-16&&((0,n.randomFillSync)(s),o=0),s.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>d,gV:()=>l,jw:()=>u,oC:()=>c});var n=r(87806),a=r(77412),s=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let a=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(a)}async function l(e){try{let t=i(),{payload:r}=await (0,a.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function d(){let e=await (0,s.UL)(),t=e.get(o)?.value;return t?l(t):null}async function p(){(await (0,s.UL)()).delete(o)}async function c(){let e=await d();if(!e)throw Error("Unauthorized");return e}},55152:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>p,serverHooks:()=>m,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{GET:()=>d});var a=r(96559),s=r(48088),o=r(37719),i=r(32190),u=r(50613),l=r(30417);async function d(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,{searchParams:n}=new URL(e.url),a=parseInt(n.get("days")||"30",10),s=(0,l.q)();if(await s.init(),!await s.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let o=s.getSiteDatabaseForAnalytics(r);if(!o)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let d=o.getEngagementMetrics(a),p={timeOnPage:{average:d.avgTimeOnPage,median:d.avgTimeOnPage,distribution:{}},scrollDepth:{average:d.avgScrollDepth,milestones:d.scrollDepthDistribution},exitPages:d.exitPageCounts.map((e,t,r)=>{let n=r.reduce((e,t)=>e+t.count,0);return{page:e.page,exitCount:e.count,exitRate:n>0?e.count/n:0}}),topLandingPages:[]};return i.NextResponse.json(p)}catch(e){return console.error("[Analytics Engagement API] Error:",e),i.NextResponse.json({error:"Failed to fetch engagement metrics"},{status:500})}}let p=new a.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/engagement/route",pathname:"/api/analytics/[siteId]/engagement",filename:"route",bundlePath:"app/api/analytics/[siteId]/engagement/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/engagement/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:g,serverHooks:m}=p;function x(){return(0,o.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:g})}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(55152));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=9379,a.ids=[9379],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},22963:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,{searchParams:d}=new URL(a.url),e=parseInt(d.get("days")||"30",10),f=(0,w.q)();if(await f.init(),!await f.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let g=f.getSiteDatabaseForAnalytics(c);if(!g)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let h=g.getEngagementMetrics(e),i={timeOnPage:{average:h.avgTimeOnPage,median:h.avgTimeOnPage,distribution:{}},scrollDepth:{average:h.avgScrollDepth,milestones:h.scrollDepthDistribution},exitPages:h.exitPageCounts.map((a,b,c)=>{let d=c.reduce((a,b)=>a+b.count,0);return{page:a.page,exitCount:a.count,exitRate:d>0?a.count/d:0}}),topLandingPages:[]};return u.NextResponse.json(i)}catch(a){return console.error("[Analytics Engagement API] Error:",a),u.NextResponse.json({error:"Failed to fetch engagement metrics"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/engagement/route",pathname:"/api/analytics/[siteId]/engagement",filename:"route",bundlePath:"app/api/analytics/[siteId]/engagement/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/engagement/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/engagement/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=22963));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/engagement/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/engagement/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/engagement/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/engagement/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/engagement/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/engagement/route_client-reference-manifest.js
index 17904c9f89cd388d9a66ae156bcb835f38d0a38c..e179c50ea40a32af786a7100544a40cfc49c125d 100644
--- a/.next/server/app/api/analytics/[siteId]/engagement/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/engagement/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/engagement/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/engagement/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/engagement/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/engagement/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/export/route.js b/.next/server/app/api/analytics/[siteId]/export/route.js
index d646a8ddad5aece287de614493c3d4d27cad8f8f..5a12425571bac61c90acc102a432f0540ab9de51 100644
--- a/.next/server/app/api/analytics/[siteId]/export/route.js
+++ b/.next/server/app/api/analytics/[siteId]/export/route.js
@@ -1,3 +1,3 @@
-"use strict";(()=>{var e={};e.id=8080,e.ids=[8080],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},9855:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>y,routeModule:()=>d,serverHooks:()=>x,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>f});var n={};r.r(n),r.d(n,{POST:()=>p});var o=r(96559),s=r(48088),a=r(37719),i=r(32190),u=r(50613),l=r(30417);async function p(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,{format:n="csv",type:o="all"}=await e.json(),s=(0,l.q)();if(await s.init(),!await s.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let a=s.getSiteDatabaseForAnalytics(r);if(!a)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let p=a.exportAnalyticsData(o);if("json"===n)return i.NextResponse.json(p,{headers:{"Content-Disposition":`attachment; filename="analytics-${r}-${Date.now()}.json"`}});{let e=[];for(let[t,r]of Object.entries(p)){if(!Array.isArray(r)||0===r.length)continue;e.push(`
-# ${t.toUpperCase()}
-`);let n=Object.keys(r[0]);for(let t of(e.push(n.join(",")),r)){let r=n.map(e=>{let r=t[e];return null==r?"":"object"==typeof r?JSON.stringify(r):`"${String(r).replace(/"/g,'""')}"`});e.push(r.join(","))}}let t=e.join("\n");return new i.NextResponse(t,{headers:{"Content-Type":"text/csv","Content-Disposition":`attachment; filename="analytics-${r}-${Date.now()}.csv"`}})}}catch(e){return console.error("[Analytics Export API] Error:",e),i.NextResponse.json({error:"Failed to export analytics data"},{status:500})}}let d=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/export/route",pathname:"/api/analytics/[siteId]/export",filename:"route",bundlePath:"app/api/analytics/[siteId]/export/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/export/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:f,serverHooks:x}=d;function y(){return(0,a.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:f})}},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,n.randomFillSync)(s),a=0),s.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>d,Ht:()=>p,gV:()=>l,jw:()=>u,oC:()=>c});var n=r(87806),o=r(77412),s=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function l(e){try{let t=i(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,s.UL)(),t=e.get(a)?.value;return t?l(t):null}async function d(){(await (0,s.UL)()).delete(a)}async function c(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(9855));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=8080,a.ids=[8080],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},93584:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,{format:d="csv",type:e="all"}=await a.json(),f=(0,w.q)();if(await f.init(),!await f.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let g=f.getSiteDatabaseForAnalytics(c);if(!g)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let h=g.exportAnalyticsData(e);if("json"===d)return u.NextResponse.json(h,{headers:{"Content-Disposition":`attachment; filename="analytics-${c}-${Date.now()}.json"`}});{let a=[];for(let[b,c]of Object.entries(h)){if(!Array.isArray(c)||0===c.length)continue;a.push(`
+# ${b.toUpperCase()}
+`);let d=Object.keys(c[0]);for(let b of(a.push(d.join(",")),c)){let c=d.map(a=>{let c=b[a];return null==c?"":"object"==typeof c?JSON.stringify(c):`"${String(c).replace(/"/g,'""')}"`});a.push(c.join(","))}}let b=a.join("\n");return new u.NextResponse(b,{headers:{"Content-Type":"text/csv","Content-Disposition":`attachment; filename="analytics-${c}-${Date.now()}.csv"`}})}}catch(a){return console.error("[Analytics Export API] Error:",a),u.NextResponse.json({error:"Failed to export analytics data"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/export/route",pathname:"/api/analytics/[siteId]/export",filename:"route",bundlePath:"app/api/analytics/[siteId]/export/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/export/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/export/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=93584));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/export/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/export/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/export/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/export/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/export/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/export/route_client-reference-manifest.js
index 187bb6b41f49281d258d066c2b426d9991370b83..d3358028ba18a9fb3547d0bbffcc46a24115f05a 100644
--- a/.next/server/app/api/analytics/[siteId]/export/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/export/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/export/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/export/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/export/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/export/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/heatmap/route.js b/.next/server/app/api/analytics/[siteId]/heatmap/route.js
index de208ba0cd31de437befae94e47c8385c80f7659..030eba7cc9e22f5922efd86d87a0ec8878fffaa7 100644
--- a/.next/server/app/api/analytics/[siteId]/heatmap/route.js
+++ b/.next/server/app/api/analytics/[siteId]/heatmap/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=6758,e.ids=[6758],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(55511);let a={randomUUID:n.randomUUID},o=new Uint8Array(256),s=o.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let l=(e=e||{}).random??e.rng?.()??(s>o.length-16&&((0,n.randomFillSync)(o),s=0),o.slice(s,s+=16));if(l.length<16)throw Error("Random bytes length must be >= 16");if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=l[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(l)}},24575:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>h,routeModule:()=>d,serverHooks:()=>g,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>p});var a=r(96559),o=r(48088),s=r(37719),i=r(32190),l=r(50613),u=r(30417);async function p(e,{params:t}){try{if(!await (0,l.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,{searchParams:n}=new URL(e.url),a=n.get("page"),o=n.get("type")||"click",s=n.get("device"),p=n.get("dateFrom"),d=n.get("dateTo");if(!a)return i.NextResponse.json({error:"Missing required parameter: page"},{status:400});let c=(0,u.q)();if(await c.init(),!await c.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let m=c.getSiteDatabaseForAnalytics(r);if(!m)return i.NextResponse.json({error:"Site database not enabled"},{status:404});if("click"===o){let e=m.getClickData(a,p||void 0,d||void 0).map(e=>{try{let t="string"==typeof e.coordinates?JSON.parse(e.coordinates):e.coordinates;return{x:t.x,y:t.y,scrollY:t.scrollY||0,viewportWidth:t.viewportWidth,viewportHeight:t.viewportHeight,documentHeight:t.documentHeight,elementSelector:e.elementSelector,timestamp:e.timestamp}}catch{return null}}).filter(e=>null!==e);return s&&"all"!==s&&(e=e.filter(e=>{let t=e.viewportWidth;return"mobile"===s?t<768:"tablet"===s?t>=768&&t<1024:"desktop"!==s||t>=1024})),i.NextResponse.json({type:"click",page:a,sampleSize:e.length,points:e})}if("scroll"===o){let e=m.getScrollData(a,p||void 0,d||void 0),t=e.reduce((e,t)=>{let r=t.scrollDepth;return e[r]=(e[r]||0)+1,e},{});return i.NextResponse.json({type:"scroll",page:a,sampleSize:e.length,depthDistribution:t,rawData:e})}return i.NextResponse.json({error:"Invalid type"},{status:400})}catch(e){return console.error("[Analytics Heatmap API] Error:",e),i.NextResponse.json({error:"Failed to fetch heatmap data"},{status:500})}}let d=new a.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/heatmap/route",pathname:"/api/analytics/[siteId]/heatmap",filename:"route",bundlePath:"app/api/analytics/[siteId]/heatmap/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/heatmap/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:m,serverHooks:g}=d;function h(){return(0,s.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:m})}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>d,Ht:()=>p,gV:()=>u,jw:()=>l,oC:()=>c});var n=r(87806),a=r(77412),o=r(44999);let s="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function l(e,t,r=!0){let a=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(a)}async function u(e){try{let t=i(),{payload:r}=await (0,a.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,o.UL)(),t=e.get(s)?.value;return t?u(t):null}async function d(){(await (0,o.UL)()).delete(s)}async function c(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(24575));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=6758,a.ids=[6758],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},87687:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,{searchParams:d}=new URL(a.url),e=d.get("page"),f=d.get("type")||"click",g=d.get("device"),h=d.get("dateFrom"),i=d.get("dateTo");if(!e)return u.NextResponse.json({error:"Missing required parameter: page"},{status:400});let j=(0,w.q)();if(await j.init(),!await j.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let k=j.getSiteDatabaseForAnalytics(c);if(!k)return u.NextResponse.json({error:"Site database not enabled"},{status:404});if("click"===f){let a=k.getClickData(e,h||void 0,i||void 0).map(a=>{try{let b="string"==typeof a.coordinates?JSON.parse(a.coordinates):a.coordinates;return{x:b.x,y:b.y,scrollY:b.scrollY||0,viewportWidth:b.viewportWidth,viewportHeight:b.viewportHeight,documentHeight:b.documentHeight,elementSelector:a.elementSelector,timestamp:a.timestamp}}catch{return null}}).filter(a=>null!==a);return g&&"all"!==g&&(a=a.filter(a=>{let b=a.viewportWidth;return"mobile"===g?b<768:"tablet"===g?b>=768&&b<1024:"desktop"!==g||b>=1024})),u.NextResponse.json({type:"click",page:e,sampleSize:a.length,points:a})}if("scroll"===f){let a=k.getScrollData(e,h||void 0,i||void 0),b=a.reduce((a,b)=>{let c=b.scrollDepth;return a[c]=(a[c]||0)+1,a},{});return u.NextResponse.json({type:"scroll",page:e,sampleSize:a.length,depthDistribution:b,rawData:a})}return u.NextResponse.json({error:"Invalid type"},{status:400})}catch(a){return console.error("[Analytics Heatmap API] Error:",a),u.NextResponse.json({error:"Failed to fetch heatmap data"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/heatmap/route",pathname:"/api/analytics/[siteId]/heatmap",filename:"route",bundlePath:"app/api/analytics/[siteId]/heatmap/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/heatmap/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/heatmap/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=87687));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/heatmap/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/heatmap/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/heatmap/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/heatmap/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/heatmap/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/heatmap/route_client-reference-manifest.js
index 8be746e2a07fd235b6b5c9a03d95b7417b02654a..a71ed11fa1a7e581312e659951f0d91e61d366d4 100644
--- a/.next/server/app/api/analytics/[siteId]/heatmap/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/heatmap/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/heatmap/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/heatmap/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/heatmap/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/heatmap/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/overview/route.js b/.next/server/app/api/analytics/[siteId]/overview/route.js
index c544ea114ce3e5c88b117b94aaeacb14bc81595c..294eedb9505d9c2edf97612b28f017b7376b5067 100644
--- a/.next/server/app/api/analytics/[siteId]/overview/route.js
+++ b/.next/server/app/api/analytics/[siteId]/overview/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=7715,e.ids=[7715],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let o={randomUUID:n.randomUUID},a=new Uint8Array(256),s=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(s>a.length-16&&((0,n.randomFillSync)(a),s=0),a.slice(s,s+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},28895:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>g,routeModule:()=>p,serverHooks:()=>v,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>w});var n={};r.r(n),r.d(n,{GET:()=>l});var o=r(96559),a=r(48088),s=r(37719),i=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,{searchParams:n}=new URL(e.url),o=parseInt(n.get("days")||"30",10),a=(0,d.q)();if(await a.init(),!await a.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let s=a.getSiteDatabaseForAnalytics(r);if(!s)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let l=s.getOverviewStats(o),p=s.getStats(o),c={totalPageviews:l.totalPageviews,uniqueVisitors:l.uniqueSessions,averageTimeOnSite:l.avgSessionDuration,bounceRate:l.bounceRate/100,topPages:p.topPages.map(e=>({page:e.path,views:e.views})),topReferrers:p.topReferrers,deviceBreakdown:l.deviceBreakdown.reduce((e,t)=>(e[t.device]=t.count,e),{}),countryBreakdown:{}};return i.NextResponse.json(c)}catch(e){return console.error("[Analytics Overview API] Error:",e),i.NextResponse.json({error:"Failed to fetch analytics overview"},{status:500})}}let p=new o.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/overview/route",pathname:"/api/analytics/[siteId]/overview",filename:"route",bundlePath:"app/api/analytics/[siteId]/overview/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/overview/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:w,serverHooks:v}=p;function g(){return(0,s.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:w})}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),o=r(77412),a=r(44999);let s="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(o)}async function d(e){try{let t=i(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,a.UL)(),t=e.get(s)?.value;return t?d(t):null}async function p(){(await (0,a.UL)()).delete(s)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(28895));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=7715,a.ids=[7715],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78632:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,{searchParams:d}=new URL(a.url),e=parseInt(d.get("days")||"30",10),f=(0,w.q)();if(await f.init(),!await f.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let g=f.getSiteDatabaseForAnalytics(c);if(!g)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let h=g.getOverviewStats(e),i=g.getStats(e),j={totalPageviews:h.totalPageviews,uniqueVisitors:h.uniqueSessions,averageTimeOnSite:h.avgSessionDuration,bounceRate:h.bounceRate/100,topPages:i.topPages.map(a=>({page:a.path,views:a.views})),topReferrers:i.topReferrers,deviceBreakdown:h.deviceBreakdown.reduce((a,b)=>(a[b.device]=b.count,a),{}),countryBreakdown:{}};return u.NextResponse.json(j)}catch(a){return console.error("[Analytics Overview API] Error:",a),u.NextResponse.json({error:"Failed to fetch analytics overview"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/overview/route",pathname:"/api/analytics/[siteId]/overview",filename:"route",bundlePath:"app/api/analytics/[siteId]/overview/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/overview/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/overview/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=78632));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/overview/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/overview/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/overview/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/overview/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/overview/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/overview/route_client-reference-manifest.js
index 46b56808881758bb2bf5afd54ef987d8e69ea763..3869b49ba8676604ba0c53c0e1afbe6d4278dbb1 100644
--- a/.next/server/app/api/analytics/[siteId]/overview/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/overview/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/overview/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/overview/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/overview/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/overview/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/route.js b/.next/server/app/api/analytics/[siteId]/route.js
index 0001c593f0c7fb2ce4c2b1b979c4f6c303ca2abd..9748e3a5d515a82d6e4c56e073d3c05742b9bec8 100644
--- a/.next/server/app/api/analytics/[siteId]/route.js
+++ b/.next/server/app/api/analytics/[siteId]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=4975,e.ids=[4975],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var s=r(55511);let a={randomUUID:s.randomUUID},n=new Uint8Array(256),o=n.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>n.length-16&&((0,s.randomFillSync)(n),o=0),n.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69532:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>d,serverHooks:()=>g,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>c});var s={};r.r(s),r.d(s,{GET:()=>p});var a=r(96559),n=r(48088),o=r(37719),i=r(32190),u=r(30417);async function p(e,{params:t}){try{let{siteId:r}=await t,s=e.nextUrl.searchParams,a=parseInt(s.get("days")||"30",10),n=(0,u.q)();if(await n.init(),!await n.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let o=n.getSiteDatabaseForAnalytics(r);if(!o)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let p=o.getStats(a),d=o.getTopPages(a,10),l=o.getTopReferrers(a,10),c=o.getPageviewsOverTime(a),g={totalPageviews:p.totalPageviews,uniqueVisitors:p.uniqueSessions,topPages:d,topReferrers:l.map(e=>({referrer:e.referrer,views:e.count})),countries:[],pageviewsOverTime:c.map(e=>({date:e.date,views:e.views}))};return i.NextResponse.json(g)}catch(e){return console.error("[Analytics API] Error fetching analytics:",e),i.NextResponse.json({error:"Failed to fetch analytics"},{status:500})}}let d=new a.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/route",pathname:"/api/analytics/[siteId]",filename:"route",bundlePath:"app/api/analytics/[siteId]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:l,workUnitAsyncStorage:c,serverHooks:g}=d;function f(){return(0,o.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:c})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,9709],()=>r(69532));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=4975,a.ids=[4975],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29855:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{GET:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778);async function w(a,{params:b}){try{let{siteId:c}=await b,d=a.nextUrl.searchParams,e=parseInt(d.get("days")||"30",10),f=(0,v.q)();if(await f.init(),!await f.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let g=f.getSiteDatabaseForAnalytics(c);if(!g)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let h=g.getStats(e),i=g.getTopPages(e,10),j=g.getTopReferrers(e,10),k=g.getPageviewsOverTime(e),l={totalPageviews:h.totalPageviews,uniqueVisitors:h.uniqueSessions,topPages:i,topReferrers:j.map(a=>({referrer:a.referrer,views:a.count})),countries:[],pageviewsOverTime:k.map(a=>({date:a.date,views:a.views}))};return u.NextResponse.json(l)}catch(a){return console.error("[Analytics API] Error fetching analytics:",a),u.NextResponse.json({error:"Failed to fetch analytics"},{status:500})}}let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/route",pathname:"/api/analytics/[siteId]",filename:"route",bundlePath:"app/api/analytics/[siteId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){var d;let e="/api/analytics/[siteId]/route";"/index"===e&&(e="/");let g=await x.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||x.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===x.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>x.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>x.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await x.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=29855));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/route.js.nft.json
index 356d70acea50c2b43d853db72da9bc8bd10c56df..4eac3c3a01f0d17750b936f83214f28fee8ade69 100644
--- a/.next/server/app/api/analytics/[siteId]/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/route_client-reference-manifest.js
index d12b03c9ceac3a62a9257cfdfd6ec03f9599911a..44da42fcfbb0fbd6194172648367e0063773b878 100644
--- a/.next/server/app/api/analytics/[siteId]/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/sessions/route.js b/.next/server/app/api/analytics/[siteId]/sessions/route.js
index cad036eb53dac36c54076ee52f8630f436d0f166..e4a27ca7309e7f66b8f5047a11048ccbd7011948 100644
--- a/.next/server/app/api/analytics/[siteId]/sessions/route.js
+++ b/.next/server/app/api/analytics/[siteId]/sessions/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=2133,e.ids=[2133],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let a={randomUUID:n.randomUUID},s=new Uint8Array(256),o=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>s.length-16&&((0,n.randomFillSync)(s),o=0),s.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>d,Ht:()=>p,gV:()=>l,jw:()=>u,oC:()=>c});var n=r(87806),a=r(77412),s=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let a=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(a)}async function l(e){try{let t=i(),{payload:r}=await (0,a.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,s.UL)(),t=e.get(o)?.value;return t?l(t):null}async function d(){(await (0,s.UL)()).delete(o)}async function c(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},82658:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>m,routeModule:()=>d,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{GET:()=>p});var a=r(96559),s=r(48088),o=r(37719),i=r(32190),u=r(50613),l=r(30417);async function p(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:r}=await t,{searchParams:n}=new URL(e.url),a=n.get("dateFrom"),s=n.get("dateTo"),o=Math.min(parseInt(n.get("limit")||"100",10),1e3),p=(0,l.q)();if(await p.init(),!await p.getSite(r))return i.NextResponse.json({error:"Site not found"},{status:404});let d=p.getSiteDatabaseForAnalytics(r);if(!d)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let c=d.getSessionsWithJourneys(a||void 0,s||void 0,o).map(e=>({sessionId:e.sessionId,pages:e.pages.map((t,r)=>({path:t.path,timestamp:t.timestamp,duration:r{e.pages.forEach((n,a)=>{if(r.set(n.path,(r.get(n.path)||0)+1),a({id:e,label:"/"===e?"Home":e,value:t})).sort((e,t)=>t.value-e.value).slice(0,20),a=new Set(n.map(e=>e.id));return{nodes:n,links:Array.from(t.entries()).map(([e,t])=>{let[r,n]=e.split("::");return{source:r,target:n,value:t}}).filter(e=>a.has(e.source)&&a.has(e.target)).sort((e,t)=>t.value-e.value)}}(c);return i.NextResponse.json({sessions:c,flowData:g,summary:{totalSessions:c.length,bounceRate:c.length>0?c.filter(e=>e.isBounce).length/c.length:0,averageDuration:c.length>0?c.reduce((e,t)=>e+t.totalDuration,0)/c.length:0,averagePageCount:c.length>0?c.reduce((e,t)=>e+t.pageCount,0)/c.length:0}})}catch(e){return console.error("[Analytics Sessions API] Error:",e),i.NextResponse.json({error:"Failed to fetch session data"},{status:500})}}let d=new a.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/sessions/route",pathname:"/api/analytics/[siteId]/sessions",filename:"route",bundlePath:"app/api/analytics/[siteId]/sessions/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/sessions/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:g,serverHooks:h}=d;function m(){return(0,o.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:g})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(82658));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=2133,a.ids=[2133],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4325:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:c}=await b,{searchParams:d}=new URL(a.url),e=d.get("dateFrom"),f=d.get("dateTo"),g=Math.min(parseInt(d.get("limit")||"100",10),1e3),h=(0,w.q)();if(await h.init(),!await h.getSite(c))return u.NextResponse.json({error:"Site not found"},{status:404});let i=h.getSiteDatabaseForAnalytics(c);if(!i)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let j=i.getSessionsWithJourneys(e||void 0,f||void 0,g).map(a=>({sessionId:a.sessionId,pages:a.pages.map((b,c)=>({path:b.path,timestamp:b.timestamp,duration:c{a.pages.forEach((d,e)=>{if(c.set(d.path,(c.get(d.path)||0)+1),e({id:a,label:"/"===a?"Home":a,value:b})).sort((a,b)=>b.value-a.value).slice(0,20),e=new Set(d.map(a=>a.id));return{nodes:d,links:Array.from(b.entries()).map(([a,b])=>{let[c,d]=a.split("::");return{source:c,target:d,value:b}}).filter(a=>e.has(a.source)&&e.has(a.target)).sort((a,b)=>b.value-a.value)}}(j);return u.NextResponse.json({sessions:j,flowData:k,summary:{totalSessions:j.length,bounceRate:j.length>0?j.filter(a=>a.isBounce).length/j.length:0,averageDuration:j.length>0?j.reduce((a,b)=>a+b.totalDuration,0)/j.length:0,averagePageCount:j.length>0?j.reduce((a,b)=>a+b.pageCount,0)/j.length:0}})}catch(a){return console.error("[Analytics Sessions API] Error:",a),u.NextResponse.json({error:"Failed to fetch session data"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/sessions/route",pathname:"/api/analytics/[siteId]/sessions",filename:"route",bundlePath:"app/api/analytics/[siteId]/sessions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/sessions/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/sessions/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=4325));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/sessions/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/sessions/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/sessions/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/sessions/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/sessions/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/sessions/route_client-reference-manifest.js
index a35b1771339b7dbe390546a8c4a5859c16c7f8b3..9f1c74acfb45a9693283341f4a691c29705de851 100644
--- a/.next/server/app/api/analytics/[siteId]/sessions/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/sessions/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/sessions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/sessions/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/sessions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/sessions/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/storage/route.js b/.next/server/app/api/analytics/[siteId]/storage/route.js
index f727945fe49400a14a60bdc7da75d3fb5c82cbc2..0851bf0e0d5cee7fcb3bd7d06be68fa56d80fd75 100644
--- a/.next/server/app/api/analytics/[siteId]/storage/route.js
+++ b/.next/server/app/api/analytics/[siteId]/storage/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1497,e.ids=[1497],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,n.randomFillSync)(s),a=0),s.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>p,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>c});var n=r(87806),o=r(77412),s=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function d(e){try{let t=i(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,s.UL)(),t=e.get(a)?.value;return t?d(t):null}async function p(){(await (0,s.UL)()).delete(a)}async function c(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},96286:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>p,serverHooks:()=>x,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{GET:()=>l});var o=r(96559),s=r(48088),a=r(37719),i=r(32190),u=r(50613),d=r(30417);async function l(e,{params:t}){try{if(!await (0,u.Ht)())return i.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:e}=await t,r=(0,d.q)();if(await r.init(),!await r.getSite(e))return i.NextResponse.json({error:"Site not found"},{status:404});let n=r.getSiteDatabaseForAnalytics(e);if(!n)return i.NextResponse.json({error:"Site database not enabled"},{status:404});let o=n.getAnalyticsStorageInfo(),s=200*o.pageviewCount/1048576,a=150*o.interactionCount/1048576,l=100*o.sessionCount/1048576,p=s+a+l,c={totalMB:parseFloat(p.toFixed(2)),breakdown:{pageviews:{count:o.pageviewCount,sizeMB:parseFloat(s.toFixed(2))},interactions:{count:o.interactionCount,sizeMB:parseFloat(a.toFixed(2))},sessions:{count:o.sessionCount,sizeMB:parseFloat(l.toFixed(2))}}};return i.NextResponse.json(c)}catch(e){return console.error("[Analytics Storage API] Error:",e),i.NextResponse.json({error:"Failed to get storage usage"},{status:500})}}let p=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/storage/route",pathname:"/api/analytics/[siteId]/storage",filename:"route",bundlePath:"app/api/analytics/[siteId]/storage/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/storage/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:c,workUnitAsyncStorage:g,serverHooks:x}=p;function f(){return(0,a.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:g})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(96286));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1497,a.ids=[1497],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},83704:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a,{params:b}){try{if(!await (0,v.Ht)())return u.NextResponse.json({error:"Unauthorized"},{status:401});let{siteId:a}=await b,c=(0,w.q)();if(await c.init(),!await c.getSite(a))return u.NextResponse.json({error:"Site not found"},{status:404});let d=c.getSiteDatabaseForAnalytics(a);if(!d)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let e=d.getAnalyticsStorageInfo(),f=200*e.pageviewCount/1048576,g=150*e.interactionCount/1048576,h=100*e.sessionCount/1048576,i=f+g+h,j={totalMB:parseFloat(i.toFixed(2)),breakdown:{pageviews:{count:e.pageviewCount,sizeMB:parseFloat(f.toFixed(2))},interactions:{count:e.interactionCount,sizeMB:parseFloat(g.toFixed(2))},sessions:{count:e.sessionCount,sizeMB:parseFloat(h.toFixed(2))}}};return u.NextResponse.json(j)}catch(a){return console.error("[Analytics Storage API] Error:",a),u.NextResponse.json({error:"Failed to get storage usage"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/[siteId]/storage/route",pathname:"/api/analytics/[siteId]/storage",filename:"route",bundlePath:"app/api/analytics/[siteId]/storage/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/storage/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/analytics/[siteId]/storage/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=83704));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/storage/route.js.nft.json b/.next/server/app/api/analytics/[siteId]/storage/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/analytics/[siteId]/storage/route.js.nft.json
+++ b/.next/server/app/api/analytics/[siteId]/storage/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/[siteId]/storage/route_client-reference-manifest.js b/.next/server/app/api/analytics/[siteId]/storage/route_client-reference-manifest.js
index 2613b8cf120c7ceaee3d8acb7e014c984063ce8b..09860d784853e4fecfce3c3fab5dad90475c5c83 100644
--- a/.next/server/app/api/analytics/[siteId]/storage/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/[siteId]/storage/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/storage/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/storage/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/[siteId]/storage/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/[siteId]/storage/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/interaction/route.js b/.next/server/app/api/analytics/interaction/route.js
index c3f197c49bb549665effa9fa7ee850460810dfe9..35100fa618e66c69e29279e7ffbb5ccd1eada20b 100644
--- a/.next/server/app/api/analytics/interaction/route.js
+++ b/.next/server/app/api/analytics/interaction/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=8687,e.ids=[8687],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14938:(e,t,r)=>{r.d(t,{Cm:()=>a,F7:()=>s,fi:()=>i,iH:()=>o});class n{check(e,t){let r=Date.now();r-this.lastCleanup>this.CLEANUP_INTERVAL&&this.cleanup(t.windowMs);let n=(this.requests.get(e)||[]).filter(e=>r-e=t.limit)return!1;if(n.push(r),this.requests.set(e,n),this.requests.size>this.MAX_KEYS){let e=this.requests.keys().next().value;void 0!==e&&this.requests.delete(e)}return!0}getCount(e,t){let r=Date.now();return(this.requests.get(e)||[]).filter(e=>r-en-et-r{r.d(t,{A:()=>l});var n=r(55511);let s={randomUUID:n.randomUUID},i=new Uint8Array(256),o=i.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let l=(e=e||{}).random??e.rng?.()??(o>i.length-16&&((0,n.randomFillSync)(i),o=0),i.slice(o,o+=16));if(l.length<16)throw Error("Random bytes length must be >= 16");if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=l[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(l)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74551:(e,t,r)=>{r.d(t,{H6:()=>o,In:()=>s,TB:()=>n,iJ:()=>i}),r(55511);function n(e,t){let r=e.headers.get("origin")||"",n=e.headers.get("referer")||"";return t.some(e=>r.startsWith(e)||n.startsWith(e))}function s(e,t){let r=process.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000",n=[`${r}/sites/${e}`,r];return r.includes("localhost")&&(n.push("http://localhost:3000"),n.push("http://127.0.0.1:3000")),t&&(n.push(`https://${t}`),n.push(`http://${t}`)),n}function i(e){if(!e)return!0;let t=e.toLowerCase();return["bot","crawl","spider","scrape","curl","wget","python","java","http","go-http-client","axios","fetch","node-fetch","requests","urllib","headless","phantom","selenium","puppeteer","playwright"].some(e=>t.includes(e))}function o(e){if(e.pagePath&&e.pagePath.length>500||e.referrer&&e.referrer.length>500||e.userAgent&&e.userAgent.length>500)return!0;let t=/(union|select|insert|update|delete|drop|create|alter)/i;return!!(e.pagePath&&t.test(e.pagePath)||e.referrer&&t.test(e.referrer))}},77026:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>y,routeModule:()=>f,serverHooks:()=>w,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>x});var n={};r.r(n),r.d(n,{POST:()=>p});var s=r(96559),i=r(48088),o=r(37719),a=r(32190),l=r(30417),u=r(14938),c=r(74551);async function p(e){try{let t=await e.json();if("batch"in t&&!0===t.batch)return g(e,t);let{siteId:r,pagePath:n,interactionType:s,elementSelector:i,coordinates:o,scrollDepth:p,timeOnPage:f,userAgent:m}=t,x=(0,u.Cm)(e);if(!u.fi.check(x,u.iH.interaction)){let e=u.fi.getResetTime(x,u.iH.interaction);return a.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":e.toString(),"X-RateLimit-Limit":u.iH.interaction.limit.toString(),"X-RateLimit-Remaining":"0"}})}if(!r||!n||!s)return a.NextResponse.json({error:"Missing required fields: siteId, pagePath, interactionType"},{status:400});if((0,c.H6)({pagePath:n,userAgent:m}))return console.warn("[Analytics Interaction] Suspicious request detected:",{siteId:r,pagePath:n,ip:x}),a.NextResponse.json({error:"Invalid request"},{status:400});if(m&&(0,c.iJ)(m))return a.NextResponse.json({success:!0});let w=(0,l.q)();await w.init();let y=await w.getSite(r);if(!y)return a.NextResponse.json({error:"Site not found"},{status:404});if(!y.analytics.enabled||"builtin"!==y.analytics.provider)return a.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let R=w.getSiteDatabaseForAnalytics(r);if(!R)return a.NextResponse.json({error:"Site database not enabled"},{status:404});let v=y.analytics.features||{};if("click"===s&&!v.heatmaps)return a.NextResponse.json({error:"Heatmaps feature not enabled"},{status:403});if("scroll"===s&&!v.engagementTracking&&!v.heatmaps||"exit"===s&&!v.engagementTracking)return a.NextResponse.json({error:"Engagement tracking not enabled"},{status:403});let j=(0,c.In)(r,y.customDomain);if(!(0,c.TB)(e,j))return console.warn("[Analytics Interaction] Invalid origin (rejected):",{origin:e.headers.get("origin"),referer:e.headers.get("referer"),allowedOrigins:j,siteId:r,ip:x}),a.NextResponse.json({error:"Origin not allowed"},{status:403});let q=d(m||e.headers.get("user-agent")||"",e),b=h(n);return R.recordInteraction({sessionId:q,pagePath:b,interactionType:s,elementSelector:i,coordinates:o?{x:o.x,y:o.y,scrollY:o.scrollY,viewportWidth:o.viewportWidth,viewportHeight:o.viewportHeight,documentHeight:o.documentHeight}:void 0,scrollDepth:p,timeOnPage:f}),a.NextResponse.json({success:!0})}catch(e){return console.error("[Analytics Interaction API] Error:",e),a.NextResponse.json({error:"Failed to track interaction"},{status:500})}}function d(e,t){var r;let n=t.headers.get("x-forwarded-for"),s=(r=n?n.split(",")[0]:"")?r.includes(":")?r.split(":").slice(0,4).join(":")+"::":r.split(".").slice(0,2).join(".")+".0.0":"",i=`${e}|${s}|${new Date().toDateString()}`,o=0;for(let e=0;e100)return a.NextResponse.json({error:"Batch size exceeds maximum of 100 interactions"},{status:400});let n=(0,u.Cm)(e);if(!u.fi.check(n,u.iH.interaction)){let e=u.fi.getResetTime(n,u.iH.interaction);return a.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":e.toString(),"X-RateLimit-Limit":u.iH.interaction.limit.toString(),"X-RateLimit-Remaining":"0"}})}let{siteId:s,userAgent:i}=r[0];if(!s)return a.NextResponse.json({error:"Missing required field: siteId"},{status:400});if(i&&(0,c.iJ)(i))return a.NextResponse.json({success:!0});let o=(0,l.q)();await o.init();try{let t=await o.getSite(s);if(!t)return a.NextResponse.json({error:"Site not found"},{status:404});if(!t.analytics.enabled||"builtin"!==t.analytics.provider)return a.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let i=o.getSiteDatabaseForAnalytics(s);if(!i)return a.NextResponse.json({error:"Site database not enabled"},{status:404});let l=(0,c.In)(s,t.customDomain);if(!(0,c.TB)(e,l))return console.warn("[Analytics Batch] Invalid origin (rejected):",{origin:e.headers.get("origin"),referer:e.headers.get("referer"),allowedOrigins:l,siteId:s,ip:n}),a.NextResponse.json({error:"Origin not allowed"},{status:403});let u=e.headers.get("user-agent")||"",p=0,g=0;for(let n of r){let{pagePath:r,interactionType:s,elementSelector:o,coordinates:a,scrollDepth:l,timeOnPage:f,userAgent:m}=n;if(!r||!s){g++;continue}let x=t.analytics.features||{};if("click"===s&&!x.heatmaps||"scroll"===s&&!x.engagementTracking&&!x.heatmaps||"exit"===s&&!x.engagementTracking||(0,c.H6)({pagePath:r,userAgent:m})){g++;continue}let w=d(m||u,e),y=h(r);try{i.recordInteraction({sessionId:w,pagePath:y,interactionType:s,elementSelector:o,coordinates:a?{x:a.x,y:a.y,scrollY:a.scrollY,viewportWidth:a.viewportWidth,viewportHeight:a.viewportHeight,documentHeight:a.documentHeight}:void 0,scrollDepth:l,timeOnPage:f}),p++}catch(e){console.error("[Analytics Batch] Error inserting interaction:",e),g++}}return a.NextResponse.json({success:!0,processed:p,skipped:g,total:r.length})}catch(e){return console.error("[Analytics Batch] Error processing batch:",e),a.NextResponse.json({error:"Failed to process batch interactions"},{status:500})}}let f=new s.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/analytics/interaction/route",pathname:"/api/analytics/interaction",filename:"route",bundlePath:"app/api/analytics/interaction/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/interaction/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:m,workUnitAsyncStorage:x,serverHooks:w}=f;function y(){return(0,o.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:x})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,9709],()=>r(77026));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=8687,a.ids=[8687],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},37310:(a,b,c)=>{function d(a,b){let c=a.headers.get("origin")||"",d=a.headers.get("referer")||"";return b.some(a=>c.startsWith(a)||d.startsWith(a))}function e(a,b){let c=process.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000",d=[`${c}/sites/${a}`,c];return c.includes("localhost")&&(d.push("http://localhost:3000"),d.push("http://127.0.0.1:3000")),b&&(d.push(`https://${b}`),d.push(`http://${b}`)),d}function f(a){if(!a)return!0;let b=a.toLowerCase();return["bot","crawl","spider","scrape","curl","wget","python","java","http","go-http-client","axios","fetch","node-fetch","requests","urllib","headless","phantom","selenium","puppeteer","playwright"].some(a=>b.includes(a))}function g(a){if(a.pagePath&&a.pagePath.length>500||a.referrer&&a.referrer.length>500||a.userAgent&&a.userAgent.length>500)return!0;let b=/(union|select|insert|update|delete|drop|create|alter)/i;return!!(a.pagePath&&b.test(a.pagePath)||a.referrer&&b.test(a.referrer))}c.d(b,{H6:()=>g,In:()=>e,TB:()=>d,iJ:()=>f}),c(55511)},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51987:(a,b,c)=>{c.d(b,{Cm:()=>h,F7:()=>e,fi:()=>f,iH:()=>g});class d{check(a,b){let c=Date.now();c-this.lastCleanup>this.CLEANUP_INTERVAL&&this.cleanup(b.windowMs);let d=(this.requests.get(a)||[]).filter(a=>c-a=b.limit)return!1;if(d.push(c),this.requests.set(a,d),this.requests.size>this.MAX_KEYS){let a=this.requests.keys().next().value;void 0!==a&&this.requests.delete(a)}return!0}getCount(a,b){let c=Date.now();return(this.requests.get(a)||[]).filter(a=>c-ad-ab-c{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},93527:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(51987),x=c(37310);async function y(a){try{let b=await a.json();if("batch"in b&&!0===b.batch)return B(a,b);let{siteId:c,pagePath:d,interactionType:e,elementSelector:f,coordinates:g,scrollDepth:h,timeOnPage:i,userAgent:j}=b,k=(0,w.Cm)(a);if(!w.fi.check(k,w.iH.interaction)){let a=w.fi.getResetTime(k,w.iH.interaction);return u.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":a.toString(),"X-RateLimit-Limit":w.iH.interaction.limit.toString(),"X-RateLimit-Remaining":"0"}})}if(!c||!d||!e)return u.NextResponse.json({error:"Missing required fields: siteId, pagePath, interactionType"},{status:400});if((0,x.H6)({pagePath:d,userAgent:j}))return console.warn("[Analytics Interaction] Suspicious request detected:",{siteId:c,pagePath:d,ip:k}),u.NextResponse.json({error:"Invalid request"},{status:400});if(j&&(0,x.iJ)(j))return u.NextResponse.json({success:!0});let l=(0,v.q)();await l.init();let m=await l.getSite(c);if(!m)return u.NextResponse.json({error:"Site not found"},{status:404});if(!m.analytics.enabled||"builtin"!==m.analytics.provider)return u.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let n=l.getSiteDatabaseForAnalytics(c);if(!n)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let o=m.analytics.features||{};if("click"===e&&!o.heatmaps)return u.NextResponse.json({error:"Heatmaps feature not enabled"},{status:403});if("scroll"===e&&!o.engagementTracking&&!o.heatmaps||"exit"===e&&!o.engagementTracking)return u.NextResponse.json({error:"Engagement tracking not enabled"},{status:403});let p=(0,x.In)(c,m.customDomain);if(!(0,x.TB)(a,p))return console.warn("[Analytics Interaction] Invalid origin (rejected):",{origin:a.headers.get("origin"),referer:a.headers.get("referer"),allowedOrigins:p,siteId:c,ip:k}),u.NextResponse.json({error:"Origin not allowed"},{status:403});let q=z(j||a.headers.get("user-agent")||"",a),r=A(d);return n.recordInteraction({sessionId:q,pagePath:r,interactionType:e,elementSelector:f,coordinates:g?{x:g.x,y:g.y,scrollY:g.scrollY,viewportWidth:g.viewportWidth,viewportHeight:g.viewportHeight,documentHeight:g.documentHeight}:void 0,scrollDepth:h,timeOnPage:i}),u.NextResponse.json({success:!0})}catch(a){return console.error("[Analytics Interaction API] Error:",a),u.NextResponse.json({error:"Failed to track interaction"},{status:500})}}function z(a,b){var c;let d=b.headers.get("x-forwarded-for"),e=(c=d?d.split(",")[0]:"")?c.includes(":")?c.split(":").slice(0,4).join(":")+"::":c.split(".").slice(0,2).join(".")+".0.0":"",f=`${a}|${e}|${new Date().toDateString()}`,g=0;for(let a=0;a100)return u.NextResponse.json({error:"Batch size exceeds maximum of 100 interactions"},{status:400});let d=(0,w.Cm)(a);if(!w.fi.check(d,w.iH.interaction)){let a=w.fi.getResetTime(d,w.iH.interaction);return u.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":a.toString(),"X-RateLimit-Limit":w.iH.interaction.limit.toString(),"X-RateLimit-Remaining":"0"}})}let{siteId:e,userAgent:f}=c[0];if(!e)return u.NextResponse.json({error:"Missing required field: siteId"},{status:400});if(f&&(0,x.iJ)(f))return u.NextResponse.json({success:!0});let g=(0,v.q)();await g.init();try{let b=await g.getSite(e);if(!b)return u.NextResponse.json({error:"Site not found"},{status:404});if(!b.analytics.enabled||"builtin"!==b.analytics.provider)return u.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let f=g.getSiteDatabaseForAnalytics(e);if(!f)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let h=(0,x.In)(e,b.customDomain);if(!(0,x.TB)(a,h))return console.warn("[Analytics Batch] Invalid origin (rejected):",{origin:a.headers.get("origin"),referer:a.headers.get("referer"),allowedOrigins:h,siteId:e,ip:d}),u.NextResponse.json({error:"Origin not allowed"},{status:403});let i=a.headers.get("user-agent")||"",j=0,k=0;for(let d of c){let{pagePath:c,interactionType:e,elementSelector:g,coordinates:h,scrollDepth:l,timeOnPage:m,userAgent:n}=d;if(!c||!e){k++;continue}let o=b.analytics.features||{};if("click"===e&&!o.heatmaps||"scroll"===e&&!o.engagementTracking&&!o.heatmaps||"exit"===e&&!o.engagementTracking||(0,x.H6)({pagePath:c,userAgent:n})){k++;continue}let p=z(n||i,a),q=A(c);try{f.recordInteraction({sessionId:p,pagePath:q,interactionType:e,elementSelector:g,coordinates:h?{x:h.x,y:h.y,scrollY:h.scrollY,viewportWidth:h.viewportWidth,viewportHeight:h.viewportHeight,documentHeight:h.documentHeight}:void 0,scrollDepth:l,timeOnPage:m}),j++}catch(a){console.error("[Analytics Batch] Error inserting interaction:",a),k++}}return u.NextResponse.json({success:!0,processed:j,skipped:k,total:c.length})}catch(a){return console.error("[Analytics Batch] Error processing batch:",a),u.NextResponse.json({error:"Failed to process batch interactions"},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/analytics/interaction/route",pathname:"/api/analytics/interaction",filename:"route",bundlePath:"app/api/analytics/interaction/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/interaction/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){var d;let e="/api/analytics/interaction/route";"/index"===e&&(e="/");let g=await C.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||C.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===C.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>C.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>C.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&B&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await C.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:B,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=93527));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/interaction/route.js.nft.json b/.next/server/app/api/analytics/interaction/route.js.nft.json
index 356d70acea50c2b43d853db72da9bc8bd10c56df..4eac3c3a01f0d17750b936f83214f28fee8ade69 100644
--- a/.next/server/app/api/analytics/interaction/route.js.nft.json
+++ b/.next/server/app/api/analytics/interaction/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/interaction/route_client-reference-manifest.js b/.next/server/app/api/analytics/interaction/route_client-reference-manifest.js
index c1e56d1531b9fc42e8a5091ce2b233c038e42cdd..484f08ba101b7878ddfdd19728ea89c34557e4f3 100644
--- a/.next/server/app/api/analytics/interaction/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/interaction/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/interaction/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/interaction/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/interaction/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/interaction/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/track/route.js b/.next/server/app/api/analytics/track/route.js
index f65bfe3e8c35f60bdd5d059bef9da36821a26999..97d98d7fdfb472e4dcc6239db4656352fe2e2283 100644
--- a/.next/server/app/api/analytics/track/route.js
+++ b/.next/server/app/api/analytics/track/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=3618,e.ids=[3618],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14938:(e,t,r)=>{r.d(t,{Cm:()=>o,F7:()=>i,fi:()=>n,iH:()=>a});class s{check(e,t){let r=Date.now();r-this.lastCleanup>this.CLEANUP_INTERVAL&&this.cleanup(t.windowMs);let s=(this.requests.get(e)||[]).filter(e=>r-e=t.limit)return!1;if(s.push(r),this.requests.set(e,s),this.requests.size>this.MAX_KEYS){let e=this.requests.keys().next().value;void 0!==e&&this.requests.delete(e)}return!0}getCount(e,t){let r=Date.now();return(this.requests.get(e)||[]).filter(e=>r-es-et-r{r.d(t,{A:()=>l});var s=r(55511);let i={randomUUID:s.randomUUID},n=new Uint8Array(256),a=n.length,o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(i.randomUUID&&!t&&!e)return i.randomUUID();let l=(e=e||{}).random??e.rng?.()??(a>n.length-16&&((0,s.randomFillSync)(n),a=0),n.slice(a,a+=16));if(l.length<16)throw Error("Random bytes length must be >= 16");if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=l[e];return t}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(l)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74551:(e,t,r)=>{r.d(t,{H6:()=>a,In:()=>i,TB:()=>s,iJ:()=>n}),r(55511);function s(e,t){let r=e.headers.get("origin")||"",s=e.headers.get("referer")||"";return t.some(e=>r.startsWith(e)||s.startsWith(e))}function i(e,t){let r=process.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000",s=[`${r}/sites/${e}`,r];return r.includes("localhost")&&(s.push("http://localhost:3000"),s.push("http://127.0.0.1:3000")),t&&(s.push(`https://${t}`),s.push(`http://${t}`)),s}function n(e){if(!e)return!0;let t=e.toLowerCase();return["bot","crawl","spider","scrape","curl","wget","python","java","http","go-http-client","axios","fetch","node-fetch","requests","urllib","headless","phantom","selenium","puppeteer","playwright"].some(e=>t.includes(e))}function a(e){if(e.pagePath&&e.pagePath.length>500||e.referrer&&e.referrer.length>500||e.userAgent&&e.userAgent.length>500)return!0;let t=/(union|select|insert|update|delete|drop|create|alter)/i;return!!(e.pagePath&&t.test(e.pagePath)||e.referrer&&t.test(e.referrer))}},87550:e=>{e.exports=require("better-sqlite3")},93988:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>m,routeModule:()=>h,serverHooks:()=>w,workAsyncStorage:()=>g,workUnitAsyncStorage:()=>f});var s={};r.r(s),r.d(s,{POST:()=>c});var i=r(96559),n=r(48088),a=r(37719),o=r(32190),l=r(30417),u=r(14938),p=r(74551);async function c(e){try{let{siteId:t,pagePath:r,referrer:s,userAgent:i,deviceType:n}=await e.json(),a=(0,u.Cm)(e);if(!u.F7.check(a,u.iH.pageview)){let e=u.F7.getResetTime(a,u.iH.pageview);return o.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":e.toString(),"X-RateLimit-Limit":u.iH.pageview.limit.toString(),"X-RateLimit-Remaining":"0"}})}if(!t||!r)return o.NextResponse.json({error:"Missing required fields: siteId, pagePath"},{status:400});if((0,p.H6)({pagePath:r,referrer:s,userAgent:i}))return console.warn("[Analytics] Suspicious request detected:",{siteId:t,pagePath:r,ip:a}),o.NextResponse.json({error:"Invalid request"},{status:400});if((0,p.iJ)(i))return o.NextResponse.json({success:!0});let c=(0,l.q)();await c.init();let h=await c.getSite(t);if(!h)return o.NextResponse.json({error:"Site not found"},{status:404});if(!h.analytics.enabled||"builtin"!==h.analytics.provider)return o.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let g=c.getSiteDatabaseForAnalytics(t);if(!g)return o.NextResponse.json({error:"Site database not enabled"},{status:404});let f=(0,p.In)(t,h.customDomain);if(!(0,p.TB)(e,f))return console.warn("[Analytics] Invalid origin (rejected):",{origin:e.headers.get("origin"),referer:e.headers.get("referer"),allowedOrigins:f,siteId:t,ip:a}),o.NextResponse.json({error:"Origin not allowed"},{status:403});let w=function(e,t){var r;let s=t.headers.get("x-forwarded-for"),i=(r=s?s.split(",")[0]:"")?r.includes(":")?r.split(":").slice(0,4).join(":")+"::":r.split(".").slice(0,2).join(".")+".0.0":"",n=`${e}|${i}|${new Date().toDateString()}`,a=0;for(let e=0;et(t.s=e),s=t.X(0,[4447,580,9709],()=>r(93988));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=3618,a.ids=[3618],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},24162:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(51987),x=c(37310);async function y(a){try{let{siteId:b,pagePath:c,referrer:d,userAgent:e,deviceType:f}=await a.json(),g=(0,w.Cm)(a);if(!w.F7.check(g,w.iH.pageview)){let a=w.F7.getResetTime(g,w.iH.pageview);return u.NextResponse.json({error:"Rate limit exceeded"},{status:429,headers:{"Retry-After":a.toString(),"X-RateLimit-Limit":w.iH.pageview.limit.toString(),"X-RateLimit-Remaining":"0"}})}if(!b||!c)return u.NextResponse.json({error:"Missing required fields: siteId, pagePath"},{status:400});if((0,x.H6)({pagePath:c,referrer:d,userAgent:e}))return console.warn("[Analytics] Suspicious request detected:",{siteId:b,pagePath:c,ip:g}),u.NextResponse.json({error:"Invalid request"},{status:400});if((0,x.iJ)(e))return u.NextResponse.json({success:!0});let h=(0,v.q)();await h.init();let i=await h.getSite(b);if(!i)return u.NextResponse.json({error:"Site not found"},{status:404});if(!i.analytics.enabled||"builtin"!==i.analytics.provider)return u.NextResponse.json({error:"Built-in analytics not enabled for this site"},{status:403});let j=h.getSiteDatabaseForAnalytics(b);if(!j)return u.NextResponse.json({error:"Site database not enabled"},{status:404});let k=(0,x.In)(b,i.customDomain);if(!(0,x.TB)(a,k))return console.warn("[Analytics] Invalid origin (rejected):",{origin:a.headers.get("origin"),referer:a.headers.get("referer"),allowedOrigins:k,siteId:b,ip:g}),u.NextResponse.json({error:"Origin not allowed"},{status:403});let l=function(a,b){var c;let d=b.headers.get("x-forwarded-for"),e=(c=d?d.split(",")[0]:"")?c.includes(":")?c.split(":").slice(0,4).join(":")+"::":c.split(".").slice(0,2).join(".")+".0.0":"",f=`${a}|${e}|${new Date().toDateString()}`,g=0;for(let a=0;a{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},37310:(a,b,c)=>{function d(a,b){let c=a.headers.get("origin")||"",d=a.headers.get("referer")||"";return b.some(a=>c.startsWith(a)||d.startsWith(a))}function e(a,b){let c=process.env.NEXT_PUBLIC_APP_URL||"http://localhost:3000",d=[`${c}/sites/${a}`,c];return c.includes("localhost")&&(d.push("http://localhost:3000"),d.push("http://127.0.0.1:3000")),b&&(d.push(`https://${b}`),d.push(`http://${b}`)),d}function f(a){if(!a)return!0;let b=a.toLowerCase();return["bot","crawl","spider","scrape","curl","wget","python","java","http","go-http-client","axios","fetch","node-fetch","requests","urllib","headless","phantom","selenium","puppeteer","playwright"].some(a=>b.includes(a))}function g(a){if(a.pagePath&&a.pagePath.length>500||a.referrer&&a.referrer.length>500||a.userAgent&&a.userAgent.length>500)return!0;let b=/(union|select|insert|update|delete|drop|create|alter)/i;return!!(a.pagePath&&b.test(a.pagePath)||a.referrer&&b.test(a.referrer))}c.d(b,{H6:()=>g,In:()=>e,TB:()=>d,iJ:()=>f}),c(55511)},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51987:(a,b,c)=>{c.d(b,{Cm:()=>h,F7:()=>e,fi:()=>f,iH:()=>g});class d{check(a,b){let c=Date.now();c-this.lastCleanup>this.CLEANUP_INTERVAL&&this.cleanup(b.windowMs);let d=(this.requests.get(a)||[]).filter(a=>c-a=b.limit)return!1;if(d.push(c),this.requests.set(a,d),this.requests.size>this.MAX_KEYS){let a=this.requests.keys().next().value;void 0!==a&&this.requests.delete(a)}return!0}getCount(a,b){let c=Date.now();return(this.requests.get(a)||[]).filter(a=>c-ad-ab-c{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=24162));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/track/route.js.nft.json b/.next/server/app/api/analytics/track/route.js.nft.json
index 356d70acea50c2b43d853db72da9bc8bd10c56df..4eac3c3a01f0d17750b936f83214f28fee8ade69 100644
--- a/.next/server/app/api/analytics/track/route.js.nft.json
+++ b/.next/server/app/api/analytics/track/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/analytics/track/route_client-reference-manifest.js b/.next/server/app/api/analytics/track/route_client-reference-manifest.js
index c0f92ae94a6500ad1183af29beded38920969abf..bbf1fcf3f17b60f56d7c9ffe1a539f85665dbe58 100644
--- a/.next/server/app/api/analytics/track/route_client-reference-manifest.js
+++ b/.next/server/app/api/analytics/track/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/track/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/track/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/analytics/track/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/analytics/track/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/check/route.js b/.next/server/app/api/auth/check/route.js
index 29ec1d934367b69bfbc0c2cea01b416e47a96d5a..7391f6edddeaad01e463e2a2c51786922cb8308c 100644
--- a/.next/server/app/api/auth/check/route.js
+++ b/.next/server/app/api/auth/check/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=521,e.ids=[521],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{"use strict";r.d(t,{C0:()=>d,Ht:()=>p,gV:()=>c,jw:()=>u,oC:()=>l});var s=r(87806),n=r(77412),a=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let n=i(),a=Math.floor((Date.now()+864e5)/1e3);return await new s.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(a).setIssuedAt().sign(n)}async function c(e){try{let t=i(),{payload:r}=await (0,n.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,a.UL)(),t=e.get(o)?.value;return t?c(t):null}async function d(){(await (0,a.UL)()).delete(o)}async function l(){let e=await p();if(!e)throw Error("Unauthorized");return e}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},79322:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>h,routeModule:()=>p,serverHooks:()=>x,workAsyncStorage:()=>d,workUnitAsyncStorage:()=>l});var s={};r.r(s),r.d(s,{GET:()=>c});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(50613);async function c(){return await (0,u.Ht)()?i.NextResponse.json({authenticated:!0}):i.NextResponse.json({authenticated:!1},{status:401})}let p=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/auth/check/route",pathname:"/api/auth/check",filename:"route",bundlePath:"app/api/auth/check/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/check/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:d,workUnitAsyncStorage:l,serverHooks:x}=p;function h(){return(0,o.patchFetch)({workAsyncStorage:d,workUnitAsyncStorage:l})}},96487:()=>{}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,5155],()=>r(79322));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=521,a.ids=[521],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},35436:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{GET:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588);async function w(){return await (0,v.Ht)()?u.NextResponse.json({authenticated:!0}):u.NextResponse.json({authenticated:!1},{status:401})}let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/check/route",pathname:"/api/auth/check",filename:"route",bundlePath:"app/api/auth/check/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/check/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){var d;let e="/api/auth/check/route";"/index"===e&&(e="/");let g=await x.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||x.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===x.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>x.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>x.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await x.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},39588:(a,b,c)=>{"use strict";c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151],()=>b(b.s=35436));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/auth/check/route.js.nft.json b/.next/server/app/api/auth/check/route.js.nft.json
index 8f15290b17382a0b5c3b47af6706c568453c475d..685f8abf41ef45def439b258e0c08d78ae59f836 100644
--- a/.next/server/app/api/auth/check/route.js.nft.json
+++ b/.next/server/app/api/auth/check/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/check/route_client-reference-manifest.js b/.next/server/app/api/auth/check/route_client-reference-manifest.js
index c0ab447da0b81e3e9ca4e9864079e8fc227cd05b..fa18251cec4d6b1b2f09c4dad06b275a268300df 100644
--- a/.next/server/app/api/auth/check/route_client-reference-manifest.js
+++ b/.next/server/app/api/auth/check/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/check/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/check/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/check/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/check/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/login/route.js b/.next/server/app/api/auth/login/route.js
index 375768bcdd240e10e6eab3ce384634a7f8984cee..413375891dbfa0da7668a402c1864ab8ec55edf9 100644
--- a/.next/server/app/api/auth/login/route.js
+++ b/.next/server/app/api/auth/login/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=7758,e.ids=[7758],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32371:(e,r,t)=>{"use strict";t.r(r),t.d(r,{patchFetch:()=>v,routeModule:()=>l,serverHooks:()=>f,workAsyncStorage:()=>p,workUnitAsyncStorage:()=>g});var n={};t.r(n),t.d(n,{POST:()=>c});var s=t(96559),o=t(48088),a=t(37719),i=t(32190),u=t(50613),d=t(66819);async function c(e){try{let r,{password:t}=await e.json();if(!t)return d.v.debug("[API /api/auth/login] No password provided"),i.NextResponse.json({error:"Password required"},{status:400});let n=process.env.ADMIN_PASSWORD;if(!n)return d.v.error("[API /api/auth/login] ADMIN_PASSWORD not configured in .env file"),i.NextResponse.json({error:"Authentication not configured. Please set ADMIN_PASSWORD in your .env file."},{status:500});if(t!==n)return d.v.debug("[API /api/auth/login] Invalid password attempt"),i.NextResponse.json({error:"Invalid password"},{status:401});try{r=await (0,u.jw)("admin","admin@localhost",!0)}catch(e){return d.v.error("[API /api/auth/login] Session creation error:",e),i.NextResponse.json({error:"Failed to create session. Check SESSION_SECRET environment variable."},{status:500})}d.v.debug("[API /api/auth/login] Login successful");let s=i.NextResponse.json({success:!0});return s.cookies.set("osw_session",r,{httpOnly:!0,secure:"false"!==process.env.SECURE_COOKIES,sameSite:"lax",maxAge:86400,path:"/"}),s}catch(e){return d.v.error("[API /api/auth/login] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Login failed"},{status:500})}}let l=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:"app/api/auth/login/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/login/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:p,workUnitAsyncStorage:g,serverHooks:f}=l;function v(){return(0,a.patchFetch)({workAsyncStorage:p,workUnitAsyncStorage:g})}},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,r,t)=>{"use strict";t.d(r,{C0:()=>l,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>p});var n=t(87806),s=t(77412),o=t(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,r,t=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:r,isAdmin:t}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function d(e){try{let r=i(),{payload:t}=await (0,s.V)(e,r);return{userId:t.userId,email:t.email,isAdmin:t.isAdmin,exp:t.exp}}catch(e){return null}}async function c(){let e=await (0,o.UL)(),r=e.get(a)?.value;return r?d(r):null}async function l(){(await (0,o.UL)()).delete(a)}async function p(){let e=await c();if(!e)throw Error("Unauthorized");return e}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{"use strict";t.d(r,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function o(e){return n[s]<=n[e]}let a={debug:(...e)=>{o("debug")&&console.debug(...e)},info:(...e)=>{o("info")&&console.info(...e)},warn:(...e)=>{o("warn")&&console.warn(...e)},error:(...e)=>{o("error")&&console.error(...e)}}},78335:()=>{},96487:()=>{}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[4447,580,5155],()=>t(32371));module.exports=n})();
\ No newline at end of file
+(()=>{var a={};a.id=7758,a.ids=[7758],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39588:(a,b,c)=>{"use strict";c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75548:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(95012);async function x(a){try{let b,{password:c}=await a.json();if(!c)return w.v.debug("[API /api/auth/login] No password provided"),u.NextResponse.json({error:"Password required"},{status:400});let d=process.env.ADMIN_PASSWORD;if(!d)return w.v.error("[API /api/auth/login] ADMIN_PASSWORD not configured in .env file"),u.NextResponse.json({error:"Authentication not configured. Please set ADMIN_PASSWORD in your .env file."},{status:500});if(c!==d)return w.v.debug("[API /api/auth/login] Invalid password attempt"),u.NextResponse.json({error:"Invalid password"},{status:401});try{b=await (0,v.jw)("admin","admin@localhost",!0)}catch(a){return w.v.error("[API /api/auth/login] Session creation error:",a),u.NextResponse.json({error:"Failed to create session. Check SESSION_SECRET environment variable."},{status:500})}w.v.debug("[API /api/auth/login] Login successful");let e=u.NextResponse.json({success:!0});return e.cookies.set("osw_session",b,{httpOnly:!0,secure:"false"!==process.env.SECURE_COOKIES,sameSite:"lax",maxAge:86400,path:"/"}),e}catch(a){return w.v.error("[API /api/auth/login] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Login failed"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:"app/api/auth/login/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/login/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/auth/login/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151],()=>b(b.s=75548));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/auth/login/route.js.nft.json b/.next/server/app/api/auth/login/route.js.nft.json
index 8f15290b17382a0b5c3b47af6706c568453c475d..685f8abf41ef45def439b258e0c08d78ae59f836 100644
--- a/.next/server/app/api/auth/login/route.js.nft.json
+++ b/.next/server/app/api/auth/login/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/login/route_client-reference-manifest.js b/.next/server/app/api/auth/login/route_client-reference-manifest.js
index e865336c4b285b32225642210b9d69c1c135ca5e..1f38acfb9a82456ae0f6468b803168ed605f312f 100644
--- a/.next/server/app/api/auth/login/route_client-reference-manifest.js
+++ b/.next/server/app/api/auth/login/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/login/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/login/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/login/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/login/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/logout/route.js b/.next/server/app/api/auth/logout/route.js
index 0d42ab41dfe8d52b86023d8823504e985b24caa8..763dd3e4a7a17c2f40d6cdaaf2bb7a09af217711 100644
--- a/.next/server/app/api/auth/logout/route.js
+++ b/.next/server/app/api/auth/logout/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=8489,e.ids=[8489],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},27282:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>p,serverHooks:()=>g,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>w});var n={};r.r(n),r.d(n,{POST:()=>d});var o=r(96559),s=r(48088),a=r(37719),i=r(32190),u=r(50613),c=r(66819);async function d(){try{return await (0,u.C0)(),i.NextResponse.json({success:!0})}catch(e){return c.v.error("[API /api/auth/logout] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Logout failed"},{status:500})}}let p=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/auth/logout/route",pathname:"/api/auth/logout",filename:"route",bundlePath:"app/api/auth/logout/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/logout/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:l,workUnitAsyncStorage:w,serverHooks:g}=p;function f(){return(0,a.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:w})}},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{"use strict";r.d(t,{C0:()=>p,Ht:()=>d,gV:()=>c,jw:()=>u,oC:()=>l});var n=r(87806),o=r(77412),s=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function c(e){try{let t=i(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function d(){let e=await (0,s.UL)(),t=e.get(a)?.value;return t?c(t):null}async function p(){(await (0,s.UL)()).delete(a)}async function l(){let e=await d();if(!e)throw Error("Unauthorized");return e}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},o="undefined"!=typeof process&&"warn"||"warn";function s(e){return n[o]<=n[e]}let a={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},78335:()=>{},96487:()=>{}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155],()=>r(27282));module.exports=n})();
\ No newline at end of file
+(()=>{var a={};a.id=8489,a.ids=[8489],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39588:(a,b,c)=>{"use strict";c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},84242:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(95012);async function x(){try{return await (0,v.C0)(),u.NextResponse.json({success:!0})}catch(a){return w.v.error("[API /api/auth/logout] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Logout failed"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/logout/route",pathname:"/api/auth/logout",filename:"route",bundlePath:"app/api/auth/logout/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/logout/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/auth/logout/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151],()=>b(b.s=84242));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/auth/logout/route.js.nft.json b/.next/server/app/api/auth/logout/route.js.nft.json
index 8f15290b17382a0b5c3b47af6706c568453c475d..685f8abf41ef45def439b258e0c08d78ae59f836 100644
--- a/.next/server/app/api/auth/logout/route.js.nft.json
+++ b/.next/server/app/api/auth/logout/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/logout/route_client-reference-manifest.js b/.next/server/app/api/auth/logout/route_client-reference-manifest.js
index 4a723ee6357cda3949341b57433a5bf8b5fd56ec..ac81cb2cc6de5fc20b150cd1ef98cb67c639765c 100644
--- a/.next/server/app/api/auth/logout/route_client-reference-manifest.js
+++ b/.next/server/app/api/auth/logout/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/logout/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/logout/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/logout/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/logout/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/me/route.js b/.next/server/app/api/auth/me/route.js
index 63bd654bab1328c6ac77d366823e1e423be082b2..e8c44a66ee9c993a031b852440c6812918c61ff1 100644
--- a/.next/server/app/api/auth/me/route.js
+++ b/.next/server/app/api/auth/me/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=8673,e.ids=[8673],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{"use strict";r.d(t,{C0:()=>p,Ht:()=>c,gV:()=>d,jw:()=>u,oC:()=>l});var n=r(87806),s=r(77412),o=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function d(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function c(){let e=await (0,o.UL)(),t=e.get(a)?.value;return t?d(t):null}async function p(){(await (0,o.UL)()).delete(a)}async function l(){let e=await c();if(!e)throw Error("Unauthorized");return e}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{"use strict";r.d(t,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function o(e){return n[s]<=n[e]}let a={debug:(...e)=>{o("debug")&&console.debug(...e)},info:(...e)=>{o("info")&&console.info(...e)},warn:(...e)=>{o("warn")&&console.warn(...e)},error:(...e)=>{o("error")&&console.error(...e)}}},72238:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>p,serverHooks:()=>m,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>w});var n={};r.r(n),r.d(n,{GET:()=>c});var s=r(96559),o=r(48088),a=r(37719),i=r(32190),u=r(50613),d=r(66819);async function c(){try{let e=await (0,u.Ht)();if(!e)return i.NextResponse.json({authenticated:!1},{status:200});return i.NextResponse.json({authenticated:!0,user:{userId:e.userId,email:e.email,isAdmin:e.isAdmin}})}catch(e){return d.v.error("[API /api/auth/me] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Failed to get session"},{status:500})}}let p=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:"app/api/auth/me/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:l,workUnitAsyncStorage:w,serverHooks:m}=p;function f(){return(0,a.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:w})}},78335:()=>{},96487:()=>{}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155],()=>r(72238));module.exports=n})();
\ No newline at end of file
+(()=>{var a={};a.id=8673,a.ids=[8673],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39588:(a,b,c)=>{"use strict";c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},58957:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(95012);async function x(){try{let a=await (0,v.Ht)();if(!a)return u.NextResponse.json({authenticated:!1},{status:200});return u.NextResponse.json({authenticated:!0,user:{userId:a.userId,email:a.email,isAdmin:a.isAdmin}})}catch(a){return w.v.error("[API /api/auth/me] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Failed to get session"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/me/route",pathname:"/api/auth/me",filename:"route",bundlePath:"app/api/auth/me/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/me/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/auth/me/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151],()=>b(b.s=58957));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/auth/me/route.js.nft.json b/.next/server/app/api/auth/me/route.js.nft.json
index 8f15290b17382a0b5c3b47af6706c568453c475d..685f8abf41ef45def439b258e0c08d78ae59f836 100644
--- a/.next/server/app/api/auth/me/route.js.nft.json
+++ b/.next/server/app/api/auth/me/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/auth/me/route_client-reference-manifest.js b/.next/server/app/api/auth/me/route_client-reference-manifest.js
index bd1ede2c84d7e389625e3177ed65a049a63a2fd2..5901b268463f6201db73d3710026369ac3fbecb2 100644
--- a/.next/server/app/api/auth/me/route_client-reference-manifest.js
+++ b/.next/server/app/api/auth/me/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/me/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/me/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/me/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/auth/me/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/docs/[...path]/route.js b/.next/server/app/api/docs/[...path]/route.js
index 341813ce11e6f38d59ae954671dd9b3a5f0c6381..98192262ecd752deeab66724693e363c2f3decdc 100644
--- a/.next/server/app/api/docs/[...path]/route.js
+++ b/.next/server/app/api/docs/[...path]/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=6573,e.ids=[6573],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},96487:()=>{},97821:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>m,routeModule:()=>c,serverHooks:()=>h,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>x});var s={};r.r(s),r.d(s,{GET:()=>d});var o=r(96559),a=r(48088),n=r(37719),i=r(32190);let u=require("fs/promises");var p=r(33873);async function d(e,{params:t}){try{let{path:e}=await t,r=e.join("/");if(r.includes("..")||r.startsWith("/"))return i.NextResponse.json({error:"Invalid path"},{status:400});let s=(0,p.join)(process.cwd(),"docs",r),o=await (0,u.readFile)(s,"utf-8");return new i.NextResponse(o,{headers:{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=3600"}})}catch(e){if(console.error("[Docs API] Error reading file:",e),"ENOENT"===e.code)return i.NextResponse.json({error:"Document not found"},{status:404});return i.NextResponse.json({error:"Failed to read document"},{status:500})}}let c=new o.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/docs/[...path]/route",pathname:"/api/docs/[...path]",filename:"route",bundlePath:"app/api/docs/[...path]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/docs/[...path]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:l,workUnitAsyncStorage:x,serverHooks:h}=c;function m(){return(0,n.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:x})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580],()=>r(97821));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=6573,a.ids=[6573],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10117:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641);let v=require("fs/promises");var w=c(33873);async function x(a,{params:b}){try{let{path:a}=await b,c=a.join("/");if(c.includes("..")||c.startsWith("/"))return u.NextResponse.json({error:"Invalid path"},{status:400});let d=(0,w.join)(process.cwd(),"docs",c),e=await (0,v.readFile)(d,"utf-8");return new u.NextResponse(e,{headers:{"Content-Type":"text/markdown; charset=utf-8","Cache-Control":"public, max-age=3600"}})}catch(a){if(console.error("[Docs API] Error reading file:",a),"ENOENT"===a.code)return u.NextResponse.json({error:"Document not found"},{status:404});return u.NextResponse.json({error:"Failed to read document"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/docs/[...path]/route",pathname:"/api/docs/[...path]",filename:"route",bundlePath:"app/api/docs/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/docs/[...path]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/docs/[...path]/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=10117));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/docs/[...path]/route.js.nft.json b/.next/server/app/api/docs/[...path]/route.js.nft.json
index ff04668978b677df81f66d7a410db9a24a5a318e..a16c7bc0ffc06465571d975be245d84e385d03b7 100644
--- a/.next/server/app/api/docs/[...path]/route.js.nft.json
+++ b/.next/server/app/api/docs/[...path]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../docs/DEPLOYING_SITES.md","../../../../../../docs/FAQ.md","../../../../../../docs/GETTING_STARTED.md","../../../../../../docs/OVERVIEW.md","../../../../../../docs/PROJECTS.md","../../../../../../docs/SERVER_FEATURES.md","../../../../../../docs/SERVER_MODE.md","../../../../../../docs/SITE_PUBLISHING.md","../../../../../../docs/SKILLS.md","../../../../../../docs/TEMPLATES.md","../../../../../../docs/TROUBLESHOOTING.md","../../../../../../docs/WHATS_NEW.md","../../../../../../docs/WORKING_WITH_AI.md","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../docs/DEPLOYING_SITES.md","../../../../../../docs/FAQ.md","../../../../../../docs/GETTING_STARTED.md","../../../../../../docs/OVERVIEW.md","../../../../../../docs/PROJECTS.md","../../../../../../docs/SERVER_FEATURES.md","../../../../../../docs/SERVER_MODE.md","../../../../../../docs/SITE_PUBLISHING.md","../../../../../../docs/SKILLS.md","../../../../../../docs/TEMPLATES.md","../../../../../../docs/TROUBLESHOOTING.md","../../../../../../docs/WHATS_NEW.md","../../../../../../docs/WORKING_WITH_AI.md","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/docs/[...path]/route_client-reference-manifest.js b/.next/server/app/api/docs/[...path]/route_client-reference-manifest.js
index a060fcfe315da42ddf9e385d87098a901acd5205..fe13dd4af288847c0b08a78d0b9ff69dd8172949 100644
--- a/.next/server/app/api/docs/[...path]/route_client-reference-manifest.js
+++ b/.next/server/app/api/docs/[...path]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/docs/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/docs/[...path]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/docs/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/docs/[...path]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/generate/route.js b/.next/server/app/api/generate/route.js
index 5dc2b573c4db69ef61e066799822b20d72768c39..1dc8f2be18049d07d7a951112dc5330dcdea05fd 100644
--- a/.next/server/app/api/generate/route.js
+++ b/.next/server/app/api/generate/route.js
@@ -1,4 +1,4 @@
-(()=>{var e={};e.id=5435,e.ids=[5435],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14092:(e,t,o)=>{"use strict";o.d(t,{sO:()=>s});let r={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function s(e){return r[e]}},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,o)=>{"use strict";o.d(t,{v:()=>a});let r={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function n(e){return r[s]<=r[e]}let a={debug:(...e)=>{n("debug")&&console.debug(...e)},info:(...e)=>{n("info")&&console.info(...e)},warn:(...e)=>{n("warn")&&console.warn(...e)},error:(...e)=>{n("error")&&console.error(...e)}}},78335:()=>{},90202:(e,t,o)=>{"use strict";o.r(t),o.d(t,{patchFetch:()=>f,routeModule:()=>d,serverHooks:()=>g,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>h});var r={};o.r(r),o.d(r,{POST:()=>c});var s=o(96559),n=o(48088),a=o(37719),i=o(32190),l=o(14092),p=o(66819);async function c(e){try{let{prompt:t,apiKey:o,model:r,tools:s,context:n,messages:a,tool_choice:c,provider:d,max_tokens:m,reasoning:h}=await e.json(),g=d||"openrouter",f=(0,l.sO)(g);if(!t&&!a)return i.NextResponse.json({error:"Either prompt or messages is required"},{status:400});if(f.apiKeyRequired&&!o)return i.NextResponse.json({error:`${f.name} API key is required. Please set it in settings.`},{status:400});let y=`You operate in a sandboxed virtual terminal.
+(()=>{var a={};a.id=5435,a.ids=[5435],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20933:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(94729),w=c(95012);function x(a){let b=a.match(/^data:([^;]+);base64,(.+)$/);if(!b)throw Error("Invalid data URL format");return{mediaType:b[1],data:b[2]}}async function y(a){try{let{prompt:d,apiKey:e,model:f,tools:g,context:h,messages:i,tool_choice:j,provider:k,max_tokens:l,reasoning:m}=await a.json(),n=k||"openrouter",o=(0,v.sO)(n);if(!d&&!i)return u.NextResponse.json({error:"Either prompt or messages is required"},{status:400});if(o.apiKeyRequired&&!e)return u.NextResponse.json({error:`${o.name} API key is required. Please set it in settings.`},{status:400});let p=`You operate in a sandboxed virtual terminal.
Guidelines:
- Create semantic, accessible HTML5; modern CSS3; clean JS (ES6+).
@@ -22,28 +22,28 @@ Habits:
2. Use "update" only for simple text changes without clear entity boundaries
3. Use "rewrite" for complete file replacement
- AVOID large oldStr blocks (50+ lines) - use replace_entity instead for code blocks.
-- Keep changes small and atomic.`;if(n?.fileTree&&(y+=`
+- Keep changes small and atomic.`;if(h?.fileTree&&(p+=`
Current project structure:
-${n.fileTree}`),n?.existingFiles&&Array.isArray(n.existingFiles)&&(y+=`
+${h.fileTree}`),h?.existingFiles&&Array.isArray(h.existingFiles)&&(p+=`
Existing files (modify via json_patch; use mv/rm for structure):
-${n.existingFiles.join("\n")}`),n?.mainFiles&&Object.keys(n.mainFiles).length>0)for(let[e,t]of(y+=`
+${h.existingFiles.join("\n")}`),h?.mainFiles&&Object.keys(h.mainFiles).length>0)for(let[a,b]of(p+=`
-Current file contents (use exact text when crafting json_patch operations):`,Object.entries(n.mainFiles))){let o=String(t),r=o.length>1e3?o.substring(0,1e3)+"\n... (truncated)":o;y+=`
+Current file contents (use exact text when crafting json_patch operations):`,Object.entries(h.mainFiles))){let c=String(b),d=c.length>1e3?c.substring(0,1e3)+"\n... (truncated)":c;p+=`
-=== ${e} ===
-${r}`}n?.instructions&&(y+=`
+=== ${a} ===
+${d}`}h?.instructions&&(p+=`
Additional instructions:
-${n.instructions}`);let v=a||[{role:"system",content:y},{role:"user",content:t}];a&&!a.some(e=>"system"===e.role)&&v.unshift({role:"system",content:y});let x=function(e,t,o){let r=t.baseUrl||"https://openrouter.ai/api/v1";return"anthropic"===e?"https://api.anthropic.com/v1/messages":"gemini"===e?`https://generativelanguage.googleapis.com/v1beta/models/${o||"gemini-1.5-flash"}:generateContent`:`${r}/chat/completions`}(g,f,r),k=function(e,t,o,r){let s={"Content-Type":"application/json"};return"anthropic"===e?(s["x-api-key"]=t||"",s["anthropic-version"]="2023-06-01",r.supportsFunctions&&(s["anthropic-beta"]="tools-2024-04-04")):"gemini"===e||(t&&(s.Authorization=`Bearer ${t}`),"openrouter"===e&&(s["HTTP-Referer"]=o.headers.get("referer")||"http://localhost:3000",s["X-Title"]="OSW-Studio")),s}(g,o,e,f),b=v,w="";if("anthropic"===g){let e=v.find(e=>"system"===e.role);e&&(w=e.content),b=[];let t=null;for(let e of v)if("system"===e.role)continue;else if("tool"===e.role)t&&"user"===t.role?(Array.isArray(t.content)||(t={...t,content:[{type:"text",text:t.content}]}),t.content.push({type:"tool_result",tool_use_id:e.tool_call_id,content:e.content})):(t&&"user"===t.role&&b.push(t),t={role:"user",content:[{type:"tool_result",tool_use_id:e.tool_call_id,content:e.content}]});else{if(t&&"user"===t.role&&b.push(t),"assistant"===e.role&&e.tool_calls){let o=[];for(let t of(e.content&&o.push({type:"text",text:e.content}),e.tool_calls))o.push({type:"tool_use",id:t.id,name:t.function.name,input:JSON.parse(t.function.arguments||"{}")});t={role:"assistant",content:o}}else t=e.content||"assistant"!==e.role?{...e}:null;"user"!==e.role&&t&&(b.push(t),t=null)}t&&"user"===t.role&&b.push(t)}let _={model:r||u(g),messages:b,stream:!0};if("anthropic"===g&&w&&(_.system=w),s&&s.length>0){let e=s.filter(e=>e.name&&""!==e.name.trim()?(e.description||p.v.warn('[API] Tool missing "description" field:',e.name),e.parameters||p.v.warn('[API] Tool missing "parameters" field:',e.name),!0):(p.v.error('[API] Tool missing required "name" field:',e),!1));if(0===e.length)return i.NextResponse.json({error:"All tools are invalid. Tools must have a name field."},{status:400});"anthropic"===g?(_.tools=e.map(e=>({name:e.name,description:e.description,input_schema:e.parameters})),c&&"object"==typeof c?_.tool_choice=c:"auto"!==c&&c?"any"===c?_.tool_choice={type:"any"}:"string"==typeof c?_.tool_choice={type:"tool",name:c}:_.tool_choice={type:"auto"}:_.tool_choice={type:"auto"}):("ollama"===g?_.tools=e.map(e=>({type:"function",function:e})):_.tools=e.map(e=>({type:"function",function:e})),_.tool_choice=c||"auto")}"openai"===g?(_.max_completion_tokens=m||4096,(r||u(g)).includes("gpt-5-nano")?_.temperature=1:_.temperature=.7):(_.max_tokens=m||4096,_.temperature=.7);let A=r||"";A.includes("gemini")&&(A.includes("thinking")||A.includes("2.5")||A.includes("3-pro"))&&(_.reasoning={max_tokens:4096}),h&&"openrouter"===g&&(_.reasoning=h);let R=A.includes("deepseek")&&A.includes("v3.2");"openrouter"===g&&R&&(_.provider={order:["DeepSeek"],allow_fallbacks:!0});let S=await fetch(x,{method:"POST",headers:k,body:JSON.stringify(_)});if(!S.ok){let e=await S.text(),t=e;try{let o=JSON.parse(e);if(o.error?.message){if(t=o.error.message,o.error.metadata?.raw)try{let e=JSON.parse(o.error.metadata.raw);e.error?.message&&(t=`${o.error.message}: ${e.error.message}`)}catch{o.error.metadata.raw!==o.error.message&&(t=`${o.error.message} (${o.error.metadata.raw})`)}o.error.metadata?.provider_name&&(t=`[${o.error.metadata.provider_name}] ${t}`)}else"string"==typeof o.error&&(t=o.error);p.v.error("[API] Provider error details:",JSON.stringify(o,null,2))}catch{p.v.error("[API] Provider error (raw):",e)}let o={};if(429===S.status){let e=S.headers.get("Retry-After"),t=S.headers.get("X-RateLimit-Reset"),r=S.headers.get("X-RateLimit-Remaining");e&&(o["Retry-After"]=e),t&&(o["X-RateLimit-Reset"]=t),r&&(o["X-RateLimit-Remaining"]=r)}if("ollama"===g&&t.includes("does not support tools")&&s&&s.length>0){let e=y+`
+${h.instructions}`);let q=i||[{role:"system",content:p},{role:"user",content:d}];i&&!i.some(a=>"system"===a.role)&&q.unshift({role:"system",content:p});let r=function(a,b,c){let d=b.baseUrl||"https://openrouter.ai/api/v1";return"anthropic"===a?"https://api.anthropic.com/v1/messages":"gemini"===a?`https://generativelanguage.googleapis.com/v1beta/models/${c||"gemini-1.5-flash"}:generateContent`:`${d}/chat/completions`}(n,o,f),s=function(a,b,c,d){let e={"Content-Type":"application/json"};return"anthropic"===a?(e["x-api-key"]=b||"",e["anthropic-version"]="2023-06-01",d.supportsFunctions&&(e["anthropic-beta"]="tools-2024-04-04")):"gemini"===a||(b&&(e.Authorization=`Bearer ${b}`),"openrouter"===a&&(e["HTTP-Referer"]=c.headers.get("referer")||"http://localhost:3000",e["X-Title"]="OSW-Studio")),e}(n,e,a,o),t=q,y="";if("anthropic"===n){var b,c;let a=q.find(a=>"system"===a.role);a&&(b=a.content,y="string"==typeof b?b:b.filter(a=>"text"===a.type).map(a=>a.text).join("\n")),t=[];let d=null;for(let a of q)if("system"===a.role)continue;else if("tool"===a.role)d&&"user"===d.role?(Array.isArray(d.content)||(d={...d,content:[{type:"text",text:d.content}]}),d.content.push({type:"tool_result",tool_use_id:a.tool_call_id,content:a.content})):(d&&"user"===d.role&&t.push(d),d={role:"user",content:[{type:"tool_result",tool_use_id:a.tool_call_id,content:a.content}]});else{if(d&&"user"===d.role&&t.push(d),"assistant"===a.role&&a.tool_calls){let b=[];for(let c of(a.content&&b.push({type:"text",text:a.content}),a.tool_calls))b.push({type:"tool_use",id:c.id,name:c.function.name,input:JSON.parse(c.function.arguments||"{}")});d={role:"assistant",content:b}}else d=a.content||"assistant"!==a.role?"user"===a.role&&"string"!=typeof a.content?{...a,content:(c=a.content,"string"==typeof c?c:c.map(a=>{if("text"===a.type)return{type:"text",text:a.text};let{mediaType:b,data:c}=x(a.image_url.url);return{type:"image",source:{type:"base64",media_type:b,data:c}}}))}:{...a}:null;"user"!==a.role&&d&&(t.push(d),d=null)}d&&"user"===d.role&&t.push(d)}let A=[];if("ollama"===n){let{processedMessages:a,images:b}=function(a){let b=[];return{processedMessages:a.map(a=>{if("string"==typeof a.content)return a;let c=a.content.filter(a=>"text"===a.type);for(let c of a.content.filter(a=>"image_url"===a.type))try{let{data:a}=x(c.image_url.url);b.push(a)}catch{w.v.warn("[API] Failed to parse image data URL for Ollama")}return{...a,content:c.map(a=>a.text).join("\n")}}),images:b}}(t);t=a,A=b}let B={model:f||z(n),messages:t,stream:!0};if("ollama"===n&&A.length>0&&(B.images=A),"anthropic"===n&&y&&(B.system=y),g&&g.length>0){let a=g.filter(a=>a.name&&""!==a.name.trim()?(a.description||w.v.warn('[API] Tool missing "description" field:',a.name),a.parameters||w.v.warn('[API] Tool missing "parameters" field:',a.name),!0):(w.v.error('[API] Tool missing required "name" field:',a),!1));if(0===a.length)return u.NextResponse.json({error:"All tools are invalid. Tools must have a name field."},{status:400});"anthropic"===n?(B.tools=a.map(a=>({name:a.name,description:a.description,input_schema:a.parameters})),j&&"object"==typeof j?B.tool_choice=j:"auto"!==j&&j?"any"===j?B.tool_choice={type:"any"}:"string"==typeof j?B.tool_choice={type:"tool",name:j}:B.tool_choice={type:"auto"}:B.tool_choice={type:"auto"}):("ollama"===n?B.tools=a.map(a=>({type:"function",function:a})):B.tools=a.map(a=>({type:"function",function:a})),B.tool_choice=j||"auto")}"openai"===n?(B.max_completion_tokens=l||4096,(f||z(n)).includes("gpt-5-nano")?B.temperature=1:B.temperature=.7):(B.max_tokens=l||4096,B.temperature=.7);let C=f||"";C.includes("gemini")&&(C.includes("thinking")||C.includes("2.5")||C.includes("3-pro"))&&(B.reasoning={max_tokens:4096}),m&&"openrouter"===n&&(B.reasoning=m);let D=C.includes("deepseek")&&C.includes("v3.2");"openrouter"===n&&D&&(B.provider={order:["DeepSeek"],allow_fallbacks:!0});let E=await fetch(r,{method:"POST",headers:s,body:JSON.stringify(B)});if(!E.ok){let a=await E.text(),b=a;try{let c=JSON.parse(a);if(c.error?.message){if(b=c.error.message,c.error.metadata?.raw)try{let a=JSON.parse(c.error.metadata.raw);a.error?.message&&(b=`${c.error.message}: ${a.error.message}`)}catch{c.error.metadata.raw!==c.error.message&&(b=`${c.error.message} (${c.error.metadata.raw})`)}c.error.metadata?.provider_name&&(b=`[${c.error.metadata.provider_name}] ${b}`)}else"string"==typeof c.error&&(b=c.error);w.v.error("[API] Provider error details:",JSON.stringify(c,null,2))}catch{w.v.error("[API] Provider error (raw):",a)}let c={};if(429===E.status){let a=E.headers.get("Retry-After"),b=E.headers.get("X-RateLimit-Reset"),d=E.headers.get("X-RateLimit-Remaining");a&&(c["Retry-After"]=a),b&&(c["X-RateLimit-Reset"]=b),d&&(c["X-RateLimit-Remaining"]=d)}if("ollama"===n&&b.includes("does not support tools")&&g&&g.length>0){let a=p+`
IMPORTANT: This model doesn't support native function calling, so you must use JSON format for tool calls.
Available tools:
-${s.map(e=>`
-- ${e.name}: ${e.description}
- Parameters: ${JSON.stringify(e.parameters,null,2)}
+${g.map(a=>`
+- ${a.name}: ${a.description}
+ Parameters: ${JSON.stringify(a.parameters,null,2)}
`).join("")}
When you need to use a tool, respond with:
@@ -61,4 +61,4 @@ When you need to use a tool, respond with:
}
\`\`\`
-You can make multiple tool calls in a single response. Always include the tool_calls array even for a single tool call.`,t=[...v],r=t.findIndex(e=>"system"===e.role);r>=0&&(t[r].content=e);let n={..._,messages:t};delete n.tools,delete n.tool_choice;let a=await fetch(x,{method:"POST",headers:o,body:JSON.stringify(n)});if(!a.ok){let e=await a.text();return i.NextResponse.json({error:`${f.name} API error (after fallback): ${e}`},{status:a.status})}return new Response(a.body,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Tool-Fallback":"json-parsing"}})}return i.NextResponse.json({error:`${f.name} API error: ${t}`},{status:S.status,headers:o})}let P={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if("openrouter"===g)for(let e of["x-openrouter-generation-id","x-openrouter-usage","x-openrouter-tokens","x-openrouter-cost"]){let t=S.headers.get(e);t&&(P[e]=t)}return new Response(S.body,{headers:P})}catch(r){let e=r instanceof Error?r.message:"Unknown error",t=/fetch failed|Failed to fetch|NetworkError/i.test(e),o=t?"Network error: unable to reach the model API. Check your internet connection or proxy settings.":e;return i.NextResponse.json({error:o},{status:t?503:500})}}function u(e){switch(e){case"openrouter":default:return"deepseek/deepseek-chat";case"openai":return"gpt-4o-mini";case"anthropic":return"claude-3-5-haiku-20241022";case"groq":return"llama-3.3-70b-versatile";case"gemini":return"gemini-1.5-flash";case"ollama":return"llama3.2:latest";case"lmstudio":return"qwen/qwen3-4b-thinking-2507";case"sambanova":return"Meta-Llama-3.3-70B-Instruct"}}let d=new s.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/generate/route",pathname:"/api/generate",filename:"route",bundlePath:"app/api/generate/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/generate/route.ts",nextConfigOutput:"standalone",userland:r}),{workAsyncStorage:m,workUnitAsyncStorage:h,serverHooks:g}=d;function f(){return(0,a.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:h})}},96487:()=>{}};var t=require("../../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),r=t.X(0,[4447,580],()=>o(90202));module.exports=r})();
\ No newline at end of file
+You can make multiple tool calls in a single response. Always include the tool_calls array even for a single tool call.`,b=[...q],d=b.findIndex(a=>"system"===a.role);d>=0&&(b[d].content=a);let e={...B,messages:b};delete e.tools,delete e.tool_choice;let f=await fetch(r,{method:"POST",headers:c,body:JSON.stringify(e)});if(!f.ok){let a=await f.text();return u.NextResponse.json({error:`${o.name} API error (after fallback): ${a}`},{status:f.status})}return new Response(f.body,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive","X-Tool-Fallback":"json-parsing"}})}return u.NextResponse.json({error:`${o.name} API error: ${b}`},{status:E.status,headers:c})}let F={"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"};if("openrouter"===n)for(let a of["x-openrouter-generation-id","x-openrouter-usage","x-openrouter-tokens","x-openrouter-cost"]){let b=E.headers.get(a);b&&(F[a]=b)}return new Response(E.body,{headers:F})}catch(d){let a=d instanceof Error?d.message:"Unknown error",b=/fetch failed|Failed to fetch|NetworkError/i.test(a),c=b?"Network error: unable to reach the model API. Check your internet connection or proxy settings.":a;return u.NextResponse.json({error:c},{status:b?503:500})}}function z(a){switch(a){case"openrouter":default:return"deepseek/deepseek-chat";case"openai":return"gpt-4o-mini";case"anthropic":return"claude-3-5-haiku-20241022";case"groq":return"llama-3.3-70b-versatile";case"gemini":return"gemini-1.5-flash";case"ollama":return"llama3.2:latest";case"lmstudio":return"qwen/qwen3-4b-thinking-2507";case"sambanova":return"Meta-Llama-3.3-70B-Instruct"}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/generate/route",pathname:"/api/generate",filename:"route",bundlePath:"app/api/generate/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/generate/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/generate/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94729:(a,b,c)=>{"use strict";c.d(b,{sO:()=>e});let d={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function e(a){return d[a]}},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=20933));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/generate/route.js.nft.json b/.next/server/app/api/generate/route.js.nft.json
index 35b51ae9d0f39de4c28f8c6549c739b99d9765e7..5f67b25f0e83d2ba25e19010861069fd47f2ae52 100644
--- a/.next/server/app/api/generate/route.js.nft.json
+++ b/.next/server/app/api/generate/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4447.js","../../../chunks/580.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/generate/route_client-reference-manifest.js b/.next/server/app/api/generate/route_client-reference-manifest.js
index be4ac06d7befe04d7bbce230d4c791e385949faa..b687fdfad1bd723575b4848e4f83f33d5ed77e1e 100644
--- a/.next/server/app/api/generate/route_client-reference-manifest.js
+++ b/.next/server/app/api/generate/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/generate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/generate/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/generate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/generate/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/models/route.js b/.next/server/app/api/models/route.js
index e13f31d0b06e891c8299d022ae3a48134440a592..70c3f36b5aa2127a99c96ff702b9a0f34ad5b21b 100644
--- a/.next/server/app/api/models/route.js
+++ b/.next/server/app/api/models/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=552,e.ids=[552],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14092:(e,t,o)=>{"use strict";o.d(t,{sO:()=>s});let r={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function s(e){return r[e]}},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,o)=>{"use strict";o.d(t,{v:()=>i});let r={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function a(e){return r[s]<=r[e]}let i={debug:(...e)=>{a("debug")&&console.debug(...e)},info:(...e)=>{a("info")&&console.info(...e)},warn:(...e)=>{a("warn")&&console.warn(...e)},error:(...e)=>{a("error")&&console.error(...e)}}},72080:(e,t,o)=>{"use strict";o.r(t),o.d(t,{patchFetch:()=>g,routeModule:()=>u,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>m});var r={};o.r(r),o.d(r,{POST:()=>d});var s=o(96559),a=o(48088),i=o(37719),n=o(32190),p=o(14092),l=o(66819);async function d(e){try{let{apiKey:t,provider:o}=await e.json();if(!o)return n.NextResponse.json({error:"Provider is required"},{status:400});let r=(0,p.sO)(o);if(r.apiKeyRequired&&!t)return n.NextResponse.json({models:[]});let s=[];try{switch(o){case"openrouter":let a=await fetch("https://openrouter.ai/api/v1/models",{headers:{Authorization:`Bearer ${t}`,"HTTP-Referer":e.headers.get("referer")||"http://localhost:3000","X-Title":"OSW-Studio"}});if(a.ok){let e=await a.json();s=e.data?.filter(e=>e.id.includes("deepseek")||e.id.includes("qwen")||e.id.includes("claude")||e.id.includes("gpt")||e.id.includes("llama"))?.map(e=>e.id)||[]}break;case"anthropic":let i=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":t,"anthropic-version":"2023-06-01"}});if(i.ok){let e=await i.json();s=e.data?.map(e=>e.id)||[]}break;case"openai":let n=await fetch("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${t}`}});if(n.ok){let e=await n.json();s=e.data?.map(e=>e.id)||[]}break;case"groq":let p=await fetch("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${t}`}});if(p.ok){let e=await p.json();s=e.data?.map(e=>e.id)||[]}break;case"ollama":try{let e=await fetch("http://localhost:11434/api/tags");if(e.ok){let t=await e.json();s=t.models?.map(e=>e.name)||[]}}catch(e){l.v.error("Ollama models fetch error:",e)}break;case"lmstudio":try{let e=await fetch(`${r.baseUrl}/models`);if(e.ok){let t=await e.json();s=t.data?.map(e=>e.id)||[]}}catch(e){l.v.error("LM Studio models fetch error:",e)}break;case"gemini":s=r.models?.map(e=>e.id)||[];break;default:if(r.baseUrl&&t){let e=await fetch(`${r.baseUrl}/models`,{headers:{Authorization:`Bearer ${t}`,"Content-Type":"application/json"}});if(e.ok){let t=await e.json();s=t.data?.map(e=>e.id)||[]}}}}catch(e){l.v.error(`Error fetching models for ${o}:`,e),r.models&&(s=r.models.map(e=>e.id))}return n.NextResponse.json({models:s})}catch(e){return l.v.error("Models API error:",e),n.NextResponse.json({models:[]})}}let u=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/models/route.ts",nextConfigOutput:"standalone",userland:r}),{workAsyncStorage:c,workUnitAsyncStorage:m,serverHooks:h}=u;function g(){return(0,i.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:m})}},78335:()=>{},96487:()=>{}};var t=require("../../../webpack-runtime.js");t.C(e);var o=e=>t(t.s=e),r=t.X(0,[4447,580],()=>o(72080));module.exports=r})();
\ No newline at end of file
+(()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89774:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(94729),w=c(95012);async function x(a){try{let{apiKey:b,provider:c}=await a.json();if(!c)return u.NextResponse.json({error:"Provider is required"},{status:400});let d=(0,v.sO)(c);if(d.apiKeyRequired&&!b)return u.NextResponse.json({models:[]});let e=[];try{switch(c){case"openrouter":let f=await fetch("https://openrouter.ai/api/v1/models",{headers:{Authorization:`Bearer ${b}`,"HTTP-Referer":a.headers.get("referer")||"http://localhost:3000","X-Title":"OSW-Studio"}});if(f.ok){let a=await f.json();e=a.data?.filter(a=>a.id.includes("deepseek")||a.id.includes("qwen")||a.id.includes("claude")||a.id.includes("gpt")||a.id.includes("llama"))?.map(a=>a.id)||[]}break;case"anthropic":let g=await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":b,"anthropic-version":"2023-06-01"}});if(g.ok){let a=await g.json();e=a.data?.map(a=>a.id)||[]}break;case"openai":let h=await fetch("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${b}`}});if(h.ok){let a=await h.json();e=a.data?.map(a=>a.id)||[]}break;case"groq":let i=await fetch("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${b}`}});if(i.ok){let a=await i.json();e=a.data?.map(a=>a.id)||[]}break;case"ollama":try{let a=await fetch("http://localhost:11434/api/tags");if(a.ok){let b=await a.json();e=b.models?.map(a=>a.name)||[]}}catch(a){w.v.error("Ollama models fetch error:",a)}break;case"lmstudio":try{let a=await fetch(`${d.baseUrl}/models`);if(a.ok){let b=await a.json();e=b.data?.map(a=>a.id)||[]}}catch(a){w.v.error("LM Studio models fetch error:",a)}break;case"gemini":e=d.models?.map(a=>a.id)||[];break;default:if(d.baseUrl&&b){let a=await fetch(`${d.baseUrl}/models`,{headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json"}});if(a.ok){let b=await a.json();e=b.data?.map(a=>a.id)||[]}}}}catch(a){w.v.error(`Error fetching models for ${c}:`,a),d.models&&(e=d.models.map(a=>a.id))}return u.NextResponse.json({models:e})}catch(a){return w.v.error("Models API error:",a),u.NextResponse.json({models:[]})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/models/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/models/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},94729:(a,b,c)=>{"use strict";c.d(b,{sO:()=>e});let d={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function e(a){return d[a]}},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=89774));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/models/route.js.nft.json b/.next/server/app/api/models/route.js.nft.json
index 35b51ae9d0f39de4c28f8c6549c739b99d9765e7..5f67b25f0e83d2ba25e19010861069fd47f2ae52 100644
--- a/.next/server/app/api/models/route.js.nft.json
+++ b/.next/server/app/api/models/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4447.js","../../../chunks/580.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/models/route_client-reference-manifest.js b/.next/server/app/api/models/route_client-reference-manifest.js
index 8c563507a830221295f1d13e7303b99ae53fdcbe..ed1249eec1748af6dab97dac673d1619b1a57ba8 100644
--- a/.next/server/app/api/models/route_client-reference-manifest.js
+++ b/.next/server/app/api/models/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/models/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/models/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/projects/[id]/sites/route.js b/.next/server/app/api/projects/[id]/sites/route.js
index 11781a317158f290e2cf07f2c65e9720dfaa6321..6cf4b18de42cfe0a9f4b63bc6e0411fe6c2e4939 100644
--- a/.next/server/app/api/projects/[id]/sites/route.js
+++ b/.next/server/app/api/projects/[id]/sites/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1471,e.ids=[1471],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12843:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>f,routeModule:()=>d,serverHooks:()=>x,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>c});var s={};t.r(s),t.d(s,{GET:()=>p});var o=t(96559),n=t(48088),i=t(37719),a=t(32190),u=t(30417);async function p(e,{params:r}){try{let{id:e}=await r;if(!e)return a.NextResponse.json({error:"Project ID is required"},{status:400});let t=await (0,u.B)();if(await t.init(),!await t.getProject(e))return await t.close?.(),a.NextResponse.json({error:"Project not found"},{status:404});let s=await t.listSitesByProject?.(e)||[];return await t.close?.(),a.NextResponse.json({sites:s})}catch(e){return console.error("[Projects Sites API] Error listing sites:",e),a.NextResponse.json({error:"Failed to list sites for project"},{status:500})}}let d=new o.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/projects/[id]/sites/route",pathname:"/api/projects/[id]/sites",filename:"route",bundlePath:"app/api/projects/[id]/sites/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/[id]/sites/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:l,workUnitAsyncStorage:c,serverHooks:x}=d;function f(){return(0,i.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:c})}},23870:(e,r,t)=>{t.d(r,{A:()=>u});var s=t(55511);let o={randomUUID:s.randomUUID},n=new Uint8Array(256),i=n.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let u=function(e,r,t){if(o.randomUUID&&!r&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(i>n.length-16&&((0,s.randomFillSync)(n),i=0),n.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=u[e];return r}return function(e,r=0){return(a[e[r+0]]+a[e[r+1]]+a[e[r+2]]+a[e[r+3]]+"-"+a[e[r+4]]+a[e[r+5]]+"-"+a[e[r+6]]+a[e[r+7]]+"-"+a[e[r+8]]+a[e[r+9]]+"-"+a[e[r+10]]+a[e[r+11]]+a[e[r+12]]+a[e[r+13]]+a[e[r+14]]+a[e[r+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),s=r.X(0,[4447,580,9709],()=>t(12843));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1471,a.ids=[1471],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27991:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{GET:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778);async function w(a,{params:b}){try{let{id:a}=await b;if(!a)return u.NextResponse.json({error:"Project ID is required"},{status:400});let c=await (0,v.B)();if(await c.init(),!await c.getProject(a))return await c.close?.(),u.NextResponse.json({error:"Project not found"},{status:404});let d=await c.listSitesByProject?.(a)||[];return await c.close?.(),u.NextResponse.json({sites:d})}catch(a){return console.error("[Projects Sites API] Error listing sites:",a),u.NextResponse.json({error:"Failed to list sites for project"},{status:500})}}let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/projects/[id]/sites/route",pathname:"/api/projects/[id]/sites",filename:"route",bundlePath:"app/api/projects/[id]/sites/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/[id]/sites/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){var d;let e="/api/projects/[id]/sites/route";"/index"===e&&(e="/");let g=await x.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||x.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===x.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>x.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>x.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await x.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=27991));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/projects/[id]/sites/route.js.nft.json b/.next/server/app/api/projects/[id]/sites/route.js.nft.json
index 9b3a8af3ffa899356353fd178254ec9059e79629..089f7c8a5e74f98fa79ededab8a16a30372a1253 100644
--- a/.next/server/app/api/projects/[id]/sites/route.js.nft.json
+++ b/.next/server/app/api/projects/[id]/sites/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/projects/[id]/sites/route_client-reference-manifest.js b/.next/server/app/api/projects/[id]/sites/route_client-reference-manifest.js
index e207fdea3ea820ce07b5c9ec9b1c50acc43a4d3f..cae3a544fc3514967e6303d4cab6fd7aedc14064 100644
--- a/.next/server/app/api/projects/[id]/sites/route_client-reference-manifest.js
+++ b/.next/server/app/api/projects/[id]/sites/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/[id]/sites/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/[id]/sites/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/[id]/sites/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/[id]/sites/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/projects/route.js b/.next/server/app/api/projects/route.js
index a3ed578ea62d9bc5beb7ca9e4b4f213e3659af7d..1063349b0c3340efa6300ab86fd71ed6df610398 100644
--- a/.next/server/app/api/projects/route.js
+++ b/.next/server/app/api/projects/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=64,e.ids=[64],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,r,t)=>{t.d(r,{A:()=>u});var n=t(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,r,t){if(o.randomUUID&&!r&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,n.randomFillSync)(s),a=0),s.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=u[e];return r}return function(e,r=0){return(i[e[r+0]]+i[e[r+1]]+i[e[r+2]]+i[e[r+3]]+"-"+i[e[r+4]]+i[e[r+5]]+"-"+i[e[r+6]]+i[e[r+7]]+"-"+i[e[r+8]]+i[e[r+9]]+"-"+i[e[r+10]]+i[e[r+11]]+i[e[r+12]]+i[e[r+13]]+i[e[r+14]]+i[e[r+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},34264:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>x,routeModule:()=>c,serverHooks:()=>g,workAsyncStorage:()=>f,workUnitAsyncStorage:()=>w});var n={};t.r(n),t.d(n,{GET:()=>l});var o=t(96559),s=t(48088),a=t(37719),i=t(32190),u=t(50613),p=t(30417),d=t(66819);async function l(e){try{await (0,u.oC)();let r=await (0,p.B)();await r.init();let{searchParams:t}=new URL(e.url),n=t.get("fields"),o=n?n.split(",").map(e=>e.trim()):void 0,s=await r.listProjects(o);return await r.close?.(),i.NextResponse.json(s)}catch(e){if(d.v.error("[API /api/projects] ❌ Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch projects"},{status:500})}}let c=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:"app/api/projects/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:f,workUnitAsyncStorage:w,serverHooks:g}=c;function x(){return(0,a.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:w})}},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,r,t)=>{t.d(r,{C0:()=>l,Ht:()=>d,gV:()=>p,jw:()=>u,oC:()=>c});var n=t(87806),o=t(77412),s=t(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,r,t=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:r,isAdmin:t}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function p(e){try{let r=i(),{payload:t}=await (0,o.V)(e,r);return{userId:t.userId,email:t.email,isAdmin:t.isAdmin,exp:t.exp}}catch(e){return null}}async function d(){let e=await (0,s.UL)(),r=e.get(a)?.value;return r?p(r):null}async function l(){(await (0,s.UL)()).delete(a)}async function c(){let e=await d();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{t.d(r,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},o="undefined"!=typeof process&&"warn"||"warn";function s(e){return n[o]<=n[e]}let a={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[4447,580,5155,9709],()=>t(34264));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=64,a.ids=[64],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},38338:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778),x=c(95012);async function y(a){try{await (0,v.oC)();let b=await (0,w.B)();await b.init();let{searchParams:c}=new URL(a.url),d=c.get("fields"),e=d?d.split(",").map(a=>a.trim()):void 0,f=await b.listProjects(e);return await b.close?.(),u.NextResponse.json(f)}catch(a){if(x.v.error("[API /api/projects] ❌ Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch projects"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/projects/route",pathname:"/api/projects",filename:"route",bundlePath:"app/api/projects/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/projects/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=38338));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/projects/route.js.nft.json b/.next/server/app/api/projects/route.js.nft.json
index ca993b8a20437d0fbcfdcbdbd4e8c33ff7bfd0b6..6f17bd1773c72b4691ffd85403900f4a65dfd40b 100644
--- a/.next/server/app/api/projects/route.js.nft.json
+++ b/.next/server/app/api/projects/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/4447.js","../../../chunks/5155.js","../../../chunks/580.js","../../../chunks/9709.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../chunks/6151.js","../../../chunks/726.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/projects/route_client-reference-manifest.js b/.next/server/app/api/projects/route_client-reference-manifest.js
index 01acbca4447cf72f1cca6a19b7b6411d2cc8dd2e..2e2e6ebe4fd07c2185544dee7ef9f59d9a51a36e 100644
--- a/.next/server/app/api/projects/route_client-reference-manifest.js
+++ b/.next/server/app/api/projects/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/projects/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/shell/execute/route.js b/.next/server/app/api/shell/execute/route.js
index 93ccfd4e949aaa76af6f2194a69774640b8e925d..38574313a0ab12af977c9f55e5a1f3cc19947755 100644
--- a/.next/server/app/api/shell/execute/route.js
+++ b/.next/server/app/api/shell/execute/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=9552,e.ids=[9552],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var s=r(55511);let o={randomUUID:s.randomUUID},n=new Uint8Array(256),i=n.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(o.randomUUID&&!t&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(i>n.length-16&&((0,s.randomFillSync)(n),i=0),n.slice(i,i+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>l,gV:()=>d,jw:()=>u,oC:()=>p});var s=r(87806),o=r(77412),n=r(44999);let i="osw_session";function a(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let o=a(),n=Math.floor((Date.now()+864e5)/1e3);return await new s.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(n).setIssuedAt().sign(o)}async function d(e){try{let t=a(),{payload:r}=await (0,o.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function l(){let e=await (0,n.UL)(),t=e.get(i)?.value;return t?d(t):null}async function c(){(await (0,n.UL)()).delete(i)}async function p(){let e=await l();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},60012:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>m,routeModule:()=>p,serverHooks:()=>h,workAsyncStorage:()=>x,workUnitAsyncStorage:()=>f});var s={};r.r(s),r.d(s,{POST:()=>l});var o=r(96559),n=r(48088),i=r(37719),a=r(32190),u=r(50613),d=r(30417);async function l(e){try{await (0,u.oC)();let{siteId:t,cmd:r}=await e.json();if(!t||"string"!=typeof t)return a.NextResponse.json({stdout:"",stderr:"siteId is required",exitCode:1},{status:400});if(!r||!Array.isArray(r)||0===r.length)return a.NextResponse.json({stdout:"",stderr:"cmd array is required",exitCode:1},{status:400});let s=r[0];if("sqlite3"===s)return c(t,r);return a.NextResponse.json({stdout:"",stderr:`${s}: not supported on server`,exitCode:1})}catch(e){if(e instanceof Error&&"Unauthorized"===e.message)return a.NextResponse.json({stdout:"",stderr:"Unauthorized",exitCode:1},{status:401});return console.error("[Shell Execute API] Error:",e),a.NextResponse.json({stdout:"",stderr:e instanceof Error?e.message:"Server error",exitCode:1},{status:500})}}async function c(e,t){try{let r=(0,d.q)();if(await r.init(),!await r.getSite?.(e))return a.NextResponse.json({stdout:"",stderr:"sqlite3: site not found",exitCode:1});let s=r.getSiteDatabaseForAnalytics(e);if(!s)return a.NextResponse.json({stdout:"",stderr:"sqlite3: site database not available",exitCode:1});let o=t.includes("-json"),n=t.slice(1).find(e=>!e.startsWith("-"));if(!n)return a.NextResponse.json({stdout:"",stderr:"sqlite3: no query provided",exitCode:1});let i=s.executeUserQuery(n);if(i.error)return a.NextResponse.json({stdout:"",stderr:`sqlite3: ${i.error}`,exitCode:1});let u="",l=n.trim().toUpperCase().startsWith("SELECT");if(o){let e=i.rows.map(e=>{let t={};return i.columns.forEach((r,s)=>{t[r]=e[s]}),t});u=JSON.stringify(e,null,2)}else u=i.rows.length>0?i.columns.length>0?i.columns.join("|")+"\n"+i.rows.map(e=>e.join("|")).join("\n"):i.rows.map(e=>e.join("|")).join("\n"):l?i.columns.length>0?i.columns.join("|")+"\n(0 rows)":"(0 rows)":i.rowsAffected>0?`${i.rowsAffected} row(s) affected`:"OK";return a.NextResponse.json({stdout:u,stderr:"",exitCode:0})}catch(e){return console.error("[Shell Execute API] sqlite3 error:",e),a.NextResponse.json({stdout:"",stderr:`sqlite3: ${e instanceof Error?e.message:"execution failed"}`,exitCode:1})}}let p=new o.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/shell/execute/route",pathname:"/api/shell/execute",filename:"route",bundlePath:"app/api/shell/execute/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/shell/execute/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:x,workUnitAsyncStorage:f,serverHooks:h}=p;function m(){return(0,i.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:f})}},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,5155,9709],()=>r(60012));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=9552,a.ids=[9552],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31313:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(39588),w=c(97778);async function x(a){try{await (0,v.oC)();let{siteId:b,cmd:c}=await a.json();if(!b||"string"!=typeof b)return u.NextResponse.json({stdout:"",stderr:"siteId is required",exitCode:1},{status:400});if(!c||!Array.isArray(c)||0===c.length)return u.NextResponse.json({stdout:"",stderr:"cmd array is required",exitCode:1},{status:400});let d=c[0];if("sqlite3"===d)return y(b,c);return u.NextResponse.json({stdout:"",stderr:`${d}: not supported on server`,exitCode:1})}catch(a){if(a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({stdout:"",stderr:"Unauthorized",exitCode:1},{status:401});return console.error("[Shell Execute API] Error:",a),u.NextResponse.json({stdout:"",stderr:a instanceof Error?a.message:"Server error",exitCode:1},{status:500})}}async function y(a,b){try{let c=(0,w.q)();if(await c.init(),!await c.getSite?.(a))return u.NextResponse.json({stdout:"",stderr:"sqlite3: site not found",exitCode:1});let d=c.getSiteDatabaseForAnalytics(a);if(!d)return u.NextResponse.json({stdout:"",stderr:"sqlite3: site database not available",exitCode:1});let e=b.includes("-json"),f=b.slice(1).find(a=>!a.startsWith("-"));if(!f)return u.NextResponse.json({stdout:"",stderr:"sqlite3: no query provided",exitCode:1});let g=d.executeUserQuery(f);if(g.error)return u.NextResponse.json({stdout:"",stderr:`sqlite3: ${g.error}`,exitCode:1});let h="",i=f.trim().toUpperCase().startsWith("SELECT");if(e){let a=g.rows.map(a=>{let b={};return g.columns.forEach((c,d)=>{b[c]=a[d]}),b});h=JSON.stringify(a,null,2)}else h=g.rows.length>0?g.columns.length>0?g.columns.join("|")+"\n"+g.rows.map(a=>a.join("|")).join("\n"):g.rows.map(a=>a.join("|")).join("\n"):i?g.columns.length>0?g.columns.join("|")+"\n(0 rows)":"(0 rows)":g.rowsAffected>0?`${g.rowsAffected} row(s) affected`:"OK";return u.NextResponse.json({stdout:h,stderr:"",exitCode:0})}catch(a){return console.error("[Shell Execute API] sqlite3 error:",a),u.NextResponse.json({stdout:"",stderr:`sqlite3: ${a instanceof Error?a.message:"execution failed"}`,exitCode:1})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/shell/execute/route",pathname:"/api/shell/execute",filename:"route",bundlePath:"app/api/shell/execute/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/shell/execute/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/shell/execute/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=31313));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/shell/execute/route.js.nft.json b/.next/server/app/api/shell/execute/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/shell/execute/route.js.nft.json
+++ b/.next/server/app/api/shell/execute/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/shell/execute/route_client-reference-manifest.js b/.next/server/app/api/shell/execute/route_client-reference-manifest.js
index 9b6405fca916ccb3f2eeb8ad6d05f62ae5450995..5a82e2947db7079b1bef2ee2d51dd251ab8409c5 100644
--- a/.next/server/app/api/shell/execute/route_client-reference-manifest.js
+++ b/.next/server/app/api/shell/execute/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/shell/execute/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/shell/execute/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/shell/execute/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/shell/execute/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/functions/[...path]/route.js b/.next/server/app/api/sites/[id]/functions/[...path]/route.js
index a1db13133919d9413c5a81a8aab98f27a23f87cb..0081e476b723e87203462fc8fbc1c180db35ed4e 100644
--- a/.next/server/app/api/sites/[id]/functions/[...path]/route.js
+++ b/.next/server/app/api/sites/[id]/functions/[...path]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=4548,e.ids=[4548],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:e=>{e.exports=import("quickjs-emscripten-core")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:e=>{e.exports=import("@jitl/quickjs-wasmfile-release-sync")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},60523:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{patchFetch:()=>p,routeModule:()=>d,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>l});var o=r(96559),n=r(48088),a=r(37719),i=r(94305),u=e([i]);i=(u.then?(await u)():u)[0];let d=new o.AppRouteRouteModule({definition:{kind:n.RouteKind.APP_ROUTE,page:"/api/sites/[id]/functions/[...path]/route",pathname:"/api/sites/[id]/functions/[...path]",filename:"route",bundlePath:"app/api/sites/[id]/functions/[...path]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/functions/[...path]/route.ts",nextConfigOutput:"standalone",userland:i}),{workAsyncStorage:c,workUnitAsyncStorage:l,serverHooks:h}=d;function p(){return(0,a.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:l})}s()}catch(e){s(e)}})},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")},94305:(e,t,r)=>{r.a(e,async(e,s)=>{try{r.r(t),r.d(t,{DELETE:()=>l,GET:()=>p,PATCH:()=>h,POST:()=>d,PUT:()=>c});var o=r(32190),n=r(30417),a=r(3149),i=e([a]);async function u(e,{params:t}){let r=Date.now();try{let s,{id:i,path:u}=await t,p=u[0],d=u.slice(1).join("/");if(!p)return o.NextResponse.json({error:"Function name is required"},{status:400});let c=(0,n.q)();await c.init();let l=await c.getSite?.(i);if(!l)return o.NextResponse.json({error:"Site not found"},{status:404});if(!l.databaseEnabled)return o.NextResponse.json({error:"Edge functions not enabled for this site"},{status:404});let h=c.getSiteDatabaseForAnalytics(i);if(!h)return o.NextResponse.json({error:"Site database not available"},{status:500});let x=h.getFunctionByName(p);if(!x)return o.NextResponse.json({error:`Function "${p}" not found`},{status:404});if(!x.enabled)return o.NextResponse.json({error:`Function "${p}" is disabled`},{status:503});if("ANY"!==x.method&&x.method!==e.method)return o.NextResponse.json({error:`Method ${e.method} not allowed for this function`},{status:405});let f=null;if("GET"!==e.method&&"HEAD"!==e.method){let t=e.headers.get("content-type")||"";if(t.includes("application/json"))try{f=await e.json()}catch{f=null}else t.includes("text/")&&(f=await e.text())}let m=new URL(e.url),y={};m.searchParams.forEach((e,t)=>{y[t]=e});let g={},w=["accept","accept-language","content-type","content-length","origin","referer","user-agent","x-requested-with"];e.headers.forEach((e,t)=>{w.includes(t.toLowerCase())&&(g[t.toLowerCase()]=e)});let j={method:e.method,headers:g,body:f,params:{path:d},query:y,path:`/${p}${d?"/"+d:""}`},b=await (0,a.cv)(x,j,h);try{h.logFunctionExecution(x.id,{method:e.method,path:j.path,statusCode:b.response.status,durationMs:b.durationMs,error:b.error})}catch(e){console.error("[Edge Functions] Failed to log execution:",e)}let q=new Headers;return Object.entries(b.response.headers).forEach(([e,t])=>{q.set(e,t)}),q.set("X-Execution-Time",`${Date.now()-r}ms`),"object"==typeof b.response.body?(s=JSON.stringify(b.response.body),q.has("Content-Type")||q.set("Content-Type","application/json")):s=b.response.body,new o.NextResponse(s,{status:b.response.status,headers:q})}catch(e){return console.error("[Edge Functions] Unexpected error:",e),o.NextResponse.json({error:"Internal server error"},{status:500})}}a=(i.then?(await i)():i)[0];let p=u,d=u,c=u,l=u,h=u;s()}catch(e){s(e)}})}};var t=require("../../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,9709,8274],()=>r(60523));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=4548,a.ids=[4548],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5205:a=>{a.exports=import("quickjs-emscripten-core")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17915:a=>{a.exports=import("@jitl/quickjs-wasmfile-release-sync")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34348:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{DELETE:()=>m,GET:()=>j,PATCH:()=>n,POST:()=>k,PUT:()=>l});var e=c(10641),f=c(97778),g=c(19958),h=a([g]);async function i(a,{params:b}){let c=Date.now();try{let d,{id:h,path:i}=await b,j=i[0],k=i.slice(1).join("/");if(!j)return e.NextResponse.json({error:"Function name is required"},{status:400});let l=(0,f.q)();await l.init();let m=await l.getSite?.(h);if(!m)return e.NextResponse.json({error:"Site not found"},{status:404});if(!m.databaseEnabled)return e.NextResponse.json({error:"Edge functions not enabled for this site"},{status:404});let n=l.getSiteDatabaseForAnalytics(h);if(!n)return e.NextResponse.json({error:"Site database not available"},{status:500});let o=n.getFunctionByName(j);if(!o)return e.NextResponse.json({error:`Function "${j}" not found`},{status:404});if(!o.enabled)return e.NextResponse.json({error:`Function "${j}" is disabled`},{status:503});if("ANY"!==o.method&&o.method!==a.method)return e.NextResponse.json({error:`Method ${a.method} not allowed for this function`},{status:405});let p=null;if("GET"!==a.method&&"HEAD"!==a.method){let b=a.headers.get("content-type")||"";if(b.includes("application/json"))try{p=await a.json()}catch{p=null}else b.includes("text/")&&(p=await a.text())}let q=new URL(a.url),r={};q.searchParams.forEach((a,b)=>{r[b]=a});let s={},t=["accept","accept-language","content-type","content-length","origin","referer","user-agent","x-requested-with"];a.headers.forEach((a,b)=>{t.includes(b.toLowerCase())&&(s[b.toLowerCase()]=a)});let u={method:a.method,headers:s,body:p,params:{path:k},query:r,path:`/${j}${k?"/"+k:""}`},v=await (0,g.cv)(o,u,n);try{n.logFunctionExecution(o.id,{method:a.method,path:u.path,statusCode:v.response.status,durationMs:v.durationMs,error:v.error})}catch(a){console.error("[Edge Functions] Failed to log execution:",a)}let w=new Headers;return Object.entries(v.response.headers).forEach(([a,b])=>{w.set(a,b)}),w.set("X-Execution-Time",`${Date.now()-c}ms`),"object"==typeof v.response.body?(d=JSON.stringify(v.response.body),w.has("Content-Type")||w.set("Content-Type","application/json")):d=v.response.body,new e.NextResponse(d,{status:v.response.status,headers:w})}catch(a){return console.error("[Edge Functions] Unexpected error:",a),e.NextResponse.json({error:"Internal server error"},{status:500})}}g=(h.then?(await h)():h)[0];let j=i,k=i,l=i,m=i,n=i;d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74702:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>x,patchFetch:()=>w,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(34348),v=a([u]);u=(v.then?(await v)():v)[0];let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/[id]/functions/[...path]/route",pathname:"/api/sites/[id]/functions/[...path]",filename:"route",bundlePath:"app/api/sites/[id]/functions/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/functions/[...path]/route.ts",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function w(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function x(a,b,c){var d;let e="/api/sites/[id]/functions/[...path]/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G=D,G="/index"===G?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726,3543],()=>b(b.s=74702));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/functions/[...path]/route.js.nft.json b/.next/server/app/api/sites/[id]/functions/[...path]/route.js.nft.json
index 1dfe51d10db2e0e8108fab5e2da8e5d67e4e0d20..06612079bc5a77d028d06d88399dc650f583232b 100644
--- a/.next/server/app/api/sites/[id]/functions/[...path]/route.js.nft.json
+++ b/.next/server/app/api/sites/[id]/functions/[...path]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/4447.js","../../../../../../chunks/580.js","../../../../../../chunks/8274.js","../../../../../../chunks/9709.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../../data/osws.sqlite","../../../../../../../../data/osws.sqlite-shm","../../../../../../../../data/osws.sqlite-wal","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-ffi-types/package.json","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/emscripten-module.wasm","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/ffi.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.js","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/dist/index.mjs","../../../../../../../../node_modules/@jitl/quickjs-wasmfile-release-sync/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-JTKJZQYV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/chunk-PEXOKBOE.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.js","../../../../../../../../node_modules/quickjs-emscripten-core/dist/index.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-6F3E5H7Y.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/dist/module-asyncify-R6PWJ6ZV.mjs","../../../../../../../../node_modules/quickjs-emscripten-core/package.json","../../../../../../../../package.json","../../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../../package.json","../../../../../../chunks/1692.js","../../../../../../chunks/3543.js","../../../../../../chunks/4586.js","../../../../../../chunks/726.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/functions/[...path]/route_client-reference-manifest.js b/.next/server/app/api/sites/[id]/functions/[...path]/route_client-reference-manifest.js
index 074e90ee5126300980a6ea3b544b83c471659c77..6b1e27c1ea67bec4a2885f82fa6c5facd0fb81e7 100644
--- a/.next/server/app/api/sites/[id]/functions/[...path]/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/[id]/functions/[...path]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/functions/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/functions/[...path]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/functions/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/functions/[...path]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/publish/route.js b/.next/server/app/api/sites/[id]/publish/route.js
index 4350be52f51db3222be97fba3b5b4050c740e623..4406a6ab08ba1c0ff6d5e95f3614ee0a8a625953 100644
--- a/.next/server/app/api/sites/[id]/publish/route.js
+++ b/.next/server/app/api/sites/[id]/publish/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=6024,e.ids=[6024],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},40458:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>b,routeModule:()=>l,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>x});var s={};r.r(s),r.d(s,{POST:()=>d});var i=r(96559),a=r(48088),o=r(37719),n=r(32190),p=r(1671),u=r(30417);async function d(e,{params:t}){try{let{id:e}=await t,r=await (0,p.YE)(e);if(!r.success)return n.NextResponse.json({error:r.error||"Failed to build site"},{status:500});let s=(0,u.q)();await s.init();let i=await s.getSite?.(e);return i&&s.updateSite&&(i.lastPublishedVersion=i.settingsVersion,i.publishedAt=new Date,i.updatedAt=new Date,i.databaseEnabled||(i.databaseEnabled=!0,await s.enableSiteDatabase(e)),await s.updateSite(i)),n.NextResponse.json({success:!0,siteId:r.siteId,projectId:r.projectId,filesWritten:r.filesWritten,outputPath:r.outputPath})}catch(e){return console.error("[Sites API] Error publishing site:",e),n.NextResponse.json({error:"Failed to publish site"},{status:500})}}let l=new i.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/sites/[id]/publish/route",pathname:"/api/sites/[id]/publish",filename:"route",bundlePath:"app/api/sites/[id]/publish/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/publish/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:c,workUnitAsyncStorage:x,serverHooks:h}=l;function b(){return(0,o.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:x})}},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,7035,9709,1671],()=>r(40458));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=6024,a.ids=[6024],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26784:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(82797),w=c(97778);async function x(a,{params:b}){try{let{id:a}=await b,c=await (0,v.YE)(a);if(!c.success)return u.NextResponse.json({error:c.error||"Failed to build site"},{status:500});let d=(0,w.q)();await d.init();let e=await d.getSite?.(a);return e&&d.updateSite&&(e.lastPublishedVersion=e.settingsVersion,e.publishedAt=new Date,e.updatedAt=new Date,e.databaseEnabled||(e.databaseEnabled=!0,await d.enableSiteDatabase(a)),await d.updateSite(e)),u.NextResponse.json({success:!0,siteId:c.siteId,projectId:c.projectId,filesWritten:c.filesWritten,outputPath:c.outputPath})}catch(a){return console.error("[Sites API] Error publishing site:",a),u.NextResponse.json({error:"Failed to publish site"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/[id]/publish/route",pathname:"/api/sites/[id]/publish",filename:"route",bundlePath:"app/api/sites/[id]/publish/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/publish/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/sites/[id]/publish/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,9298,726,2797],()=>b(b.s=26784));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/publish/route.js.nft.json b/.next/server/app/api/sites/[id]/publish/route.js.nft.json
index 3a9137fd06050bebfa6ce40be42999d9ed2ce767..e0dc5f0dac02a7a7b4024ba28f29b3413ea47268 100644
--- a/.next/server/app/api/sites/[id]/publish/route.js.nft.json
+++ b/.next/server/app/api/sites/[id]/publish/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1671.js","../../../../../chunks/4447.js","../../../../../chunks/580.js","../../../../../chunks/7035.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/2797.js","../../../../../chunks/4586.js","../../../../../chunks/726.js","../../../../../chunks/9298.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/publish/route_client-reference-manifest.js b/.next/server/app/api/sites/[id]/publish/route_client-reference-manifest.js
index 94d53831c9992f387e85b8bbeddec077fe66c100..071bc49f8fa8d25df366e89dae200f80b46050d0 100644
--- a/.next/server/app/api/sites/[id]/publish/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/[id]/publish/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/publish/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/publish/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/publish/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/publish/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/route.js b/.next/server/app/api/sites/[id]/route.js
index 46ea32d7fb5e21b37679cc223a49d35e81d57d9f..ede14d0d666cd8c7112d7901cbdc3feaa84e42c1 100644
--- a/.next/server/app/api/sites/[id]/route.js
+++ b/.next/server/app/api/sites/[id]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=2684,e.ids=[2684],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},59115:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>x,serverHooks:()=>j,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>g});var s={};r.r(s),r.d(s,{DELETE:()=>c,GET:()=>d,PUT:()=>l});var a=r(96559),i=r(48088),o=r(37719),n=r(32190),u=r(30417),p=r(1671);async function d(e,{params:t}){try{let{id:e}=await t,r=await (0,u.B)();await r.init();let s=await r.getSite?.(e);if(await r.close?.(),!s)return n.NextResponse.json({error:"Site not found"},{status:404});return n.NextResponse.json(s)}catch(e){return console.error("[Sites API] Error getting site:",e),n.NextResponse.json({error:"Failed to get site"},{status:500})}}async function l(e,{params:t}){try{let{id:r}=await t,s=await e.json(),a=await (0,u.B)();await a.init();let i=await a.getSite?.(r);if(!i)return await a.close?.(),n.NextResponse.json({error:"Site not found"},{status:404});let o={...i,...s,id:r,updatedAt:new Date};return a.updateSite&&await a.updateSite(o),await a.close?.(),n.NextResponse.json(o)}catch(e){return console.error("[Sites API] Error updating site:",e),n.NextResponse.json({error:"Failed to update site"},{status:500})}}async function c(e,{params:t}){try{let{id:e}=await t,r=await (0,u.B)();if(await r.init(),!await r.getSite?.(e))return await r.close?.(),n.NextResponse.json({error:"Site not found"},{status:404});return r.deleteSite&&await r.deleteSite(e),await r.close?.(),await (0,p.lN)(e),n.NextResponse.json({success:!0})}catch(e){return console.error("[Sites API] Error deleting site:",e),n.NextResponse.json({error:"Failed to delete site"},{status:500})}}let x=new a.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/sites/[id]/route",pathname:"/api/sites/[id]",filename:"route",bundlePath:"app/api/sites/[id]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:w,workUnitAsyncStorage:g,serverHooks:j}=x;function f(){return(0,o.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:g})}},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,7035,9709,1671],()=>r(59115));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=2684,a.ids=[2684],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26993:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{DELETE:()=>z,GET:()=>x,PUT:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(82797);async function x(a,{params:b}){try{let{id:a}=await b,c=await (0,v.B)();await c.init();let d=await c.getSite?.(a);if(await c.close?.(),!d)return u.NextResponse.json({error:"Site not found"},{status:404});return u.NextResponse.json(d)}catch(a){return console.error("[Sites API] Error getting site:",a),u.NextResponse.json({error:"Failed to get site"},{status:500})}}async function y(a,{params:b}){try{let{id:c}=await b,d=await a.json(),e=await (0,v.B)();await e.init();let f=await e.getSite?.(c);if(!f)return await e.close?.(),u.NextResponse.json({error:"Site not found"},{status:404});let g={...f,...d,id:c,updatedAt:new Date};return e.updateSite&&await e.updateSite(g),await e.close?.(),u.NextResponse.json(g)}catch(a){return console.error("[Sites API] Error updating site:",a),u.NextResponse.json({error:"Failed to update site"},{status:500})}}async function z(a,{params:b}){try{let{id:a}=await b,c=await (0,v.B)();if(await c.init(),!await c.getSite?.(a))return await c.close?.(),u.NextResponse.json({error:"Site not found"},{status:404});return c.deleteSite&&await c.deleteSite(a),await c.close?.(),await (0,w.lN)(a),u.NextResponse.json({success:!0})}catch(a){return console.error("[Sites API] Error deleting site:",a),u.NextResponse.json({error:"Failed to delete site"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/[id]/route",pathname:"/api/sites/[id]",filename:"route",bundlePath:"app/api/sites/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sites/[id]/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,9298,726,2797],()=>b(b.s=26993));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/route.js.nft.json b/.next/server/app/api/sites/[id]/route.js.nft.json
index 7eb537a4582b4b1e1e5160b48cc2735d68db8121..ecbaff90ef6fd8062bb9010b8c4d0f35285a61f8 100644
--- a/.next/server/app/api/sites/[id]/route.js.nft.json
+++ b/.next/server/app/api/sites/[id]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1671.js","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../chunks/7035.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/2797.js","../../../../chunks/4586.js","../../../../chunks/726.js","../../../../chunks/9298.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/route_client-reference-manifest.js b/.next/server/app/api/sites/[id]/route_client-reference-manifest.js
index 15dc25c6abf6f6d9a0210a4177ae170a3aced219..6e5cae32503458e3eebd4e113f122653a3478b43 100644
--- a/.next/server/app/api/sites/[id]/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/[id]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/settings/route.js b/.next/server/app/api/sites/[id]/settings/route.js
index 4927649f534fb65918456badd4bdff354ddee383..54bd22bd0da4b8ab9776fc5b98b339296e848cf5 100644
--- a/.next/server/app/api/sites/[id]/settings/route.js
+++ b/.next/server/app/api/sites/[id]/settings/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=2260,e.ids=[2260],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,s)=>{s.d(t,{A:()=>d});var r=s(55511);let n={randomUUID:r.randomUUID},i=new Uint8Array(256),o=i.length,a=[];for(let e=0;e<256;++e)a.push((e+256).toString(16).slice(1));let d=function(e,t,s){if(n.randomUUID&&!t&&!e)return n.randomUUID();let d=(e=e||{}).random??e.rng?.()??(o>i.length-16&&((0,r.randomFillSync)(i),o=0),i.slice(o,o+=16));if(d.length<16)throw Error("Random bytes length must be >= 16");if(d[6]=15&d[6]|64,d[8]=63&d[8]|128,t){if((s=s||0)<0||s+16>t.length)throw RangeError(`UUID byte range ${s}:${s+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[s+e]=d[e];return t}return function(e,t=0){return(a[e[t+0]]+a[e[t+1]]+a[e[t+2]]+a[e[t+3]]+"-"+a[e[t+4]]+a[e[t+5]]+"-"+a[e[t+6]]+a[e[t+7]]+"-"+a[e[t+8]]+a[e[t+9]]+"-"+a[e[t+10]]+a[e[t+11]]+a[e[t+12]]+a[e[t+13]]+a[e[t+14]]+a[e[t+15]]).toLowerCase()}(d)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32961:(e,t,s)=>{s.r(t),s.d(t,{patchFetch:()=>h,routeModule:()=>p,serverHooks:()=>m,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>g});var r={};s.r(r),s.d(r,{GET:()=>u,PUT:()=>c});var n=s(96559),i=s(48088),o=s(37719),a=s(32190),d=s(30417);async function u(e,{params:t}){try{let{id:e}=await t,s=await (0,d.B)();await s.init();let r=await s.getSite?.(e);if(await s.close?.(),!r)return a.NextResponse.json({error:"Site not found"},{status:404});let n={enabled:r.enabled,underConstruction:r.underConstruction,customDomain:r.customDomain,headScripts:r.headScripts,bodyScripts:r.bodyScripts,cdnLinks:r.cdnLinks,analytics:r.analytics,seo:r.seo,compliance:r.compliance,settingsVersion:r.settingsVersion,lastPublishedVersion:r.lastPublishedVersion};return a.NextResponse.json(n)}catch(e){return console.error("[Sites API] Error getting site settings:",e),a.NextResponse.json({error:"Failed to get site settings"},{status:500})}}async function c(e,{params:t}){try{let{id:s}=await t,r=await e.json(),n=await (0,d.B)();await n.init();let i=await n.getSite?.(s);if(!i)return await n.close?.(),a.NextResponse.json({error:"Site not found"},{status:404});let o={...i,enabled:r.enabled??i.enabled,underConstruction:r.underConstruction??i.underConstruction,customDomain:r.customDomain??i.customDomain,headScripts:r.headScripts??i.headScripts,bodyScripts:r.bodyScripts??i.bodyScripts,cdnLinks:r.cdnLinks??i.cdnLinks,analytics:r.analytics??i.analytics,seo:r.seo??i.seo,compliance:r.compliance??i.compliance,settingsVersion:i.settingsVersion+1,updatedAt:new Date};n.updateSite&&await n.updateSite(o),await n.close?.();let u={enabled:o.enabled,underConstruction:o.underConstruction,customDomain:o.customDomain,headScripts:o.headScripts,bodyScripts:o.bodyScripts,cdnLinks:o.cdnLinks,analytics:o.analytics,seo:o.seo,compliance:o.compliance,settingsVersion:o.settingsVersion,lastPublishedVersion:i.lastPublishedVersion};return a.NextResponse.json(u)}catch(e){return console.error("[Sites API] Error updating site settings:",e),a.NextResponse.json({error:"Failed to update site settings"},{status:500})}}let p=new n.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/sites/[id]/settings/route",pathname:"/api/sites/[id]/settings",filename:"route",bundlePath:"app/api/sites/[id]/settings/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/settings/route.ts",nextConfigOutput:"standalone",userland:r}),{workAsyncStorage:l,workUnitAsyncStorage:g,serverHooks:m}=p;function h(){return(0,o.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:g})}},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var s=e=>t(t.s=e),r=t.X(0,[4447,580,9709],()=>s(32961));module.exports=r})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=2260,a.ids=[2260],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73182:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>w,PUT:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778);async function w(a,{params:b}){try{let{id:a}=await b,c=await (0,v.B)();await c.init();let d=await c.getSite?.(a);if(await c.close?.(),!d)return u.NextResponse.json({error:"Site not found"},{status:404});let e={enabled:d.enabled,underConstruction:d.underConstruction,customDomain:d.customDomain,headScripts:d.headScripts,bodyScripts:d.bodyScripts,cdnLinks:d.cdnLinks,analytics:d.analytics,seo:d.seo,compliance:d.compliance,settingsVersion:d.settingsVersion,lastPublishedVersion:d.lastPublishedVersion};return u.NextResponse.json(e)}catch(a){return console.error("[Sites API] Error getting site settings:",a),u.NextResponse.json({error:"Failed to get site settings"},{status:500})}}async function x(a,{params:b}){try{let{id:c}=await b,d=await a.json(),e=await (0,v.B)();await e.init();let f=await e.getSite?.(c);if(!f)return await e.close?.(),u.NextResponse.json({error:"Site not found"},{status:404});let g={...f,enabled:d.enabled??f.enabled,underConstruction:d.underConstruction??f.underConstruction,customDomain:d.customDomain??f.customDomain,headScripts:d.headScripts??f.headScripts,bodyScripts:d.bodyScripts??f.bodyScripts,cdnLinks:d.cdnLinks??f.cdnLinks,analytics:d.analytics??f.analytics,seo:d.seo??f.seo,compliance:d.compliance??f.compliance,settingsVersion:f.settingsVersion+1,updatedAt:new Date};e.updateSite&&await e.updateSite(g),await e.close?.();let h={enabled:g.enabled,underConstruction:g.underConstruction,customDomain:g.customDomain,headScripts:g.headScripts,bodyScripts:g.bodyScripts,cdnLinks:g.cdnLinks,analytics:g.analytics,seo:g.seo,compliance:g.compliance,settingsVersion:g.settingsVersion,lastPublishedVersion:f.lastPublishedVersion};return u.NextResponse.json(h)}catch(a){return console.error("[Sites API] Error updating site settings:",a),u.NextResponse.json({error:"Failed to update site settings"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/[id]/settings/route",pathname:"/api/sites/[id]/settings",filename:"route",bundlePath:"app/api/sites/[id]/settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/settings/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/sites/[id]/settings/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=73182));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/settings/route.js.nft.json b/.next/server/app/api/sites/[id]/settings/route.js.nft.json
index 9b3a8af3ffa899356353fd178254ec9059e79629..089f7c8a5e74f98fa79ededab8a16a30372a1253 100644
--- a/.next/server/app/api/sites/[id]/settings/route.js.nft.json
+++ b/.next/server/app/api/sites/[id]/settings/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/settings/route_client-reference-manifest.js b/.next/server/app/api/sites/[id]/settings/route_client-reference-manifest.js
index 737a4a6c633f163b15266c0ee3d90ffec578a78a..04030b161712cf7da6b12129510f200fbc986bf7 100644
--- a/.next/server/app/api/sites/[id]/settings/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/[id]/settings/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/settings/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/settings/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/thumbnail/route.js b/.next/server/app/api/sites/[id]/thumbnail/route.js
index b4cc87b0a3293186433970a9b12d7f356be2eba9..2cce554db6fbd1790c24941e4ec38f7b4d60c26e 100644
--- a/.next/server/app/api/sites/[id]/thumbnail/route.js
+++ b/.next/server/app/api/sites/[id]/thumbnail/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=9221,e.ids=[9221],e.modules={3137:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>g,routeModule:()=>d,serverHooks:()=>c,workAsyncStorage:()=>l,workUnitAsyncStorage:()=>m});var a={};r.r(a),r.d(a,{PUT:()=>p});var s=r(96559),i=r(48088),n=r(37719),o=r(32190),u=r(30417);async function p(e,{params:t}){try{let{id:r}=await t,{previewImage:a}=await e.json();if(!a||"string"!=typeof a)return o.NextResponse.json({error:"previewImage (base64 data URL) is required"},{status:400});if(!a.startsWith("data:image/"))return o.NextResponse.json({error:"previewImage must be a base64 data URL (data:image/...)"},{status:400});let s=await (0,u.B)();await s.init();let i=await s.getSite?.(r);if(!i)return await s.close?.(),o.NextResponse.json({error:"Site not found"},{status:404});let n={...i,previewImage:a,previewUpdatedAt:new Date,updatedAt:new Date};return s.updateSite&&await s.updateSite(n),await s.close?.(),o.NextResponse.json({success:!0,previewImage:n.previewImage,previewUpdatedAt:n.previewUpdatedAt})}catch(e){return console.error("[Sites API] Error updating site thumbnail:",e),o.NextResponse.json({error:"Failed to update site thumbnail"},{status:500})}}let d=new s.AppRouteRouteModule({definition:{kind:i.RouteKind.APP_ROUTE,page:"/api/sites/[id]/thumbnail/route",pathname:"/api/sites/[id]/thumbnail",filename:"route",bundlePath:"app/api/sites/[id]/thumbnail/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/thumbnail/route.ts",nextConfigOutput:"standalone",userland:a}),{workAsyncStorage:l,workUnitAsyncStorage:m,serverHooks:c}=d;function g(){return(0,n.patchFetch)({workAsyncStorage:l,workUnitAsyncStorage:m})}},3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var a=r(55511);let s={randomUUID:a.randomUUID},i=new Uint8Array(256),n=i.length,o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(n>i.length-16&&((0,a.randomFillSync)(i),n=0),i.slice(n,n+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),a=t.X(0,[4447,580,9709],()=>r(3137));module.exports=a})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=9221,a.ids=[9221],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},37108:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{PUT:()=>w});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778);async function w(a,{params:b}){try{let{id:c}=await b,{previewImage:d}=await a.json();if(!d||"string"!=typeof d)return u.NextResponse.json({error:"previewImage (base64 data URL) is required"},{status:400});if(!d.startsWith("data:image/"))return u.NextResponse.json({error:"previewImage must be a base64 data URL (data:image/...)"},{status:400});let e=await (0,v.B)();await e.init();let f=await e.getSite?.(c);if(!f)return await e.close?.(),u.NextResponse.json({error:"Site not found"},{status:404});let g={...f,previewImage:d,previewUpdatedAt:new Date,updatedAt:new Date};return e.updateSite&&await e.updateSite(g),await e.close?.(),u.NextResponse.json({success:!0,previewImage:g.previewImage,previewUpdatedAt:g.previewUpdatedAt})}catch(a){return console.error("[Sites API] Error updating site thumbnail:",a),u.NextResponse.json({error:"Failed to update site thumbnail"},{status:500})}}let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/[id]/thumbnail/route",pathname:"/api/sites/[id]/thumbnail",filename:"route",bundlePath:"app/api/sites/[id]/thumbnail/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/thumbnail/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){var d;let e="/api/sites/[id]/thumbnail/route";"/index"===e&&(e="/");let g=await x.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||x.isDev||y||(G="/index"===(G=D)?"/":G);let H=!0===x.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>x.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>x.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await x.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=37108));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/thumbnail/route.js.nft.json b/.next/server/app/api/sites/[id]/thumbnail/route.js.nft.json
index 9b3a8af3ffa899356353fd178254ec9059e79629..089f7c8a5e74f98fa79ededab8a16a30372a1253 100644
--- a/.next/server/app/api/sites/[id]/thumbnail/route.js.nft.json
+++ b/.next/server/app/api/sites/[id]/thumbnail/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/[id]/thumbnail/route_client-reference-manifest.js b/.next/server/app/api/sites/[id]/thumbnail/route_client-reference-manifest.js
index 80578b4a16030d08350584e1fb56358de6426669..4195a5243ea84ef0d19b396bd028830a7b3187ad 100644
--- a/.next/server/app/api/sites/[id]/thumbnail/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/[id]/thumbnail/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/thumbnail/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/thumbnail/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/[id]/thumbnail/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/[id]/thumbnail/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/route.js b/.next/server/app/api/sites/route.js
index bbe694c47d044351b88f2f0c8fec2ec5d4ca9a00..e43d2cd2e52d08edefd46bc8b8e6dc0e31c4cba5 100644
--- a/.next/server/app/api/sites/route.js
+++ b/.next/server/app/api/sites/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=3926,e.ids=[3926],e.modules={2815:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>f,routeModule:()=>l,serverHooks:()=>w,workAsyncStorage:()=>x,workUnitAsyncStorage:()=>g});var s={};r.r(s),r.d(s,{GET:()=>d,POST:()=>c});var n=r(96559),o=r(48088),a=r(37719),i=r(32190),u=r(30417),p=r(23870);async function d(){try{let e=await (0,u.B)();await e.init();let t=await e.listSites?.()||[];return await e.close?.(),i.NextResponse.json(t)}catch(e){return console.error("[Sites API] ❌ Error listing sites:",e),i.NextResponse.json({error:"Failed to list sites"},{status:500})}}async function c(e){try{let{projectId:t,name:r,slug:s}=await e.json();if(!t||!r)return i.NextResponse.json({error:"projectId and name are required"},{status:400});let n=await (0,u.B)();if(await n.init(),!await n.getProject(t))return await n.close?.(),i.NextResponse.json({error:"Project not found"},{status:404});let o={id:(0,p.A)(),projectId:t,name:r,slug:s||void 0,enabled:!1,underConstruction:!1,headScripts:[],bodyScripts:[],cdnLinks:[],analytics:{enabled:!1,provider:"builtin",privacyMode:!0},seo:{},compliance:{enabled:!1,bannerPosition:"bottom",bannerStyle:"bar",message:"",acceptButtonText:"Accept",declineButtonText:"Decline",mode:"opt-in",blockAnalytics:!0},settingsVersion:1,createdAt:new Date,updatedAt:new Date};return n.createSite&&await n.createSite(o),await n.close?.(),i.NextResponse.json(o,{status:201})}catch(e){return console.error("[Sites API] Error creating site:",e),i.NextResponse.json({error:"Failed to create site"},{status:500})}}let l=new n.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/sites/route",pathname:"/api/sites",filename:"route",bundlePath:"app/api/sites/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:x,workUnitAsyncStorage:g,serverHooks:w}=l;function f(){return(0,a.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:g})}},3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var s=r(55511);let n={randomUUID:s.randomUUID},o=new Uint8Array(256),a=o.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(n.randomUUID&&!t&&!e)return n.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>o.length-16&&((0,s.randomFillSync)(o),a=0),o.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580,9709],()=>r(2815));module.exports=s})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=3926,a.ids=[3926],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},97886:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>x,POST:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(32524);async function x(){try{let a=await (0,v.B)();await a.init();let b=await a.listSites?.()||[];return await a.close?.(),u.NextResponse.json(b)}catch(a){return console.error("[Sites API] ❌ Error listing sites:",a),u.NextResponse.json({error:"Failed to list sites"},{status:500})}}async function y(a){try{let{projectId:b,name:c,slug:d}=await a.json();if(!b||!c)return u.NextResponse.json({error:"projectId and name are required"},{status:400});let e=await (0,v.B)();if(await e.init(),!await e.getProject(b))return await e.close?.(),u.NextResponse.json({error:"Project not found"},{status:404});let f={id:(0,w.A)(),projectId:b,name:c,slug:d||void 0,enabled:!1,underConstruction:!1,headScripts:[],bodyScripts:[],cdnLinks:[],analytics:{enabled:!1,provider:"builtin",privacyMode:!0},seo:{},compliance:{enabled:!1,bannerPosition:"bottom",bannerStyle:"bar",message:"",acceptButtonText:"Accept",declineButtonText:"Decline",mode:"opt-in",blockAnalytics:!0},settingsVersion:1,createdAt:new Date,updatedAt:new Date};return e.createSite&&await e.createSite(f),await e.close?.(),u.NextResponse.json(f,{status:201})}catch(a){return console.error("[Sites API] Error creating site:",a),u.NextResponse.json({error:"Failed to create site"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sites/route",pathname:"/api/sites",filename:"route",bundlePath:"app/api/sites/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/sites/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=97886));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sites/route.js.nft.json b/.next/server/app/api/sites/route.js.nft.json
index 17f74d325deb247c3320d138496368864ea7d99a..2a79f9dc631aba4358cb438eae2324ecd2bbde9f 100644
--- a/.next/server/app/api/sites/route.js.nft.json
+++ b/.next/server/app/api/sites/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/4447.js","../../../chunks/580.js","../../../chunks/9709.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../chunks/726.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sites/route_client-reference-manifest.js b/.next/server/app/api/sites/route_client-reference-manifest.js
index b25afdead311c7e4a4c426f8244016ab34b26e3b..5b3da8a7f2a00fcb091a1b7c4776eb6a4a2898e1 100644
--- a/.next/server/app/api/sites/route_client-reference-manifest.js
+++ b/.next/server/app/api/sites/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sites/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sites/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/files/route.js b/.next/server/app/api/sync/files/route.js
index 29ee40fcf3e6fe9e02e8d5cbc2f08aca7d0ad652..5fe387df3aae01d97bcae237f27a8f4f41c304c8 100644
--- a/.next/server/app/api/sync/files/route.js
+++ b/.next/server/app/api/sync/files/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=6543,e.ids=[6543],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,r,t)=>{t.d(r,{A:()=>u});var n=t(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,r,t){if(o.randomUUID&&!r&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,n.randomFillSync)(s),a=0),s.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=u[e];return r}return function(e,r=0){return(i[e[r+0]]+i[e[r+1]]+i[e[r+2]]+i[e[r+3]]+"-"+i[e[r+4]]+i[e[r+5]]+"-"+i[e[r+6]]+i[e[r+7]]+"-"+i[e[r+8]]+i[e[r+9]]+"-"+i[e[r+10]]+i[e[r+11]]+i[e[r+12]]+i[e[r+13]]+i[e[r+14]]+i[e[r+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},41314:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>y,routeModule:()=>f,serverHooks:()=>x,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>g});var n={};t.r(n),t.d(n,{GET:()=>d,POST:()=>p});var o=t(96559),s=t(48088),a=t(37719),i=t(32190),u=t(30417),l=t(50613),c=t(66819);async function d(e){try{await (0,l.oC)();let{searchParams:r}=new URL(e.url),t=r.get("projectId");if(!t)return i.NextResponse.json({error:"projectId parameter required"},{status:400});let n=await (0,u.B)();await n.init();let o=await n.listFiles(t);return await n.close?.(),i.NextResponse.json({files:o})}catch(e){if(c.v.error("[API /api/sync/files GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch files"},{status:500})}}async function p(e){try{await (0,l.oC)();let{projectId:r,files:t}=await e.json();if(!r||!Array.isArray(t))return i.NextResponse.json({error:"Invalid request: projectId and files array required"},{status:400});let n=await (0,u.B)();for(let e of(await n.init(),await n.deleteProjectFiles(r),t))await n.createFile(e);return await n.close?.(),i.NextResponse.json({success:!0,count:t.length})}catch(e){if(c.v.error("[API /api/sync/files POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync files"},{status:500})}}let f=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sync/files/route",pathname:"/api/sync/files",filename:"route",bundlePath:"app/api/sync/files/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/files/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:w,workUnitAsyncStorage:g,serverHooks:x}=f;function y(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:g})}},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,r,t)=>{t.d(r,{C0:()=>d,Ht:()=>c,gV:()=>l,jw:()=>u,oC:()=>p});var n=t(87806),o=t(77412),s=t(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,r,t=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:r,isAdmin:t}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function l(e){try{let r=i(),{payload:t}=await (0,o.V)(e,r);return{userId:t.userId,email:t.email,isAdmin:t.isAdmin,exp:t.exp}}catch(e){return null}}async function c(){let e=await (0,s.UL)(),r=e.get(a)?.value;return r?l(r):null}async function d(){(await (0,s.UL)()).delete(a)}async function p(){let e=await c();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{t.d(r,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},o="undefined"!=typeof process&&"warn"||"warn";function s(e){return n[o]<=n[e]}let a={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[4447,580,5155,9709],()=>t(41314));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=6543,a.ids=[6543],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},90987:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(a){try{await (0,w.oC)();let{searchParams:b}=new URL(a.url),c=b.get("projectId");if(!c)return u.NextResponse.json({error:"projectId parameter required"},{status:400});let d=await (0,v.B)();await d.init();let e=await d.listFiles(c);return await d.close?.(),u.NextResponse.json({files:e})}catch(a){if(x.v.error("[API /api/sync/files GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch files"},{status:500})}}async function z(a){try{await (0,w.oC)();let{projectId:b,files:c}=await a.json();if(!b||!Array.isArray(c))return u.NextResponse.json({error:"Invalid request: projectId and files array required"},{status:400});let d=await (0,v.B)();for(let a of(await d.init(),await d.deleteProjectFiles(b),c))await d.createFile(a);return await d.close?.(),u.NextResponse.json({success:!0,count:c.length})}catch(a){if(x.v.error("[API /api/sync/files POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync files"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/files/route",pathname:"/api/sync/files",filename:"route",bundlePath:"app/api/sync/files/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/files/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sync/files/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=90987));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/files/route.js.nft.json b/.next/server/app/api/sync/files/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/sync/files/route.js.nft.json
+++ b/.next/server/app/api/sync/files/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/files/route_client-reference-manifest.js b/.next/server/app/api/sync/files/route_client-reference-manifest.js
index 2dcc4228e4ce9e6005f42b17cf22499c87961f0c..db1a607d1b7475e5a4d7816c4aab0f1c8f8fb4d5 100644
--- a/.next/server/app/api/sync/files/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/files/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/files/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/files/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/files/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/files/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/[id]/route.js b/.next/server/app/api/sync/projects/[id]/route.js
index 9f44bbf0e87a5d9fb7508e96d82327dc2e322fbf..081fcb51ebd0f8a86528c6a8d4a534e23bb7cc55 100644
--- a/.next/server/app/api/sync/projects/[id]/route.js
+++ b/.next/server/app/api/sync/projects/[id]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=5350,e.ids=[5350],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,r,t)=>{t.d(r,{A:()=>c});var o=t(55511);let n={randomUUID:o.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let c=function(e,r,t){if(n.randomUUID&&!r&&!e)return n.randomUUID();let c=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,o.randomFillSync)(s),a=0),s.slice(a,a+=16));if(c.length<16)throw Error("Random bytes length must be >= 16");if(c[6]=15&c[6]|64,c[8]=63&c[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=c[e];return r}return function(e,r=0){return(i[e[r+0]]+i[e[r+1]]+i[e[r+2]]+i[e[r+3]]+"-"+i[e[r+4]]+i[e[r+5]]+"-"+i[e[r+6]]+i[e[r+7]]+"-"+i[e[r+8]]+i[e[r+9]]+"-"+i[e[r+10]]+i[e[r+11]]+i[e[r+12]]+i[e[r+13]]+i[e[r+14]]+i[e[r+15]]).toLowerCase()}(c)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{t.d(r,{v:()=>a});let o={debug:10,info:20,warn:30,error:40,silent:50},n="undefined"!=typeof process&&"warn"||"warn";function s(e){return o[n]<=o[e]}let a={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},70060:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>y,routeModule:()=>l,serverHooks:()=>w,workAsyncStorage:()=>f,workUnitAsyncStorage:()=>j});var o={};t.r(o),t.d(o,{GET:()=>d,POST:()=>p});var n=t(96559),s=t(48088),a=t(37719),i=t(32190),c=t(30417),u=t(66819);async function p(e,{params:r}){try{let t,{id:o}=await r,{project:n,files:s}=await e.json();if(!n||n.id!==o)return i.NextResponse.json({error:"Invalid project data"},{status:400});try{t=await (0,c.B)()}catch(e){return u.v.error("[API /api/sync/projects/[id] POST] Server adapter initialization failed:",e),i.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await t.init();let a=new Date,p={...n,lastSyncedAt:a,serverUpdatedAt:n.updatedAt,syncStatus:"synced"};for(let e of(await t.getProject(o)?await t.updateProject(p):await t.createProject(p),await t.listFiles(o)))await t.deleteFile(o,e.path);for(let e of s)await t.createFile(e);return u.v.debug(`[API /api/sync/projects/${o}] Project synced successfully`),i.NextResponse.json({success:!0,project:p,fileCount:s.length})}catch(e){return u.v.error("[API /api/sync/projects/[id] POST] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Failed to push project"},{status:500})}}async function d(e,{params:r}){try{let e,{id:t}=await r;try{e=await (0,c.B)()}catch(e){return u.v.error("[API /api/sync/projects/[id] GET] Server adapter initialization failed:",e),i.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await e.init();let o=await e.getProject(t);if(!o)return i.NextResponse.json({error:"Project not found"},{status:404});let n=await e.listFiles(t);return u.v.debug(`[API /api/sync/projects/${t}] Project pulled successfully`),i.NextResponse.json({success:!0,project:o,files:n})}catch(e){return u.v.error("[API /api/sync/projects/[id] GET] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Failed to pull project"},{status:500})}}let l=new n.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sync/projects/[id]/route",pathname:"/api/sync/projects/[id]",filename:"route",bundlePath:"app/api/sync/projects/[id]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/[id]/route.ts",nextConfigOutput:"standalone",userland:o}),{workAsyncStorage:f,workUnitAsyncStorage:j,serverHooks:w}=l;function y(){return(0,a.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:j})}},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),o=r.X(0,[4447,580,9709],()=>t(70060));module.exports=o})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=5350,a.ids=[5350],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87127:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(95012);async function x(a,{params:b}){try{let c,{id:d}=await b,{project:e,files:f}=await a.json();if(!e||e.id!==d)return u.NextResponse.json({error:"Invalid project data"},{status:400});try{c=await (0,v.B)()}catch(a){return w.v.error("[API /api/sync/projects/[id] POST] Server adapter initialization failed:",a),u.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await c.init();let g=new Date,h={...e,lastSyncedAt:g,serverUpdatedAt:e.updatedAt,syncStatus:"synced"};for(let a of(await c.getProject(d)?await c.updateProject(h):await c.createProject(h),await c.listFiles(d)))await c.deleteFile(d,a.path);for(let a of f)await c.createFile(a);return w.v.debug(`[API /api/sync/projects/${d}] Project synced successfully`),u.NextResponse.json({success:!0,project:h,fileCount:f.length})}catch(a){return w.v.error("[API /api/sync/projects/[id] POST] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Failed to push project"},{status:500})}}async function y(a,{params:b}){try{let a,{id:c}=await b;try{a=await (0,v.B)()}catch(a){return w.v.error("[API /api/sync/projects/[id] GET] Server adapter initialization failed:",a),u.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await a.init();let d=await a.getProject(c);if(!d)return u.NextResponse.json({error:"Project not found"},{status:404});let e=await a.listFiles(c);return w.v.debug(`[API /api/sync/projects/${c}] Project pulled successfully`),u.NextResponse.json({success:!0,project:d,files:e})}catch(a){return w.v.error("[API /api/sync/projects/[id] GET] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Failed to pull project"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/projects/[id]/route",pathname:"/api/sync/projects/[id]",filename:"route",bundlePath:"app/api/sync/projects/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/[id]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/sync/projects/[id]/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=87127));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/[id]/route.js.nft.json b/.next/server/app/api/sync/projects/[id]/route.js.nft.json
index 9b3a8af3ffa899356353fd178254ec9059e79629..089f7c8a5e74f98fa79ededab8a16a30372a1253 100644
--- a/.next/server/app/api/sync/projects/[id]/route.js.nft.json
+++ b/.next/server/app/api/sync/projects/[id]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/[id]/route_client-reference-manifest.js b/.next/server/app/api/sync/projects/[id]/route_client-reference-manifest.js
index 6e19f7ea31975c3337563fa933f745662b689204..7260e1b6a1b672fb2d0c2584da38120e3b1592f4 100644
--- a/.next/server/app/api/sync/projects/[id]/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/projects/[id]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/projects/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/[id]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/projects/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/[id]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/route.js b/.next/server/app/api/sync/projects/route.js
index 99c5426e4e8ffe2af3ed440125408d91c52a9baa..948cb9dcda7b74e5f0c2276983bf9bdab31a13f9 100644
--- a/.next/server/app/api/sync/projects/route.js
+++ b/.next/server/app/api/sync/projects/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=7564,e.ids=[7564],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,r,t)=>{t.d(r,{A:()=>u});var n=t(55511);let o={randomUUID:n.randomUUID},s=new Uint8Array(256),a=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,r,t){if(o.randomUUID&&!r&&!e)return o.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>s.length-16&&((0,n.randomFillSync)(s),a=0),s.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=u[e];return r}return function(e,r=0){return(i[e[r+0]]+i[e[r+1]]+i[e[r+2]]+i[e[r+3]]+"-"+i[e[r+4]]+i[e[r+5]]+"-"+i[e[r+6]]+i[e[r+7]]+"-"+i[e[r+8]]+i[e[r+9]]+"-"+i[e[r+10]]+i[e[r+11]]+i[e[r+12]]+i[e[r+13]]+i[e[r+14]]+i[e[r+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31416:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>h,routeModule:()=>f,serverHooks:()=>x,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>g});var n={};t.r(n),t.d(n,{GET:()=>d,POST:()=>l});var o=t(96559),s=t(48088),a=t(37719),i=t(32190),u=t(30417),c=t(50613),p=t(66819);async function d(){try{await (0,c.oC)();let e=await (0,u.B)();await e.init();let r=await e.listProjects();return await e.close?.(),i.NextResponse.json({projects:r})}catch(e){if(p.v.error("[API /api/sync/projects GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch projects"},{status:500})}}async function l(e){try{await (0,c.oC)();let{project:r}=await e.json();if(!r||!r.id)return i.NextResponse.json({error:"Invalid project data"},{status:400});let t=await (0,u.B)();return await t.init(),await t.getProject(r.id)?await t.updateProject(r):await t.createProject(r),await t.close?.(),i.NextResponse.json({success:!0,project:r})}catch(e){if(p.v.error("[API /api/sync/projects POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync project"},{status:500})}}let f=new o.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sync/projects/route",pathname:"/api/sync/projects",filename:"route",bundlePath:"app/api/sync/projects/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:w,workUnitAsyncStorage:g,serverHooks:x}=f;function h(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:g})}},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,r,t)=>{t.d(r,{C0:()=>d,Ht:()=>p,gV:()=>c,jw:()=>u,oC:()=>l});var n=t(87806),o=t(77412),s=t(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,r,t=!0){let o=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:r,isAdmin:t}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(o)}async function c(e){try{let r=i(),{payload:t}=await (0,o.V)(e,r);return{userId:t.userId,email:t.email,isAdmin:t.isAdmin,exp:t.exp}}catch(e){return null}}async function p(){let e=await (0,s.UL)(),r=e.get(a)?.value;return r?c(r):null}async function d(){(await (0,s.UL)()).delete(a)}async function l(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{t.d(r,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},o="undefined"!=typeof process&&"warn"||"warn";function s(e){return n[o]<=n[e]}let a={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[4447,580,5155,9709],()=>t(31416));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=7564,a.ids=[7564],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},99559:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(){try{await (0,w.oC)();let a=await (0,v.B)();await a.init();let b=await a.listProjects();return await a.close?.(),u.NextResponse.json({projects:b})}catch(a){if(x.v.error("[API /api/sync/projects GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch projects"},{status:500})}}async function z(a){try{await (0,w.oC)();let{project:b}=await a.json();if(!b||!b.id)return u.NextResponse.json({error:"Invalid project data"},{status:400});let c=await (0,v.B)();return await c.init(),await c.getProject(b.id)?await c.updateProject(b):await c.createProject(b),await c.close?.(),u.NextResponse.json({success:!0,project:b})}catch(a){if(x.v.error("[API /api/sync/projects POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync project"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/projects/route",pathname:"/api/sync/projects",filename:"route",bundlePath:"app/api/sync/projects/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sync/projects/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=99559));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/route.js.nft.json b/.next/server/app/api/sync/projects/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/sync/projects/route.js.nft.json
+++ b/.next/server/app/api/sync/projects/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/projects/route_client-reference-manifest.js b/.next/server/app/api/sync/projects/route_client-reference-manifest.js
index 6413f4e00337556fbf9342d546c0d48f77a2afcc..4875c3c6611a2a079972dc25b99f8eee577cdc05 100644
--- a/.next/server/app/api/sync/projects/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/projects/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/projects/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/projects/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/[id]/route.js b/.next/server/app/api/sync/skills/[id]/route.js
index 5e34bcf3baf2109b86db94f8b25ce7d25a88acab..ca049f71cd9b0e51e7781ab3dc60d3da1c1611e4 100644
--- a/.next/server/app/api/sync/skills/[id]/route.js
+++ b/.next/server/app/api/sync/skills/[id]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1502,e.ids=[1502],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>l});var n=r(55511);let s={randomUUID:n.randomUUID},o=new Uint8Array(256),a=o.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let l=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let l=(e=e||{}).random??e.rng?.()??(a>o.length-16&&((0,n.randomFillSync)(o),a=0),o.slice(a,a+=16));if(l.length<16)throw Error("Random bytes length must be >= 16");if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=l[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(l)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>d,gV:()=>u,jw:()=>l,oC:()=>p});var n=r(87806),s=r(77412),o=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function l(e,t,r=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function u(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function d(){let e=await (0,o.UL)(),t=e.get(a)?.value;return t?u(t):null}async function c(){(await (0,o.UL)()).delete(a)}async function p(){let e=await d();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{r.d(t,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function o(e){return n[s]<=n[e]}let a={debug:(...e)=>{o("debug")&&console.debug(...e)},info:(...e)=>{o("info")&&console.info(...e)},warn:(...e)=>{o("warn")&&console.warn(...e)},error:(...e)=>{o("error")&&console.error(...e)}}},75825:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>k,routeModule:()=>f,serverHooks:()=>g,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>x});var n={};r.r(n),r.d(n,{DELETE:()=>w,GET:()=>c,POST:()=>p});var s=r(96559),o=r(48088),a=r(37719),i=r(32190),l=r(30417),u=r(50613),d=r(66819);async function c(e,{params:t}){try{await (0,u.oC)();let{id:e}=await t,r=await (0,l.B)();await r.init();let n=await r.getSkill(e);if(await r.close?.(),!n)return i.NextResponse.json({error:"Skill not found"},{status:404});return i.NextResponse.json({success:!0,skill:n})}catch(e){if(d.v.error("[API /api/sync/skills/[id] GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch skill"},{status:500})}}async function p(e,{params:t}){try{await (0,u.oC)();let{id:r}=await t,{skill:n}=await e.json();if(!n||n.id!==r)return i.NextResponse.json({error:"Invalid skill data or ID mismatch"},{status:400});if(n.isBuiltIn)return i.NextResponse.json({error:"Cannot sync built-in skills"},{status:400});let s=await (0,l.B)();await s.init();let o=await s.getSkill(r),a=new Date;o?await s.updateSkill({id:n.id,name:n.name,description:n.description,content:n.content,markdown:n.markdown,createdAt:n.createdAt,updatedAt:a}):await s.createSkill({id:n.id,name:n.name,description:n.description,content:n.content,markdown:n.markdown,createdAt:n.createdAt,updatedAt:a});let d=await s.getSkill(r);return await s.close?.(),i.NextResponse.json({success:!0,skill:d,action:o?"updated":"created"})}catch(e){if(d.v.error("[API /api/sync/skills/[id] POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync skill"},{status:500})}}async function w(e,{params:t}){try{await (0,u.oC)();let{id:e}=await t,r=await (0,l.B)();await r.init();let n=await r.getSkill(e);if(!n)return await r.close?.(),i.NextResponse.json({error:"Skill not found"},{status:404});if(n.isBuiltIn)return await r.close?.(),i.NextResponse.json({error:"Cannot delete built-in skills"},{status:400});return await r.deleteSkill(e),await r.close?.(),i.NextResponse.json({success:!0})}catch(e){if(d.v.error("[API /api/sync/skills/[id] DELETE] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to delete skill"},{status:500})}}let f=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/sync/skills/[id]/route",pathname:"/api/sync/skills/[id]",filename:"route",bundlePath:"app/api/sync/skills/[id]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/[id]/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:m,workUnitAsyncStorage:x,serverHooks:g}=f;function k(){return(0,a.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:x})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(75825));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1502,a.ids=[1502],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},15017:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(a,{params:b}){try{await (0,w.oC)();let{id:a}=await b,c=await (0,v.B)();await c.init();let d=await c.getSkill(a);if(await c.close?.(),!d)return u.NextResponse.json({error:"Skill not found"},{status:404});return u.NextResponse.json({success:!0,skill:d})}catch(a){if(x.v.error("[API /api/sync/skills/[id] GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch skill"},{status:500})}}async function z(a,{params:b}){try{await (0,w.oC)();let{id:c}=await b,{skill:d}=await a.json();if(!d||d.id!==c)return u.NextResponse.json({error:"Invalid skill data or ID mismatch"},{status:400});if(d.isBuiltIn)return u.NextResponse.json({error:"Cannot sync built-in skills"},{status:400});let e=await (0,v.B)();await e.init();let f=await e.getSkill(c),g=new Date;f?await e.updateSkill({id:d.id,name:d.name,description:d.description,content:d.content,markdown:d.markdown,createdAt:d.createdAt,updatedAt:g}):await e.createSkill({id:d.id,name:d.name,description:d.description,content:d.content,markdown:d.markdown,createdAt:d.createdAt,updatedAt:g});let h=await e.getSkill(c);return await e.close?.(),u.NextResponse.json({success:!0,skill:h,action:f?"updated":"created"})}catch(a){if(x.v.error("[API /api/sync/skills/[id] POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync skill"},{status:500})}}async function A(a,{params:b}){try{await (0,w.oC)();let{id:a}=await b,c=await (0,v.B)();await c.init();let d=await c.getSkill(a);if(!d)return await c.close?.(),u.NextResponse.json({error:"Skill not found"},{status:404});if(d.isBuiltIn)return await c.close?.(),u.NextResponse.json({error:"Cannot delete built-in skills"},{status:400});return await c.deleteSkill(a),await c.close?.(),u.NextResponse.json({success:!0})}catch(a){if(x.v.error("[API /api/sync/skills/[id] DELETE] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to delete skill"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/skills/[id]/route",pathname:"/api/sync/skills/[id]",filename:"route",bundlePath:"app/api/sync/skills/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/[id]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/api/sync/skills/[id]/route";"/index"===e&&(e="/");let g=await B.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>B.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>B.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=15017));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/[id]/route.js.nft.json b/.next/server/app/api/sync/skills/[id]/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/sync/skills/[id]/route.js.nft.json
+++ b/.next/server/app/api/sync/skills/[id]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/[id]/route_client-reference-manifest.js b/.next/server/app/api/sync/skills/[id]/route_client-reference-manifest.js
index 92d6000c7c46de39b66d3a57d2d2678750be30fe..8580a96ce76c1bea05dd7a396d4b7c67ba2d8c19 100644
--- a/.next/server/app/api/sync/skills/[id]/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/skills/[id]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/skills/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/[id]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/skills/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/[id]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/route.js b/.next/server/app/api/sync/skills/route.js
index 2898596f094cf219b4d7ffc9436d7d0325f71702..85511e5bf279ae48cc9a2aeec1294919bde60d4d 100644
--- a/.next/server/app/api/sync/skills/route.js
+++ b/.next/server/app/api/sync/skills/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=4596,e.ids=[4596],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,r,t)=>{t.d(r,{A:()=>l});var n=t(55511);let s={randomUUID:n.randomUUID},o=new Uint8Array(256),a=o.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let l=function(e,r,t){if(s.randomUUID&&!r&&!e)return s.randomUUID();let l=(e=e||{}).random??e.rng?.()??(a>o.length-16&&((0,n.randomFillSync)(o),a=0),o.slice(a,a+=16));if(l.length<16)throw Error("Random bytes length must be >= 16");if(l[6]=15&l[6]|64,l[8]=63&l[8]|128,r){if((t=t||0)<0||t+16>r.length)throw RangeError(`UUID byte range ${t}:${t+15} is out of buffer bounds`);for(let e=0;e<16;++e)r[t+e]=l[e];return r}return function(e,r=0){return(i[e[r+0]]+i[e[r+1]]+i[e[r+2]]+i[e[r+3]]+"-"+i[e[r+4]]+i[e[r+5]]+"-"+i[e[r+6]]+i[e[r+7]]+"-"+i[e[r+8]]+i[e[r+9]]+"-"+i[e[r+10]]+i[e[r+11]]+i[e[r+12]]+i[e[r+13]]+i[e[r+14]]+i[e[r+15]]).toLowerCase()}(l)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},42595:(e,r,t)=>{t.r(r),t.d(r,{patchFetch:()=>x,routeModule:()=>f,serverHooks:()=>g,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>m});var n={};t.r(n),t.d(n,{GET:()=>c,POST:()=>p});var s=t(96559),o=t(48088),a=t(37719),i=t(32190),l=t(30417),u=t(50613),d=t(66819);async function c(){try{await (0,u.oC)();let e=await (0,l.B)();await e.init();let r=(await e.getAllSkills()||[]).filter(e=>!e.isBuiltIn);return await e.close?.(),i.NextResponse.json({success:!0,skills:r})}catch(e){if(d.v.error("[API /api/sync/skills GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch skills"},{status:500})}}async function p(e){try{await (0,u.oC)();let{skills:r}=await e.json();if(!r||!Array.isArray(r))return i.NextResponse.json({error:"Invalid skills data - expected array"},{status:400});let t=await (0,l.B)();await t.init();let n=0,s=0,o=[];for(let e of r)if(!e.isBuiltIn)try{await t.getSkill(e.id)?(await t.updateSkill({id:e.id,name:e.name,description:e.description,content:e.content,markdown:e.markdown,createdAt:e.createdAt,updatedAt:new Date}),s++):(await t.createSkill({id:e.id,name:e.name,description:e.description,content:e.content,markdown:e.markdown,createdAt:e.createdAt,updatedAt:e.updatedAt}),n++)}catch(r){o.push(`Failed to sync skill "${e.name}": ${r instanceof Error?r.message:"Unknown error"}`)}return await t.close?.(),i.NextResponse.json({success:0===o.length,created:n,updated:s,errors:o.length>0?o:void 0})}catch(e){if(d.v.error("[API /api/sync/skills POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync skills"},{status:500})}}let f=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/sync/skills/route",pathname:"/api/sync/skills",filename:"route",bundlePath:"app/api/sync/skills/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:w,workUnitAsyncStorage:m,serverHooks:g}=f;function x(){return(0,a.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:m})}},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,r,t)=>{t.d(r,{C0:()=>c,Ht:()=>d,gV:()=>u,jw:()=>l,oC:()=>p});var n=t(87806),s=t(77412),o=t(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function l(e,r,t=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:r,isAdmin:t}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function u(e){try{let r=i(),{payload:t}=await (0,s.V)(e,r);return{userId:t.userId,email:t.email,isAdmin:t.isAdmin,exp:t.exp}}catch(e){return null}}async function d(){let e=await (0,o.UL)(),r=e.get(a)?.value;return r?u(r):null}async function c(){(await (0,o.UL)()).delete(a)}async function p(){let e=await d();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,r,t)=>{t.d(r,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function o(e){return n[s]<=n[e]}let a={debug:(...e)=>{o("debug")&&console.debug(...e)},info:(...e)=>{o("info")&&console.info(...e)},warn:(...e)=>{o("warn")&&console.warn(...e)},error:(...e)=>{o("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")}};var r=require("../../../../webpack-runtime.js");r.C(e);var t=e=>r(r.s=e),n=r.X(0,[4447,580,5155,9709],()=>t(42595));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=4596,a.ids=[4596],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},89201:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(){try{await (0,w.oC)();let a=await (0,v.B)();await a.init();let b=(await a.getAllSkills()||[]).filter(a=>!a.isBuiltIn);return await a.close?.(),u.NextResponse.json({success:!0,skills:b})}catch(a){if(x.v.error("[API /api/sync/skills GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch skills"},{status:500})}}async function z(a){try{await (0,w.oC)();let{skills:b}=await a.json();if(!b||!Array.isArray(b))return u.NextResponse.json({error:"Invalid skills data - expected array"},{status:400});let c=await (0,v.B)();await c.init();let d=0,e=0,f=[];for(let a of b)if(!a.isBuiltIn)try{await c.getSkill(a.id)?(await c.updateSkill({id:a.id,name:a.name,description:a.description,content:a.content,markdown:a.markdown,createdAt:a.createdAt,updatedAt:new Date}),e++):(await c.createSkill({id:a.id,name:a.name,description:a.description,content:a.content,markdown:a.markdown,createdAt:a.createdAt,updatedAt:a.updatedAt}),d++)}catch(b){f.push(`Failed to sync skill "${a.name}": ${b instanceof Error?b.message:"Unknown error"}`)}return await c.close?.(),u.NextResponse.json({success:0===f.length,created:d,updated:e,errors:f.length>0?f:void 0})}catch(a){if(x.v.error("[API /api/sync/skills POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync skills"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/skills/route",pathname:"/api/sync/skills",filename:"route",bundlePath:"app/api/sync/skills/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sync/skills/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=89201));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/route.js.nft.json b/.next/server/app/api/sync/skills/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/sync/skills/route.js.nft.json
+++ b/.next/server/app/api/sync/skills/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/skills/route_client-reference-manifest.js b/.next/server/app/api/sync/skills/route_client-reference-manifest.js
index e927f374fd200c32b6375add89f00aa34072251b..de8b81a855fa81914c5adf88fac6d5c9b806bcbf 100644
--- a/.next/server/app/api/sync/skills/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/skills/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/skills/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/skills/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/skills/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/status/route.js b/.next/server/app/api/sync/status/route.js
index 4b3dcd85ef376a26f4d7de87c26ac5eff1c95d09..36c3578012c01f34d944e8339b3008e5855e1b73 100644
--- a/.next/server/app/api/sync/status/route.js
+++ b/.next/server/app/api/sync/status/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=3084,e.ids=[3084],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},a=new Uint8Array(256),o=a.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>a.length-16&&((0,n.randomFillSync)(a),o=0),a.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{r.d(t,{v:()=>o});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function a(e){return n[s]<=n[e]}let o={debug:(...e)=>{a("debug")&&console.debug(...e)},info:(...e)=>{a("info")&&console.info(...e)},warn:(...e)=>{a("warn")&&console.warn(...e)},error:(...e)=>{a("error")&&console.error(...e)}}},74880:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>h,routeModule:()=>c,serverHooks:()=>f,workAsyncStorage:()=>g,workUnitAsyncStorage:()=>m});var n={};r.r(n),r.d(n,{GET:()=>p});var s=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(30417),l=r(66819);function d(e,t=new Date){if(!e)return t;if(e instanceof Date)return isNaN(e.getTime())?t:e;let r=new Date(e);return isNaN(r.getTime())?t:r}async function p(e){try{let e;try{e=await (0,u.B)()}catch(e){return l.v.error("[API /api/sync/status] Server adapter initialization failed:",e),i.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await e.init();let t=await e.listProjects()||[],r=e.listSites?await e.listSites():[],n=(await e.getAllSkills()||[]).filter(e=>!e.isBuiltIn),s=await e.getAllCustomTemplates()||[],a=t.map(e=>{let t=d(e.updatedAt);return{id:e.id,name:e.name,updatedAt:t.toISOString()}}),o=n.map(e=>{let t=d(e.updatedAt);return{id:e.id,name:e.name,updatedAt:t.toISOString()}}),p=s.map(e=>{let t=d(e.updatedAt||e.importedAt);return{id:e.id,name:e.name,updatedAt:t.toISOString()}}),c=[...a.map(e=>e.updatedAt),...o.map(e=>e.updatedAt),...p.map(e=>e.updatedAt)],g=null;c.length>0&&(g=[...c].sort((e,t)=>new Date(t).getTime()-new Date(e).getTime())[0]),l.v.debug(`[API /api/sync/status] Fetched status for ${a.length} projects, ${o.length} skills, ${p.length} templates, ${r.length} sites`);let m={success:!0,projects:a,skills:o,templates:p,summary:{projectCount:t.length,skillCount:n.length,templateCount:s.length,siteCount:r.length,lastUpdated:g,isUninitialized:0===t.length}};return i.NextResponse.json(m)}catch(e){return l.v.error("[API /api/sync/status] Error:",e),i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch sync status"},{status:500})}}let c=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/sync/status/route",pathname:"/api/sync/status",filename:"route",bundlePath:"app/api/sync/status/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/status/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:g,workUnitAsyncStorage:m,serverHooks:f}=c;function h(){return(0,o.patchFetch)({workAsyncStorage:g,workUnitAsyncStorage:m})}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,9709],()=>r(74880));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=3084,a.ids=[3084],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},85317:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(95012);function x(a,b=new Date){if(!a)return b;if(a instanceof Date)return isNaN(a.getTime())?b:a;let c=new Date(a);return isNaN(c.getTime())?b:c}async function y(a){try{let a;try{a=await (0,v.B)()}catch(a){return w.v.error("[API /api/sync/status] Server adapter initialization failed:",a),u.NextResponse.json({error:"Server mode not configured. Check DATABASE_URL environment variable."},{status:500})}await a.init();let b=await a.listProjects()||[],c=a.listSites?await a.listSites():[],d=(await a.getAllSkills()||[]).filter(a=>!a.isBuiltIn),e=await a.getAllCustomTemplates()||[],f=b.map(a=>{let b=x(a.updatedAt);return{id:a.id,name:a.name,updatedAt:b.toISOString()}}),g=d.map(a=>{let b=x(a.updatedAt);return{id:a.id,name:a.name,updatedAt:b.toISOString()}}),h=e.map(a=>{let b=x(a.updatedAt||a.importedAt);return{id:a.id,name:a.name,updatedAt:b.toISOString()}}),i=[...f.map(a=>a.updatedAt),...g.map(a=>a.updatedAt),...h.map(a=>a.updatedAt)],j=null;i.length>0&&(j=[...i].sort((a,b)=>new Date(b).getTime()-new Date(a).getTime())[0]),w.v.debug(`[API /api/sync/status] Fetched status for ${f.length} projects, ${g.length} skills, ${h.length} templates, ${c.length} sites`);let k={success:!0,projects:f,skills:g,templates:h,summary:{projectCount:b.length,skillCount:d.length,templateCount:e.length,siteCount:c.length,lastUpdated:j,isUninitialized:0===b.length}};return u.NextResponse.json(k)}catch(a){return w.v.error("[API /api/sync/status] Error:",a),u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch sync status"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/status/route",pathname:"/api/sync/status",filename:"route",bundlePath:"app/api/sync/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/status/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){var d;let e="/api/sync/status/route";"/index"===e&&(e="/");let g=await z.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||z.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===z.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>z.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>z.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await z.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,726],()=>b(b.s=85317));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/status/route.js.nft.json b/.next/server/app/api/sync/status/route.js.nft.json
index 356d70acea50c2b43d853db72da9bc8bd10c56df..4eac3c3a01f0d17750b936f83214f28fee8ade69 100644
--- a/.next/server/app/api/sync/status/route.js.nft.json
+++ b/.next/server/app/api/sync/status/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/status/route_client-reference-manifest.js b/.next/server/app/api/sync/status/route_client-reference-manifest.js
index 8051ee463320eb1cf3fdfbbcc9fd6fe383ded207..f8189aca963748910deea98424c161477fb9a467 100644
--- a/.next/server/app/api/sync/status/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/status/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/status/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/status/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/status/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/status/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/[id]/route.js b/.next/server/app/api/sync/templates/[id]/route.js
index 5ad03ec5f34c54657fc60eb022950e65fd9e48f6..d41064e85bb4c1ec909656c9b7fee0f12eee2dc2 100644
--- a/.next/server/app/api/sync/templates/[id]/route.js
+++ b/.next/server/app/api/sync/templates/[id]/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=1415,e.ids=[1415],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let a={randomUUID:n.randomUUID},s=new Uint8Array(256),o=s.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(a.randomUUID&&!t&&!e)return a.randomUUID();let u=(e=e||{}).random??e.rng?.()??(o>s.length-16&&((0,n.randomFillSync)(s),o=0),s.slice(o,o+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>d,Ht:()=>p,gV:()=>l,jw:()=>u,oC:()=>c});var n=r(87806),a=r(77412),s=r(44999);let o="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let a=i(),s=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(s).setIssuedAt().sign(a)}async function l(e){try{let t=i(),{payload:r}=await (0,a.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,s.UL)(),t=e.get(o)?.value;return t?l(t):null}async function d(){(await (0,s.UL)()).delete(o)}async function c(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{r.d(t,{v:()=>o});let n={debug:10,info:20,warn:30,error:40,silent:50},a="undefined"!=typeof process&&"warn"||"warn";function s(e){return n[a]<=n[e]}let o={debug:(...e)=>{s("debug")&&console.debug(...e)},info:(...e)=>{s("info")&&console.info(...e)},warn:(...e)=>{s("warn")&&console.warn(...e)},error:(...e)=>{s("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")},98373:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>h,routeModule:()=>w,serverHooks:()=>x,workAsyncStorage:()=>f,workUnitAsyncStorage:()=>g});var n={};r.r(n),r.d(n,{DELETE:()=>m,GET:()=>d,POST:()=>c});var a=r(96559),s=r(48088),o=r(37719),i=r(32190),u=r(30417),l=r(50613),p=r(66819);async function d(e,{params:t}){try{await (0,l.oC)();let{id:e}=await t,r=await (0,u.B)();await r.init();let n=await r.getCustomTemplate(e);if(await r.close?.(),!n)return i.NextResponse.json({error:"Template not found"},{status:404});return i.NextResponse.json({success:!0,template:n})}catch(e){if(p.v.error("[API /api/sync/templates/[id] GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch template"},{status:500})}}async function c(e,{params:t}){try{await (0,l.oC)();let{id:r}=await t,{template:n}=await e.json();if(!n||n.id!==r)return i.NextResponse.json({error:"Invalid template data or ID mismatch"},{status:400});let a=await (0,u.B)();await a.init();let s=await a.getCustomTemplate(r),o={...n,updatedAt:new Date};await a.saveCustomTemplate(o);let p=await a.getCustomTemplate(r);return await a.close?.(),i.NextResponse.json({success:!0,template:p,action:s?"updated":"created"})}catch(e){if(p.v.error("[API /api/sync/templates/[id] POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync template"},{status:500})}}async function m(e,{params:t}){try{await (0,l.oC)();let{id:e}=await t,r=await (0,u.B)();if(await r.init(),!await r.getCustomTemplate(e))return await r.close?.(),i.NextResponse.json({error:"Template not found"},{status:404});return await r.deleteCustomTemplate(e),await r.close?.(),i.NextResponse.json({success:!0})}catch(e){if(p.v.error("[API /api/sync/templates/[id] DELETE] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to delete template"},{status:500})}}let w=new a.AppRouteRouteModule({definition:{kind:s.RouteKind.APP_ROUTE,page:"/api/sync/templates/[id]/route",pathname:"/api/sync/templates/[id]",filename:"route",bundlePath:"app/api/sync/templates/[id]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/[id]/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:f,workUnitAsyncStorage:g,serverHooks:x}=w;function h(){return(0,o.patchFetch)({workAsyncStorage:f,workUnitAsyncStorage:g})}}};var t=require("../../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(98373));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=1415,a.ids=[1415],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},83408:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(a,{params:b}){try{await (0,w.oC)();let{id:a}=await b,c=await (0,v.B)();await c.init();let d=await c.getCustomTemplate(a);if(await c.close?.(),!d)return u.NextResponse.json({error:"Template not found"},{status:404});return u.NextResponse.json({success:!0,template:d})}catch(a){if(x.v.error("[API /api/sync/templates/[id] GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch template"},{status:500})}}async function z(a,{params:b}){try{await (0,w.oC)();let{id:c}=await b,{template:d}=await a.json();if(!d||d.id!==c)return u.NextResponse.json({error:"Invalid template data or ID mismatch"},{status:400});let e=await (0,v.B)();await e.init();let f=await e.getCustomTemplate(c),g={...d,updatedAt:new Date};await e.saveCustomTemplate(g);let h=await e.getCustomTemplate(c);return await e.close?.(),u.NextResponse.json({success:!0,template:h,action:f?"updated":"created"})}catch(a){if(x.v.error("[API /api/sync/templates/[id] POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync template"},{status:500})}}async function A(a,{params:b}){try{await (0,w.oC)();let{id:a}=await b,c=await (0,v.B)();if(await c.init(),!await c.getCustomTemplate(a))return await c.close?.(),u.NextResponse.json({error:"Template not found"},{status:404});return await c.deleteCustomTemplate(a),await c.close?.(),u.NextResponse.json({success:!0})}catch(a){if(x.v.error("[API /api/sync/templates/[id] DELETE] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to delete template"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/templates/[id]/route",pathname:"/api/sync/templates/[id]",filename:"route",bundlePath:"app/api/sync/templates/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/[id]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/api/sync/templates/[id]/route";"/index"===e&&(e="/");let g=await B.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>B.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>B.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=83408));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/[id]/route.js.nft.json b/.next/server/app/api/sync/templates/[id]/route.js.nft.json
index b8be00c66ea192e50cec1a00b37ccda7e0e6646c..258bac5cdf2b58f3c0544372b29441ff95bf20de 100644
--- a/.next/server/app/api/sync/templates/[id]/route.js.nft.json
+++ b/.next/server/app/api/sync/templates/[id]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/4447.js","../../../../../chunks/5155.js","../../../../../chunks/580.js","../../../../../chunks/9709.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../../data/osws.sqlite","../../../../../../../data/osws.sqlite-shm","../../../../../../../data/osws.sqlite-wal","../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../node_modules/bindings/bindings.js","../../../../../../../node_modules/bindings/package.json","../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../package.json","../../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../../package.json","../../../../../chunks/1692.js","../../../../../chunks/4586.js","../../../../../chunks/6151.js","../../../../../chunks/726.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/[id]/route_client-reference-manifest.js b/.next/server/app/api/sync/templates/[id]/route_client-reference-manifest.js
index 5dd2e94d070156c4d8f6cf59c10fd5d2946fee23..fdfa728cdb4c02164afa88013a6eec69625c87db 100644
--- a/.next/server/app/api/sync/templates/[id]/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/templates/[id]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/templates/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/[id]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/templates/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/[id]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/route.js b/.next/server/app/api/sync/templates/route.js
index af479b69efd6ce608dc56e81a2ca05f8fdda5b93..db0911c612c6104ad44a34313ed956de6e407882 100644
--- a/.next/server/app/api/sync/templates/route.js
+++ b/.next/server/app/api/sync/templates/route.js
@@ -1 +1 @@
-"use strict";(()=>{var e={};e.id=3771,e.ids=[3771],e.modules={3295:e=>{e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},23870:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(55511);let s={randomUUID:n.randomUUID},o=new Uint8Array(256),a=o.length,i=[];for(let e=0;e<256;++e)i.push((e+256).toString(16).slice(1));let u=function(e,t,r){if(s.randomUUID&&!t&&!e)return s.randomUUID();let u=(e=e||{}).random??e.rng?.()??(a>o.length-16&&((0,n.randomFillSync)(o),a=0),o.slice(a,a+=16));if(u.length<16)throw Error("Random bytes length must be >= 16");if(u[6]=15&u[6]|64,u[8]=63&u[8]|128,t){if((r=r||0)<0||r+16>t.length)throw RangeError(`UUID byte range ${r}:${r+15} is out of buffer bounds`);for(let e=0;e<16;++e)t[r+e]=u[e];return t}return function(e,t=0){return(i[e[t+0]]+i[e[t+1]]+i[e[t+2]]+i[e[t+3]]+"-"+i[e[t+4]]+i[e[t+5]]+"-"+i[e[t+6]]+i[e[t+7]]+"-"+i[e[t+8]]+i[e[t+9]]+"-"+i[e[t+10]]+i[e[t+11]]+i[e[t+12]]+i[e[t+13]]+i[e[t+14]]+i[e[t+15]]).toLowerCase()}(u)}},29021:e=>{e.exports=require("fs")},29056:(e,t,r)=>{r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>f,serverHooks:()=>g,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>w});var n={};r.r(n),r.d(n,{GET:()=>c,POST:()=>d});var s=r(96559),o=r(48088),a=r(37719),i=r(32190),u=r(30417),l=r(50613),p=r(66819);async function c(){try{await (0,l.oC)();let e=await (0,u.B)();await e.init();let t=await e.getAllCustomTemplates();return await e.close?.(),i.NextResponse.json({success:!0,templates:t})}catch(e){if(p.v.error("[API /api/sync/templates GET] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to fetch templates"},{status:500})}}async function d(e){try{await (0,l.oC)();let{templates:t}=await e.json();if(!t||!Array.isArray(t))return i.NextResponse.json({error:"Invalid templates data - expected array"},{status:400});let r=await (0,u.B)();await r.init();let n=0,s=0,o=[];for(let e of t)try{let t=await r.getCustomTemplate(e.id),o={...e,updatedAt:new Date};await r.saveCustomTemplate(o),t?s++:n++}catch(t){o.push(`Failed to sync template "${e.name}": ${t instanceof Error?t.message:"Unknown error"}`)}return await r.close?.(),i.NextResponse.json({success:0===o.length,created:n,updated:s,errors:o.length>0?o:void 0})}catch(e){if(p.v.error("[API /api/sync/templates POST] Error:",e),e instanceof Error&&"Unauthorized"===e.message)return i.NextResponse.json({error:"Unauthorized"},{status:401});return i.NextResponse.json({error:e instanceof Error?e.message:"Failed to sync templates"},{status:500})}}let f=new s.AppRouteRouteModule({definition:{kind:o.RouteKind.APP_ROUTE,page:"/api/sync/templates/route",pathname:"/api/sync/templates",filename:"route",bundlePath:"app/api/sync/templates/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route.ts",nextConfigOutput:"standalone",userland:n}),{workAsyncStorage:m,workUnitAsyncStorage:w,serverHooks:g}=f;function x(){return(0,a.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:w})}},29294:e=>{e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{e.exports=require("path")},44870:e=>{e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50613:(e,t,r)=>{r.d(t,{C0:()=>c,Ht:()=>p,gV:()=>l,jw:()=>u,oC:()=>d});var n=r(87806),s=r(77412),o=r(44999);let a="osw_session";function i(){let e=process.env.SESSION_SECRET;if(!e)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(e)}async function u(e,t,r=!0){let s=i(),o=Math.floor((Date.now()+864e5)/1e3);return await new n.P({userId:e,email:t,isAdmin:r}).setProtectedHeader({alg:"HS256"}).setExpirationTime(o).setIssuedAt().sign(s)}async function l(e){try{let t=i(),{payload:r}=await (0,s.V)(e,t);return{userId:r.userId,email:r.email,isAdmin:r.isAdmin,exp:r.exp}}catch(e){return null}}async function p(){let e=await (0,o.UL)(),t=e.get(a)?.value;return t?l(t):null}async function c(){(await (0,o.UL)()).delete(a)}async function d(){let e=await p();if(!e)throw Error("Unauthorized");return e}},55511:e=>{e.exports=require("crypto")},63033:e=>{e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,t,r)=>{r.d(t,{v:()=>a});let n={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function o(e){return n[s]<=n[e]}let a={debug:(...e)=>{o("debug")&&console.debug(...e)},info:(...e)=>{o("info")&&console.info(...e)},warn:(...e)=>{o("warn")&&console.warn(...e)},error:(...e)=>{o("error")&&console.error(...e)}}},87550:e=>{e.exports=require("better-sqlite3")}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),n=t.X(0,[4447,580,5155,9709],()=>r(29056));module.exports=n})();
\ No newline at end of file
+"use strict";(()=>{var a={};a.id=3771,a.ids=[3771],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32524:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(55511);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length,h=[];for(let a=0;a<256;++a)h.push((a+256).toString(16).slice(1));let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();let i=(a=a||{}).random??a.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(i.length<16)throw Error("Random bytes length must be >= 16");if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,b){if((c=c||0)<0||c+16>b.length)throw RangeError(`UUID byte range ${c}:${c+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[c+a]=i[a];return b}return function(a,b=0){return(h[a[b+0]]+h[a[b+1]]+h[a[b+2]]+h[a[b+3]]+"-"+h[a[b+4]]+h[a[b+5]]+"-"+h[a[b+6]]+h[a[b+7]]+"-"+h[a[b+8]]+h[a[b+9]]+"-"+h[a[b+10]]+h[a[b+11]]+h[a[b+12]]+h[a[b+13]]+h[a[b+14]]+h[a[b+15]]).toLowerCase()}(i)}},33873:a=>{a.exports=require("path")},39588:(a,b,c)=>{c.d(b,{C0:()=>l,Ht:()=>k,gV:()=>j,jw:()=>i,oC:()=>m});var d=c(84440),e=c(47671),f=c(86802);let g="osw_session";function h(){let a=process.env.SESSION_SECRET;if(!a)throw Error("SESSION_SECRET environment variable not set");return new TextEncoder().encode(a)}async function i(a,b,c=!0){let e=h(),f=Math.floor((Date.now()+864e5)/1e3);return await new d.P({userId:a,email:b,isAdmin:c}).setProtectedHeader({alg:"HS256"}).setExpirationTime(f).setIssuedAt().sign(e)}async function j(a){try{let b=h(),{payload:c}=await (0,e.V)(a,b);return{userId:c.userId,email:c.email,isAdmin:c.isAdmin,exp:c.exp}}catch(a){return null}}async function k(){let a=await (0,f.UL)(),b=a.get(g)?.value;return b?j(b):null}async function l(){(await (0,f.UL)()).delete(g)}async function m(){let a=await k();if(!a)throw Error("Unauthorized");return a}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},75414:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(97778),w=c(39588),x=c(95012);async function y(){try{await (0,w.oC)();let a=await (0,v.B)();await a.init();let b=await a.getAllCustomTemplates();return await a.close?.(),u.NextResponse.json({success:!0,templates:b})}catch(a){if(x.v.error("[API /api/sync/templates GET] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to fetch templates"},{status:500})}}async function z(a){try{await (0,w.oC)();let{templates:b}=await a.json();if(!b||!Array.isArray(b))return u.NextResponse.json({error:"Invalid templates data - expected array"},{status:400});let c=await (0,v.B)();await c.init();let d=0,e=0,f=[];for(let a of b)try{let b=await c.getCustomTemplate(a.id),f={...a,updatedAt:new Date};await c.saveCustomTemplate(f),b?e++:d++}catch(b){f.push(`Failed to sync template "${a.name}": ${b instanceof Error?b.message:"Unknown error"}`)}return await c.close?.(),u.NextResponse.json({success:0===f.length,created:d,updated:e,errors:f.length>0?f:void 0})}catch(a){if(x.v.error("[API /api/sync/templates POST] Error:",a),a instanceof Error&&"Unauthorized"===a.message)return u.NextResponse.json({error:"Unauthorized"},{status:401});return u.NextResponse.json({error:a instanceof Error?a.message:"Failed to sync templates"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/sync/templates/route",pathname:"/api/sync/templates",filename:"route",bundlePath:"app/api/sync/templates/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/api/sync/templates/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{a.exports=require("better-sqlite3")},95012:(a,b,c)=>{c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692,6151,726],()=>b(b.s=75414));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/route.js.nft.json b/.next/server/app/api/sync/templates/route.js.nft.json
index 2c9183da5b50e05825422aa5df1827327eeb10a8..6c94e5cb3fe0486dbe372f74802902d64e6acc2c 100644
--- a/.next/server/app/api/sync/templates/route.js.nft.json
+++ b/.next/server/app/api/sync/templates/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/5155.js","../../../../chunks/580.js","../../../../chunks/9709.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../chunks/6151.js","../../../../chunks/726.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/sync/templates/route_client-reference-manifest.js b/.next/server/app/api/sync/templates/route_client-reference-manifest.js
index 3da91d593c64e0d695c82f86583ea0f86890da54..d041d544e4ebf49981e6d6c2a2e312acf593bc19 100644
--- a/.next/server/app/api/sync/templates/route_client-reference-manifest.js
+++ b/.next/server/app/api/sync/templates/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/templates/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/sync/templates/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/sync/templates/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/api/validate-key/route.js b/.next/server/app/api/validate-key/route.js
index c449aaf43f39d263dfce58fcf494cdc4b860a86c..71887f5fd1d669c86a40812783b4cad4634d65ec 100644
--- a/.next/server/app/api/validate-key/route.js
+++ b/.next/server/app/api/validate-key/route.js
@@ -1 +1 @@
-(()=>{var e={};e.id=5078,e.ids=[5078],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14092:(e,o,r)=>{"use strict";r.d(o,{sO:()=>s});let t={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function s(e){return t[e]}},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51085:(e,o,r)=>{"use strict";r.r(o),r.d(o,{patchFetch:()=>g,routeModule:()=>d,serverHooks:()=>h,workAsyncStorage:()=>c,workUnitAsyncStorage:()=>m});var t={};r.r(t),r.d(t,{POST:()=>u});var s=r(96559),a=r(48088),i=r(37719),n=r(32190),p=r(14092),l=r(66819);async function u(e){try{let{apiKey:o,provider:r}=await e.json();if(!o||!r)return n.NextResponse.json({error:"API key and provider are required"},{status:400});let t=(0,p.sO)(r),s=!1;switch(r){case"openrouter":s=(await fetch("https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${o}`}})).ok;break;case"openai":s=(await fetch("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${o}`}})).ok;break;case"anthropic":s=(await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":o,"anthropic-version":"2023-06-01"}})).ok;break;case"groq":s=(await fetch("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${o}`}})).ok;break;case"ollama":case"lmstudio":s=(await fetch(`${t.baseUrl}/models`)).ok;break;case"gemini":s=!!o&&o.length>10;break;default:s=!!t.baseUrl&&(await fetch(`${t.baseUrl}/models`,{headers:{Authorization:`Bearer ${o}`}})).ok}return n.NextResponse.json({valid:s})}catch(e){return l.v.error("Validation error:",e),n.NextResponse.json({valid:!1})}}let d=new s.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/api/validate-key/route",pathname:"/api/validate-key",filename:"route",bundlePath:"app/api/validate-key/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/validate-key/route.ts",nextConfigOutput:"standalone",userland:t}),{workAsyncStorage:c,workUnitAsyncStorage:m,serverHooks:h}=d;function g(){return(0,i.patchFetch)({workAsyncStorage:c,workUnitAsyncStorage:m})}},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},66819:(e,o,r)=>{"use strict";r.d(o,{v:()=>i});let t={debug:10,info:20,warn:30,error:40,silent:50},s="undefined"!=typeof process&&"warn"||"warn";function a(e){return t[s]<=t[e]}let i={debug:(...e)=>{a("debug")&&console.debug(...e)},info:(...e)=>{a("info")&&console.info(...e)},warn:(...e)=>{a("warn")&&console.warn(...e)},error:(...e)=>{a("error")&&console.error(...e)}}},78335:()=>{},96487:()=>{}};var o=require("../../../webpack-runtime.js");o.C(e);var r=e=>o(o.s=e),t=o.X(0,[4447,580],()=>r(51085));module.exports=t})();
\ No newline at end of file
+(()=>{var a={};a.id=5078,a.ids=[5078],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26704:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(94729),w=c(95012);async function x(a){try{let{apiKey:b,provider:c}=await a.json();if(!b||!c)return u.NextResponse.json({error:"API key and provider are required"},{status:400});let d=(0,v.sO)(c),e=!1;switch(c){case"openrouter":e=(await fetch("https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${b}`}})).ok;break;case"openai":e=(await fetch("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${b}`}})).ok;break;case"anthropic":e=(await fetch("https://api.anthropic.com/v1/models",{headers:{"x-api-key":b,"anthropic-version":"2023-06-01"}})).ok;break;case"groq":e=(await fetch("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${b}`}})).ok;break;case"ollama":case"lmstudio":e=(await fetch(`${d.baseUrl}/models`)).ok;break;case"gemini":e=!!b&&b.length>10;break;default:e=!!d.baseUrl&&(await fetch(`${d.baseUrl}/models`,{headers:{Authorization:`Bearer ${b}`}})).ok}return u.NextResponse.json({valid:e})}catch(a){return w.v.error("Validation error:",a),u.NextResponse.json({valid:!1})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/validate-key/route",pathname:"/api/validate-key",filename:"route",bundlePath:"app/api/validate-key/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/validate-key/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){var d;let e="/api/validate-key/route";"/index"===e&&(e="/");let g=await y.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(z.dynamicRoutes[E]||z.routes[D]);if(F&&!x){let a=!!z.routes[D],b=z.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||y.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===y.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:z,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>y.onRequestError(a,b,d,A)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>y.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},A),b}},l=await y.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94729:(a,b,c)=>{"use strict";c.d(b,{sO:()=>e});let d={openrouter:{id:"openrouter",name:"OpenRouter",description:"Access multiple AI models through a unified API",apiKeyRequired:!0,apiKeyPlaceholder:"sk-or-...",apiKeyHelpUrl:"https://openrouter.ai/keys",baseUrl:"https://openrouter.ai/api/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},openai:{id:"openai",name:"OpenAI",description:"GPT-4, GPT-3.5 and other OpenAI models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-...",apiKeyHelpUrl:"https://platform.openai.com/api-keys",baseUrl:"https://api.openai.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},anthropic:{id:"anthropic",name:"Anthropic",description:"Claude 3.5 Sonnet, Haiku and Opus models",apiKeyRequired:!0,apiKeyPlaceholder:"sk-ant-...",apiKeyHelpUrl:"https://console.anthropic.com/settings/keys",baseUrl:"https://api.anthropic.com/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},groq:{id:"groq",name:"Groq",description:"Ultra-fast inference with Llama and Mixtral models",apiKeyRequired:!0,apiKeyPlaceholder:"gsk_...",apiKeyHelpUrl:"https://console.groq.com/keys",baseUrl:"https://api.groq.com/openai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0},gemini:{id:"gemini",name:"Google Gemini",description:"Google's multimodal AI models",apiKeyRequired:!0,apiKeyPlaceholder:"AI...",apiKeyHelpUrl:"https://aistudio.google.com/apikey",baseUrl:"https://generativelanguage.googleapis.com/v1beta",models:[{id:"gemini-2.0-flash-exp",name:"Gemini 2.0 Flash",description:"Latest experimental Gemini model",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-pro",name:"Gemini 1.5 Pro",description:"Advanced reasoning and analysis",contextLength:2097152,maxTokens:8192,supportsFunctions:!0,supportsVision:!0},{id:"gemini-1.5-flash",name:"Gemini 1.5 Flash",description:"Fast and versatile",contextLength:1048576,maxTokens:8192,supportsFunctions:!0,supportsVision:!0}],supportsFunctions:!0,supportsStreaming:!0},ollama:{id:"ollama",name:"Ollama",description:"Run models locally with Ollama",apiKeyRequired:!1,baseUrl:"http://localhost:11434/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},lmstudio:{id:"lmstudio",name:"LM Studio",description:"Local model server with tool use support",apiKeyRequired:!1,baseUrl:"http://localhost:1234/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0,isLocal:!0},sambanova:{id:"sambanova",name:"SambaNova",description:"High-performance AI chips for inference",apiKeyRequired:!0,apiKeyPlaceholder:"SambaNova API Key",apiKeyHelpUrl:"https://cloud.sambanova.ai/apis",baseUrl:"https://api.sambanova.ai/v1",supportsModelDiscovery:!0,supportsFunctions:!0,supportsStreaming:!0}};function e(a){return d[a]}},95012:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});let d={debug:10,info:20,warn:30,error:40,silent:50},e="undefined"!=typeof process&&"warn"||"warn";function f(a){return d[e]<=d[a]}let g={debug:(...a)=>{f("debug")&&console.debug(...a)},info:(...a)=>{f("info")&&console.info(...a)},warn:(...a)=>{f("warn")&&console.warn(...a)},error:(...a)=>{f("error")&&console.error(...a)}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=26704));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/api/validate-key/route.js.nft.json b/.next/server/app/api/validate-key/route.js.nft.json
index 35b51ae9d0f39de4c28f8c6549c739b99d9765e7..5f67b25f0e83d2ba25e19010861069fd47f2ae52 100644
--- a/.next/server/app/api/validate-key/route.js.nft.json
+++ b/.next/server/app/api/validate-key/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/4447.js","../../../chunks/580.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/api/validate-key/route_client-reference-manifest.js b/.next/server/app/api/validate-key/route_client-reference-manifest.js
index fb9aed533d0eec4f524168e096d0f876c93b0c1e..8bfc5b4662d271e74912af674bc88e7780e26a20 100644
--- a/.next/server/app/api/validate-key/route_client-reference-manifest.js
+++ b/.next/server/app/api/validate-key/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/validate-key/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/validate-key/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/validate-key/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/api/validate-key/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/index.html b/.next/server/app/index.html
index 176604a3b80d23946b8fe3b927f7bf755a3309fe..405749a074f1f488c41e7eb376dddcd3e5181c4c 100644
--- a/.next/server/app/index.html
+++ b/.next/server/app/index.html
@@ -1 +1 @@
-Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
+Open Source Web Studio | Agentic AI Development 🎨
\ No newline at end of file
diff --git a/.next/server/app/index.rsc b/.next/server/app/index.rsc
index 9dce9acaa79203c3fc6cbeaf096ba954569b8039..621f2373148ae5189c7fe12dbe77029e590c7624 100644
--- a/.next/server/app/index.rsc
+++ b/.next/server/app/index.rsc
@@ -1,28 +1,26 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[90894,[],"ClientPageRoot"]
-8:I[40796,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"default"]
-b:I[59665,[],"OutletBoundary"]
-e:I[74911,[],"AsyncMetadataOutlet"]
-10:I[59665,[],"ViewportBoundary"]
-12:I[59665,[],"MetadataBoundary"]
-14:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[81959,[],"ClientPageRoot"]
+8:I[91367,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"default"]
+b:I[24431,[],"OutletBoundary"]
+d:I[15278,[],"AsyncMetadataOutlet"]
+f:I[24431,[],"ViewportBoundary"]
+11:I[24431,[],"MetadataBoundary"]
+12:"$Sreact.suspense"
+14:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","_8_hc-IzL2UQkZ_YlEgkQv",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L12",null,{"children":"$L13"}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true}
-15:"$Sreact.suspense"
-16:I[74911,[],"AsyncMetadata"]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
9:{}
-a:{}
-13:["$","div",null,{"hidden":true,"children":["$","$15",null,{"fallback":null,"children":["$","$L16",null,{"promise":"$@17"}]}]}]
-d:null
-11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+a:"$0:f:0:1:2:children:1:props:children:0:props:params"
+10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
c:null
-f:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-17:{"metadata":"$f:metadata","error":null,"digest":"$undefined"}
+15:I[80622,[],"IconMark"]
+e:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L15","20",{}]],"error":null,"digest":"$undefined"}
+13:"$e:metadata"
diff --git a/.next/server/app/page.js b/.next/server/app/page.js
index d1f6d99370ed80503c73282d605de99cc78f7f4b..9d7b3de8b3c607be871e6cb682a6169c53dc0f88 100644
--- a/.next/server/app/page.js
+++ b/.next/server/app/page.js
@@ -1 +1,2 @@
-(()=>{var e={};e.id=8974,e.ids=[8974],e.modules={1708:e=>{"use strict";e.exports=require("node:process")},3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12501:(e,t,r)=>{"use strict";r.r(t),r.d(t,{GlobalError:()=>i.a,__next_app__:()=>l,pages:()=>d,routeModule:()=>c,tree:()=>p});var s=r(65239),o=r(48088),n=r(88170),i=r.n(n),a=r(30893),u={};for(let e in a)0>["default","tree","pages","GlobalError","__next_app__","routeModule"].indexOf(e)&&(u[e]=()=>a[e]);r.d(t,u);let p=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(r.bind(r,90597)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(r.bind(r,58014)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"not-found":[()=>Promise.resolve().then(r.t.bind(r,57398,23)),"next/dist/client/components/not-found-error"],forbidden:[()=>Promise.resolve().then(r.t.bind(r,89999,23)),"next/dist/client/components/forbidden-error"],unauthorized:[()=>Promise.resolve().then(r.t.bind(r,65284,23)),"next/dist/client/components/unauthorized-error"]}],d=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx"],l={require:r,loadChunk:()=>Promise.resolve()},c=new s.AppPageRouteModule({definition:{kind:o.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:p}})},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},43555:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h});var s=r(60687),o=r(43210),n=r.n(o),i=r(16189),a=r(35157),u=r(2565),p=r(13265),d=r(11755),l=r(80021),c=r(96597);function x(){let e=(0,i.useSearchParams)();e.get("doc");let[t,r]=(0,o.useState)(null),[n,x]=(0,o.useState)("dashboard"),[g,h]=(0,o.useState)(!1),{state:f,setActiveProjectId:m,start:b}=(0,u.C)();e.get("settings"),f.currentStep?.id,f.status;let v=(0,o.useCallback)(e=>{x(e)},[]),j=(0,o.useCallback)(()=>{r(null),x("projects"),b&&b()},[b]),q=(0,o.useMemo)(()=>t?(0,s.jsx)(a.a,{project:t,onBack:()=>r(null)}):(0,s.jsx)(l.f,{view:n,onProjectSelect:r,onNavigate:v,onStartTour:j}),[t,n,v,j]);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.M,{currentView:n,onNavigate:e=>x(e),onProjectSelect:r,onStartTour:j,onOpenAbout:()=>h(!0),showSidebar:!t,children:q}),(0,s.jsx)(p.V,{location:"global"}),(0,s.jsx)(c.V,{open:g,onOpenChange:h})]})}function g(){return(0,s.jsx)(u.g,{children:(0,s.jsx)(n().Suspense,{fallback:(0,s.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#0a0a0a]",children:(0,s.jsx)("p",{className:"text-zinc-400",children:"Loading..."})}),children:(0,s.jsx)(x,{})})})}function h(){return(0,i.useRouter)(),(0,s.jsx)(g,{})}},46539:(e,t,r)=>{Promise.resolve().then(r.bind(r,43555))},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73136:e=>{"use strict";e.exports=require("node:url")},76760:e=>{"use strict";e.exports=require("node:path")},79428:e=>{"use strict";e.exports=require("buffer")},86291:(e,t,r)=>{Promise.resolve().then(r.bind(r,90597))},87550:e=>{"use strict";e.exports=require("better-sqlite3")},90597:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});let s=(0,r(12907).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx","default")},94735:e=>{"use strict";e.exports=require("events")}};var t=require("../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,8055,329,4390,3640,1123],()=>r(12501));module.exports=s})();
\ No newline at end of file
+(()=>{var a={};a.id=8974,a.ids=[8974],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1708:a=>{"use strict";a.exports=require("node:process")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},17742:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx","default")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},46539:(a,b,c)=>{Promise.resolve().then(c.bind(c,52148))},52148:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>p});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(40987),i=c(95919),j=c(14258),k=c(29569),l=c(81535),m=c(45914);function n(){let a=(0,g.useSearchParams)();a.get("doc");let[b,c]=(0,e.useState)(null),[f,n]=(0,e.useState)("dashboard"),[o,p]=(0,e.useState)(!1),{state:q,setActiveProjectId:r,start:s}=(0,i.C)();a.get("settings"),q.currentStep?.id,q.status;let t=(0,e.useCallback)(a=>{n(a)},[]),u=(0,e.useCallback)(()=>{c(null),n("projects"),s&&s()},[s]),v=(0,e.useMemo)(()=>b?(0,d.jsx)(h.a,{project:b,onBack:()=>c(null)}):(0,d.jsx)(l.f,{view:f,onProjectSelect:c,onNavigate:t,onStartTour:u}),[b,f,t,u]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(k.M,{currentView:f,onNavigate:a=>n(a),onProjectSelect:c,onStartTour:u,onOpenAbout:()=>p(!0),showSidebar:!b,children:v}),(0,d.jsx)(j.V,{location:"global"}),(0,d.jsx)(m.V,{open:o,onOpenChange:p})]})}function o(){return(0,d.jsx)(i.g,{children:(0,d.jsx)(f().Suspense,{fallback:(0,d.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-[#0a0a0a]",children:(0,d.jsx)("p",{className:"text-zinc-400",children:"Loading..."})}),children:(0,d.jsx)(n,{})})})}function p(){return(0,g.useRouter)(),(0,d.jsx)(o,{})}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},79428:a=>{"use strict";a.exports=require("buffer")},80144:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GlobalError:()=>D.a,__next_app__:()=>J,handler:()=>L,pages:()=>I,routeModule:()=>K,tree:()=>H});var d=c(49754),e=c(9117),f=c(46595),g=c(32324),h=c(39326),i=c(38928),j=c(20175),k=c(12),l=c(54290),m=c(12696),n=c(82802),o=c(77533),p=c(45229),q=c(32822),r=c(261),s=c(26453),t=c(52474),u=c(26713),v=c(51356),w=c(62685),x=c(36225),y=c(63446),z=c(2762),A=c(45742),B=c(86439),C=c(81170),D=c.n(C),E=c(62506),F=c(91203),G={};for(let a in E)0>["default","tree","pages","GlobalError","__next_app__","routeModule","handler"].indexOf(a)&&(G[a]=()=>E[a]);c.d(b,G);let H=["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,17742)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx"]}]},{layout:[()=>Promise.resolve().then(c.bind(c,16953)),"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout.tsx"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,81170,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,87028,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,90461,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,32768,23)),"next/dist/client/components/builtin/unauthorized.js"]}],I=["/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx"],J={require:c,loadChunk:()=>Promise.resolve()},K=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:H},distDir:".next",relativeProjectDir:""});async function L(a,b,d){var C;let G="/page";"/index"===G&&(G="/");let M=(0,h.getRequestMeta)(a,"postponed"),N=(0,h.getRequestMeta)(a,"minimalMode"),O=await K.prepare(a,b,{srcPage:G,multiZoneDraftMode:!1});if(!O)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:P,query:Q,params:R,parsedUrl:S,pageIsDynamic:T,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,serverActionsManifest:X,clientReferenceManifest:Y,subresourceIntegrityManifest:Z,prerenderManifest:$,isDraftMode:_,resolvedPathname:aa,revalidateOnlyGenerated:ab,routerServerContext:ac,nextConfig:ad,interceptionRoutePatterns:ae}=O,af=S.pathname||"/",ag=(0,r.normalizeAppPath)(G),{isOnDemandRevalidate:ah}=O,ai=K.match(af,$),aj=!!$.routes[aa],ak=!!(ai||aj||$.routes[ag]),al=a.headers["user-agent"]||"",am=(0,u.getBotType)(al),an=(0,p.isHtmlBotRequest)(a),ao=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[t.NEXT_ROUTER_PREFETCH_HEADER],ap=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[t.RSC_HEADER],aq=(0,s.getIsPossibleServerAction)(a),ar=(0,m.checkIsAppPPREnabled)(ad.experimental.ppr)&&(null==(C=$.routes[ag]??$.dynamicRoutes[ag])?void 0:C.renderingMode)==="PARTIALLY_STATIC",as=!1,at=!1,au=ar?M:void 0,av=ar&&ap&&!ao,aw=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),ax=!al||(0,p.shouldServeStreamingMetadata)(al,ad.htmlLimitedBots);an&&ar&&(ak=!1,ax=!1);let ay=!0===K.isDev||!ak||"string"==typeof M||av,az=an&&ar,aA=null;_||!ak||ay||aq||au||av||(aA=aa);let aB=aA;!aB&&K.isDev&&(aB=aa),K.isDev||_||!ak||!ap||av||(0,k.d)(a.headers);let aC={...E,tree:H,pages:I,GlobalError:D(),handler:L,routeModule:K,__next_app__:J};X&&Y&&(0,o.setReferenceManifestsSingleton)({page:G,clientReferenceManifest:Y,serverActionsManifest:X,serverModuleMap:(0,q.createServerModuleMap)({serverActionsManifest:X})});let aD=a.method||"GET",aE=(0,g.getTracer)(),aF=aE.getActiveScopeSpan();try{let f=K.getVaryHeader(aa,ae);b.setHeader("Vary",f);let k=async(c,d)=>{let e=new l.NodeNextRequest(a),f=new l.NodeNextResponse(b);return K.render(e,f,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=aE.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${aD} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${aD} ${a.url}`)})},m=async({span:e,postponed:f,fallbackRouteParams:g})=>{let i={query:Q,params:R,page:ag,sharedContext:{buildId:P},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aC,Component:(0,j.T)(aC),params:R,routeModule:K,page:G,postponed:f,shouldWaitOnAllReady:az,serveStreamingMetadata:ax,supportsDynamicResponse:"string"==typeof f||ay,buildManifest:U,nextFontManifest:V,reactLoadableManifest:W,subresourceIntegrityManifest:Z,serverActionsManifest:X,clientReferenceManifest:Y,setIsrStatus:null==ac?void 0:ac.setIsrStatus,dir:c(33873).join(process.cwd(),K.relativeProjectDir),isDraftMode:_,isRevalidate:ak&&!f&&!av,botType:am,isOnDemandRevalidate:ah,isPossibleServerAction:aq,assetPrefix:ad.assetPrefix,nextConfigOutput:ad.output,crossOrigin:ad.crossOrigin,trailingSlash:ad.trailingSlash,previewProps:$.preview,deploymentId:ad.deploymentId,enableTainting:ad.experimental.taint,htmlLimitedBots:ad.htmlLimitedBots,devtoolSegmentExplorer:ad.experimental.devtoolSegmentExplorer,reactMaxHeadersLength:ad.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:ad.experimental.cacheLife,basePath:ad.basePath,serverActions:ad.experimental.serverActions,...as?{nextExport:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isRevalidate:!0,isDebugDynamicAccesses:as}:{},experimental:{isRoutePPREnabled:ar,expireTime:ad.expireTime,staleTimes:ad.experimental.staleTimes,cacheComponents:!!ad.experimental.cacheComponents,clientSegmentCache:!!ad.experimental.clientSegmentCache,clientParamParsing:!!ad.experimental.clientParamParsing,dynamicOnHover:!!ad.experimental.dynamicOnHover,inlineCss:!!ad.experimental.inlineCss,authInterrupts:!!ad.experimental.authInterrupts,clientTraceMetadata:ad.experimental.clientTraceMetadata||[]},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d)=>K.onRequestError(a,b,d,ac),err:(0,h.getRequestMeta)(a,"invokeError"),dev:K.isDev}},l=await k(e,i),{metadata:m}=l,{cacheControl:n,headers:o={},fetchTags:p}=m;if(p&&(o[y.NEXT_CACHE_TAGS_HEADER]=p),a.fetchMetrics=m.fetchMetrics,ak&&(null==n?void 0:n.revalidate)===0&&!K.isDev&&!ar){let a=m.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${aa}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""}
+see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:v.CachedRouteKind.APP_PAGE,html:l,headers:o,rscData:m.flightData,postponed:m.postponed,status:m.statusCode,segmentData:m.segmentData},cacheControl:n}},o=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i})=>{let j,k=!1===K.isDev,l=c||b.writableEnded;if(ah&&ab&&!f&&!N)return(null==ac?void 0:ac.render404)?await ac.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ai&&(j=(0,w.parseFallbackField)(ai.fallback)),j===w.FallbackMode.PRERENDER&&(0,u.isBot)(al)&&(!ar||an)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ah=!0),ah&&(j!==w.FallbackMode.NOT_FOUND||f)&&(j=w.FallbackMode.BLOCKING_STATIC_RENDER),!N&&j!==w.FallbackMode.BLOCKING_STATIC_RENDER&&aB&&!l&&!_&&T&&(k||!aj)){let b;if((k||ai)&&j===w.FallbackMode.NOT_FOUND)throw new B.NoFallbackError;if(ar&&!ap){let c="string"==typeof(null==ai?void 0:ai.fallback)?ai.fallback:k?ag:null;if(b=await K.handleResponse({cacheKey:c,req:a,nextConfig:ad,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:$,isRoutePPREnabled:ar,responseGenerator:async()=>m({span:i,postponed:void 0,fallbackRouteParams:k||at?(0,n.u)(ag):null}),waitUntil:d.waitUntil}),null===b)return null;if(b)return delete b.cacheControl,b}}let o=ah||g||!au?void 0:au;if(as&&void 0!==o)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:v.CachedRouteKind.PAGES,html:x.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let p=T&&ar&&((0,h.getRequestMeta)(a,"renderFallbackShell")||at)?(0,n.u)(af):null;return m({span:i,postponed:o,fallbackRouteParams:p})},p=async c=>{var f,g,i,j,k;let l,n=await K.handleResponse({cacheKey:aA,responseGenerator:a=>o({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ah,isRoutePPREnabled:ar,req:a,nextConfig:ad,prerenderManifest:$,waitUntil:d.waitUntil});if(_&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),K.isDev&&b.setHeader("Cache-Control","no-store, must-revalidate"),!n){if(aA)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=n.value)?void 0:f.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=n.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let p="string"==typeof n.value.postponed;ak&&!av&&(!p||ao)&&(N||b.setHeader("x-nextjs-cache",ah?"REVALIDATED":n.isMiss?"MISS":n.isStale?"STALE":"HIT"),b.setHeader(t.NEXT_IS_PRERENDER_HEADER,"1"));let{value:q}=n;if(au)l={revalidate:0,expire:void 0};else if(N&&ap&&!ao&&ar)l={revalidate:0,expire:void 0};else if(!K.isDev)if(_)l={revalidate:0,expire:void 0};else if(ak){if(n.cacheControl)if("number"==typeof n.cacheControl.revalidate){if(n.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${n.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:n.cacheControl.revalidate,expire:(null==(j=n.cacheControl)?void 0:j.expire)??ad.expireTime}}else l={revalidate:y.CACHE_ONE_YEAR,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(n.cacheControl=l,"string"==typeof aw&&(null==q?void 0:q.kind)===v.CachedRouteKind.APP_PAGE&&q.segmentData){b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=q.headers)?void 0:k[y.NEXT_CACHE_TAGS_HEADER];N&&ak&&c&&"string"==typeof c&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,c);let d=q.segmentData.get(aw);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(d,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.EMPTY,cacheControl:n.cacheControl}))}let r=(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r({...n,value:{...n.value,kind:"PAGE"}},{url:(0,h.getRequestMeta)(a,"initURL")}))return null;if(p&&au)throw Object.defineProperty(Error("Invariant: postponed state should not be present on a resume request"),"__NEXT_ERROR_CODE",{value:"E396",enumerable:!1,configurable:!0});if(q.headers){let a={...q.headers};for(let[c,d]of(N&&ak||delete a[y.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let s=null==(g=q.headers)?void 0:g[y.NEXT_CACHE_TAGS_HEADER];if(N&&ak&&s&&"string"==typeof s&&b.setHeader(y.NEXT_CACHE_TAGS_HEADER,s),!q.status||ap&&ar||(b.statusCode=q.status),!N&&q.status&&F.RedirectStatusCode[q.status]&&ap&&(b.statusCode=200),p&&b.setHeader(t.NEXT_DID_POSTPONE_HEADER,"1"),ap&&!_){if(void 0===q.rscData){if(q.postponed)throw Object.defineProperty(Error("Invariant: Expected postponed to be undefined"),"__NEXT_ERROR_CODE",{value:"E372",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:q.html,cacheControl:av?{revalidate:0,expire:void 0}:n.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:x.default.fromStatic(q.rscData,t.RSC_CONTENT_TYPE_HEADER),cacheControl:n.cacheControl})}let u=q.html;if(!p||N||ap)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:n.cacheControl});if(as)return u.push(new ReadableStream({start(a){a.enqueue(z.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}});let w=new TransformStream;return u.push(w.readable),m({span:c,postponed:q.postponed,fallbackRouteParams:null}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==v.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(w.writable)}).catch(a=>{w.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:ad.generateEtags,poweredByHeader:ad.poweredByHeader,result:u,cacheControl:{revalidate:0,expire:void 0}})};if(!aF)return await aE.withPropagatedContext(a.headers,()=>aE.trace(i.BaseServerSpan.handleRequest,{spanName:`${aD} ${a.url}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aD,"http.target":a.url}},p));await p(aF)}catch(b){throw b instanceof B.NoFallbackError||await K.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"render",revalidateReason:(0,f.c)({isRevalidate:ak,isOnDemandRevalidate:ah})},ac),b}}},86291:(a,b,c)=>{Promise.resolve().then(c.bind(c,17742))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,495,774,8686,7811,4221],()=>b(b.s=80144));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/page.js.nft.json b/.next/server/app/page.js.nft.json
index 9fcdb2b126d7b946981c059daa4f079f69250b8a..fffb790eb76efc1db873083c467e1a330f72ee3a 100644
--- a/.next/server/app/page.js.nft.json
+++ b/.next/server/app/page.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../node_modules/better-sqlite3/lib/database.js","../../../node_modules/better-sqlite3/lib/index.js","../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../node_modules/better-sqlite3/lib/methods/function.js","../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../node_modules/better-sqlite3/lib/methods/table.js","../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../node_modules/better-sqlite3/lib/util.js","../../../node_modules/better-sqlite3/package.json","../../../node_modules/bindings/bindings.js","../../../node_modules/bindings/package.json","../../../node_modules/file-uri-to-path/index.js","../../../node_modules/file-uri-to-path/package.json","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/package.json","../../../package.json","../../package.json","../chunks/1123.js","../chunks/1519.js","../chunks/2629.js","../chunks/329.js","../chunks/3640.js","../chunks/4390.js","../chunks/4447.js","../chunks/7783.js","../chunks/8055.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../node_modules/better-sqlite3/lib/database.js","../../../node_modules/better-sqlite3/lib/index.js","../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../node_modules/better-sqlite3/lib/methods/function.js","../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../node_modules/better-sqlite3/lib/methods/table.js","../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../node_modules/better-sqlite3/lib/util.js","../../../node_modules/better-sqlite3/package.json","../../../node_modules/bindings/bindings.js","../../../node_modules/bindings/package.json","../../../node_modules/file-uri-to-path/index.js","../../../node_modules/file-uri-to-path/package.json","../../../node_modules/next/dist/client/components/app-router-headers.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../node_modules/next/dist/lib/client-and-server-references.js","../../../node_modules/next/dist/lib/constants.js","../../../node_modules/next/dist/lib/interop-default.js","../../../node_modules/next/dist/lib/is-error.js","../../../node_modules/next/dist/lib/semver-noop.js","../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../node_modules/next/dist/server/lib/lru-cache.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../node_modules/next/dist/server/lib/trace/constants.js","../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../node_modules/next/dist/server/load-manifest.external.js","../../../node_modules/next/dist/server/response-cache/types.js","../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../node_modules/next/dist/shared/lib/segment.js","../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../node_modules/next/package.json","../../../package.json","../../package.json","../chunks/4221.js","../chunks/4586.js","../chunks/4681.js","../chunks/495.js","../chunks/740.js","../chunks/774.js","../chunks/7811.js","../chunks/8686.js","../chunks/9975.js","../webpack-runtime.js","page_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/page_client-reference-manifest.js b/.next/server/app/page_client-reference-manifest.js
index 9993546320cf5e0c0942a119df4457b0730c0b0e..60ef88e79334d3ef4a207e509c75c4ea6d61bc53 100644
--- a/.next/server/app/page_client-reference-manifest.js
+++ b/.next/server/app/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/[...path]/route.js b/.next/server/app/sites/[id]/[...path]/route.js
index a1310905979e503187bac43f318a40fd969a18f1..98c1ee5efd62c2378ad4d951299a1334622f2595 100644
--- a/.next/server/app/sites/[id]/[...path]/route.js
+++ b/.next/server/app/sites/[id]/[...path]/route.js
@@ -1,28 +1,28 @@
-(()=>{var e={};e.id=5585,e.ids=[5585],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19870:(e,t,r)=>{"use strict";r.d(t,{XO:()=>i,ad:()=>o,p1:()=>u});var s=r(55511);let n=null;function a(){if(!n){let{getCoreDatabase:e}=r(50854);n=e()}return n}function o(e){try{var t;let r=a();if(!r)return;let n=(t=e.ip)&&"unknown"!==t?(0,s.createHash)("sha256").update(t).digest("hex").substring(0,8):"unknown",o=e.userAgent?.substring(0,255)||"";r.prepare(`
+(()=>{var a={};a.id=5585,a.ids=[5585],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52222:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(29021),w=c(33873),x=c.n(w),y=c(94471);let z={html:"text/html",htm:"text/html",css:"text/css",js:"application/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",ico:"image/x-icon",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",eot:"application/vnd.ms-fontobject",txt:"text/plain",pdf:"application/pdf",xml:"application/xml"};async function A(a,{params:b}){let{id:c,path:d=[]}=await b,e=d.length>0?d.join("/"):"index.html";try{let b=x().join(process.cwd(),"public","sites",c,e);try{await v.promises.access(b)}catch{return(0,y.ad)({siteId:c,path:"/"+e,statusCode:404,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse("File not found",{status:404})}let d=await v.promises.readFile(b),f=z[e.split(".").pop()?.toLowerCase()||""]||"application/octet-stream";return(0,y.ad)({siteId:c,path:"/"+e,statusCode:200,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse(d.toString("utf-8"),{status:200,headers:{"Content-Type":f,"Cache-Control":"public, max-age=3600"}})}catch(b){return console.error("[Sites Route] Error:",b),(0,y.ad)({siteId:c,path:"/"+e,statusCode:500,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse("Internal server error",{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/sites/[id]/[...path]/route",pathname:"/sites/[id]/[...path]",filename:"route",bundlePath:"app/sites/[id]/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){var d;let e="/sites/[id]/[...path]/route";"/index"===e&&(e="/");let g=await B.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||B.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===B.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>B.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>B.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&A&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})},z),b}},l=await B.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:A,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",A?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:A})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74051:(a,b,c)=>{"use strict";c.r(b),c.d(b,{closeAllConnections:()=>v,closeCoreDatabase:()=>u,closeSiteDatabase:()=>t,deleteSiteDatabase:()=>s,getCoreDatabase:()=>p,getCoreDatabasePath:()=>y,getSiteDatabase:()=>q,getSiteDatabasePath:()=>x,listSiteIds:()=>w,siteExists:()=>r});var d=c(87550),e=c.n(d),f=c(33873),g=c.n(f),h=c(29021),i=c.n(h);let j=null,k=new Map;function l(){return process.env.DATA_DIR||g().join(process.cwd(),"data")}function m(){return g().join(process.cwd(),"sites")}function n(a){i().existsSync(a)||i().mkdirSync(a,{recursive:!0})}function o(a){a.pragma("journal_mode = WAL"),a.pragma("foreign_keys = ON"),a.pragma("synchronous = NORMAL"),a.pragma("cache_size = -64000"),a.pragma("temp_store = MEMORY")}function p(){if(j)return j;let a=l();n(a);let b=g().join(a,"osws.sqlite");return o(j=new(e())(b)),j}function q(a){let b=k.get(a);if(b)return b;let c=m(),d=g().join(c,a);n(d);let f=g().join(d,"site.sqlite"),h=new(e())(f);return o(h),k.set(a,h),h}function r(a){let b=m(),c=g().join(b,a,"site.sqlite");return i().existsSync(c)}function s(a){t(a);let b=m(),c=g().join(b,a);if(i().existsSync(c)){for(let a of i().readdirSync(c))i().unlinkSync(g().join(c,a));i().rmdirSync(c)}}function t(a){let b=k.get(a);if(b){try{b.close()}catch{}k.delete(a)}}function u(){if(j){try{j.close()}catch{}j=null}}function v(){for(let[a]of k)t(a);u()}function w(){let a=m();return i().existsSync(a)?i().readdirSync(a,{withFileTypes:!0}).filter(a=>a.isDirectory()).filter(b=>i().existsSync(g().join(a,b.name,"site.sqlite"))).map(a=>a.name):[]}function x(a){let b=m();return g().join(b,a,"site.sqlite")}function y(){let a=l();return g().join(a,"osws.sqlite")}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94471:(a,b,c)=>{"use strict";c.d(b,{XO:()=>h,ad:()=>g,p1:()=>i});var d=c(55511);let e=null;function f(){if(!e){let{getCoreDatabase:a}=c(74051);e=a()}return e}function g(a){try{var b;let c=f();if(!c)return;let e=(b=a.ip)&&"unknown"!==b?(0,d.createHash)("sha256").update(b).digest("hex").substring(0,8):"unknown",g=a.userAgent?.substring(0,255)||"";c.prepare(`
INSERT INTO request_log (site_id, path, status_code, ip_hash, user_agent, timestamp)
VALUES (?, ?, ?, ?, ?, datetime('now'))
- `).run(e.siteId,e.path,e.statusCode,n,o)}catch(e){console.error("[RequestLogger] Failed to log request:",e)}}function i(e=24){try{let e=a();if(!e)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let t=e.prepare(`
+ `).run(a.siteId,a.path,a.statusCode,e,g)}catch(a){console.error("[RequestLogger] Failed to log request:",a)}}function h(a=24){try{let a=f();if(!a)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let b=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-1 hour')
- `).get(),r=e.prepare(`
+ `).get(),c=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
- `).get(),s=e.prepare(`
+ `).get(),d=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
AND status_code >= 400
- `).get(),n=e.prepare(`
+ `).get(),e=a.prepare(`
SELECT site_id as siteId, COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
GROUP BY site_id
ORDER BY count DESC
LIMIT 10
- `).all(),o=e.prepare(`
+ `).all(),g=a.prepare(`
SELECT site_id as siteId, path, status_code as statusCode, timestamp FROM request_log
WHERE status_code >= 400
ORDER BY timestamp DESC
LIMIT 10
- `).all();return{requestsLastHour:t.count,requestsLastDay:r.count,errorCount:s.count,topSites:n,recentErrors:o}}catch(e){return console.error("[RequestLogger] Failed to get stats:",e),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function u(e=7){try{let t=a();if(!t)return 0;return t.prepare(`
+ `).all();return{requestsLastHour:b.count,requestsLastDay:c.count,errorCount:d.count,topSites:e,recentErrors:g}}catch(a){return console.error("[RequestLogger] Failed to get stats:",a),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function i(a=7){try{let b=f();if(!b)return 0;return b.prepare(`
DELETE FROM request_log
WHERE timestamp < datetime('now', '-' || ? || ' days')
- `).run(e).changes}catch(e){return console.error("[RequestLogger] Failed to cleanup logs:",e),0}}},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50854:(e,t,r)=>{"use strict";r.r(t),r.d(t,{closeAllConnections:()=>y,closeCoreDatabase:()=>q,closeSiteDatabase:()=>E,deleteSiteDatabase:()=>w,getCoreDatabase:()=>m,getCoreDatabasePath:()=>j,getSiteDatabase:()=>h,getSiteDatabasePath:()=>S,listSiteIds:()=>R,siteExists:()=>x});var s=r(87550),n=r.n(s),a=r(33873),o=r.n(a),i=r(29021),u=r.n(i);let p=null,c=new Map;function l(){return process.env.DATA_DIR||o().join(process.cwd(),"data")}function d(){return o().join(process.cwd(),"sites")}function g(e){u().existsSync(e)||u().mkdirSync(e,{recursive:!0})}function f(e){e.pragma("journal_mode = WAL"),e.pragma("foreign_keys = ON"),e.pragma("synchronous = NORMAL"),e.pragma("cache_size = -64000"),e.pragma("temp_store = MEMORY")}function m(){if(p)return p;let e=l();g(e);let t=o().join(e,"osws.sqlite");return f(p=new(n())(t)),p}function h(e){let t=c.get(e);if(t)return t;let r=d(),s=o().join(r,e);g(s);let a=o().join(s,"site.sqlite"),i=new(n())(a);return f(i),c.set(e,i),i}function x(e){let t=d(),r=o().join(t,e,"site.sqlite");return u().existsSync(r)}function w(e){E(e);let t=d(),r=o().join(t,e);if(u().existsSync(r)){for(let e of u().readdirSync(r))u().unlinkSync(o().join(r,e));u().rmdirSync(r)}}function E(e){let t=c.get(e);if(t){try{t.close()}catch{}c.delete(e)}}function q(){if(p){try{p.close()}catch{}p=null}}function y(){for(let[e]of c)E(e);q()}function R(){let e=d();return u().existsSync(e)?u().readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(t=>u().existsSync(o().join(e,t.name,"site.sqlite"))).map(e=>e.name):[]}function S(e){let t=d();return o().join(t,e,"site.sqlite")}function j(){let e=l();return o().join(e,"osws.sqlite")}},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},87550:e=>{"use strict";e.exports=require("better-sqlite3")},96487:()=>{},97720:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>w,routeModule:()=>f,serverHooks:()=>x,workAsyncStorage:()=>m,workUnitAsyncStorage:()=>h});var s={};r.r(s),r.d(s,{GET:()=>g});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(29021),p=r(33873),c=r.n(p),l=r(19870);let d={html:"text/html",htm:"text/html",css:"text/css",js:"application/javascript",json:"application/json",png:"image/png",jpg:"image/jpeg",jpeg:"image/jpeg",gif:"image/gif",svg:"image/svg+xml",ico:"image/x-icon",webp:"image/webp",woff:"font/woff",woff2:"font/woff2",ttf:"font/ttf",eot:"application/vnd.ms-fontobject",txt:"text/plain",pdf:"application/pdf",xml:"application/xml"};async function g(e,{params:t}){let{id:r,path:s=[]}=await t,n=s.length>0?s.join("/"):"index.html";try{let t=c().join(process.cwd(),"public","sites",r,n);try{await u.promises.access(t)}catch{return(0,l.ad)({siteId:r,path:"/"+n,statusCode:404,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse("File not found",{status:404})}let s=await u.promises.readFile(t),a=d[n.split(".").pop()?.toLowerCase()||""]||"application/octet-stream";return(0,l.ad)({siteId:r,path:"/"+n,statusCode:200,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse(s.toString("utf-8"),{status:200,headers:{"Content-Type":a,"Cache-Control":"public, max-age=3600"}})}catch(t){return console.error("[Sites Route] Error:",t),(0,l.ad)({siteId:r,path:"/"+n,statusCode:500,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse("Internal server error",{status:500})}}let f=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/sites/[id]/[...path]/route",pathname:"/sites/[id]/[...path]",filename:"route",bundlePath:"app/sites/[id]/[...path]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:m,workUnitAsyncStorage:h,serverHooks:x}=f;function w(){return(0,o.patchFetch)({workAsyncStorage:m,workUnitAsyncStorage:h})}}};var t=require("../../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580],()=>r(97720));module.exports=s})();
\ No newline at end of file
+ `).run(a).changes}catch(a){return console.error("[RequestLogger] Failed to cleanup logs:",a),0}}},96487:()=>{}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=52222));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/[...path]/route.js.nft.json b/.next/server/app/sites/[id]/[...path]/route.js.nft.json
index 0ef753222fcc632d506544ded3d4493611f21e21..4849765f4832b2468b246d80ce00953afaba86c3 100644
--- a/.next/server/app/sites/[id]/[...path]/route.js.nft.json
+++ b/.next/server/app/sites/[id]/[...path]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/4447.js","../../../../chunks/580.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../../data/osws.sqlite","../../../../../../data/osws.sqlite-shm","../../../../../../data/osws.sqlite-wal","../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../node_modules/better-sqlite3/package.json","../../../../../../node_modules/bindings/bindings.js","../../../../../../node_modules/bindings/package.json","../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../package.json","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/aukioloajat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/hinnat.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/palvelut.html","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/robots.txt","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/scripts/main.js","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/sitemap.xml","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/styles/style.css","../../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/yhteystiedot.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/about.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/plan.md","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/players.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/robots.txt","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/schedule.html","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/scripts/main.js","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/sitemap.xml","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/styles/style.css","../../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/testing.txt","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/benefits.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/equipment.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/getting-started.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/scripts/main.js","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/styles/style.css","../../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/training.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/robots.txt","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/scripts/main.js","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/sitemap.xml","../../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/styles/style.css","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/contact.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/scripts/main.js","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/services.html","../../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/about.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/plan.md","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/players.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/robots.txt","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/schedule.html","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/scripts/main.js","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/sitemap.xml","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/styles/style.css","../../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/testing.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/contact.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/services.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/data/testimonials.json","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/css/styles.css","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/public/js/main.js","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/robots.txt","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/services.html","../../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/PLAN.md","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/about.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/contact.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/practice-areas.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/pricing.html","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/robots.txt","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/scripts/main.js","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/sitemap.xml","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles.css","../../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/styles/style.css","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/PLAN.md","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/about.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/contact.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/robots.txt","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/scripts/main.js","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/sitemap.xml","../../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/benefits.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/equipment.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/getting-started.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/robots.txt","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/scripts/main.js","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/sitemap.xml","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/styles/style.css","../../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/training.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/plan.md","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/robots.txt","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/scripts/main.js","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/sitemap.xml","../../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/styles/style.css","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/plan.md","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/robots.txt","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/animations.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/scripts/main.js","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/sitemap.xml","../../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/styles/style.css","../../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/robots.txt","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/scripts/main.js","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/sitemap.xml","../../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/styles/style.css","../../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../../package.json","../../../../chunks/1692.js","../../../../chunks/4586.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/[...path]/route_client-reference-manifest.js b/.next/server/app/sites/[id]/[...path]/route_client-reference-manifest.js
index 4ae4bc72723c99088c8126e9b55e751c99aff401..cbc13687a8f0e01fc233b7c779e6564221afe9e9 100644
--- a/.next/server/app/sites/[id]/[...path]/route_client-reference-manifest.js
+++ b/.next/server/app/sites/[id]/[...path]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/sites/[id]/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/sites/[id]/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/route.js b/.next/server/app/sites/[id]/route.js
index 7beb428fa4c6432441915d1a60718d828467319e..4eaa07c9c6b9e9618511a489c131abe7d95f5d26 100644
--- a/.next/server/app/sites/[id]/route.js
+++ b/.next/server/app/sites/[id]/route.js
@@ -1,28 +1,28 @@
-(()=>{var e={};e.id=6871,e.ids=[6871],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19870:(e,t,r)=>{"use strict";r.d(t,{XO:()=>i,ad:()=>o,p1:()=>u});var s=r(55511);let n=null;function a(){if(!n){let{getCoreDatabase:e}=r(50854);n=e()}return n}function o(e){try{var t;let r=a();if(!r)return;let n=(t=e.ip)&&"unknown"!==t?(0,s.createHash)("sha256").update(t).digest("hex").substring(0,8):"unknown",o=e.userAgent?.substring(0,255)||"";r.prepare(`
+(()=>{var a={};a.id=6871,a.ids=[6871],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},57986:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z});var e=c(95736),f=c(9117),g=c(4044),h=c(39326),i=c(32324),j=c(261),k=c(54290),l=c(85328),m=c(38928),n=c(46595),o=c(3421),p=c(17679),q=c(41681),r=c(63446),s=c(86439),t=c(51356),u=c(10641),v=c(29021),w=c(33873),x=c.n(w),y=c(94471);async function z(a,{params:b}){let c=200,{id:d}=await b;try{let b=x().join(process.cwd(),"public","sites",d,"index.html");try{await v.promises.access(b)}catch{return c=404,(0,y.ad)({siteId:d,path:"/index.html",statusCode:c,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse("Site not found",{status:404})}let e=await v.promises.readFile(b,"utf-8");return(0,y.ad)({siteId:d,path:"/index.html",statusCode:c,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse(e,{status:200,headers:{"Content-Type":"text/html","Cache-Control":"public, max-age=3600"}})}catch(b){return console.error("[Sites Route] Error:",b),(0,y.ad)({siteId:d,path:"/index.html",statusCode:500,ip:a.headers.get("x-forwarded-for")||a.headers.get("x-real-ip")||"unknown",userAgent:a.headers.get("user-agent")||""}),new u.NextResponse("Internal server error",{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/sites/[id]/route",pathname:"/sites/[id]",filename:"route",bundlePath:"app/sites/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route.ts",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){var d;let e="/sites/[id]/route";"/index"===e&&(e="/");let g=await A.prepare(a,b,{srcPage:e,multiZoneDraftMode:!1});if(!g)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:v,nextConfig:w,isDraftMode:x,prerenderManifest:y,routerServerContext:z,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D}=g,E=(0,j.normalizeAppPath)(e),F=!!(y.dynamicRoutes[E]||y.routes[D]);if(F&&!x){let a=!!y.routes[D],b=y.dynamicRoutes[E];if(b&&!1===b.fallback&&!a)throw new s.NoFallbackError}let G=null;!F||A.isDev||x||(G="/index"===(G=D)?"/":G);let H=!0===A.isDev||!F,I=F&&!H,J=a.method||"GET",K=(0,i.getTracer)(),L=K.getActiveScopeSpan(),M={params:v,prerenderManifest:y,renderOpts:{experimental:{cacheComponents:!!w.experimental.cacheComponents,authInterrupts:!!w.experimental.authInterrupts},supportsDynamicResponse:H,incrementalCache:(0,h.getRequestMeta)(a,"incrementalCache"),cacheLifeProfiles:null==(d=w.experimental)?void 0:d.cacheLife,isRevalidate:I,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d)=>A.onRequestError(a,b,d,z)},sharedContext:{buildId:u}},N=new k.NodeNextRequest(a),O=new k.NodeNextResponse(b),P=l.NextRequestAdapter.fromNodeNextRequest(N,(0,l.signalFromNodeResponse)(b));try{let d=async c=>A.handle(P,M).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let d=K.getRootSpanAttributes();if(!d)return;if(d.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${d.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=d.get("next.route");if(e){let a=`${J} ${e}`;c.setAttributes({"next.route":e,"http.route":e,"next.span_name":a}),c.updateName(a)}else c.updateName(`${J} ${a.url}`)}),g=async g=>{var i,j;let k=async({previousCacheEntry:f})=>{try{if(!(0,h.getRequestMeta)(a,"minimalMode")&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let e=await d(g);a.fetchMetrics=M.renderOpts.fetchMetrics;let i=M.renderOpts.pendingWaitUntil;i&&c.waitUntil&&(c.waitUntil(i),i=void 0);let j=M.renderOpts.collectedTags;if(!F)return await (0,o.I)(N,O,e,M.renderOpts.pendingWaitUntil),null;{let a=await e.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(e.headers);j&&(b[r.NEXT_CACHE_TAGS_HEADER]=j),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==M.renderOpts.collectedRevalidate&&!(M.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&M.renderOpts.collectedRevalidate,d=void 0===M.renderOpts.collectedExpire||M.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:M.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:e.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:d}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:e,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})},z),b}},l=await A.handleResponse({req:a,nextConfig:w,cacheKey:G,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:y,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:k,waitUntil:c.waitUntil});if(!F)return null;if((null==l||null==(i=l.value)?void 0:i.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==l||null==(j=l.value)?void 0:j.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});(0,h.getRequestMeta)(a,"minimalMode")||b.setHeader("x-nextjs-cache",B?"REVALIDATED":l.isMiss?"MISS":l.isStale?"STALE":"HIT"),x&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let m=(0,p.fromNodeOutgoingHttpHeaders)(l.value.headers);return(0,h.getRequestMeta)(a,"minimalMode")&&F||m.delete(r.NEXT_CACHE_TAGS_HEADER),!l.cacheControl||b.getHeader("Cache-Control")||m.get("Cache-Control")||m.set("Cache-Control",(0,q.getCacheControlHeader)(l.cacheControl)),await (0,o.I)(N,O,new Response(l.value.body,{headers:m,status:l.value.status||200})),null};L?await g(L):await K.withPropagatedContext(a.headers,()=>K.trace(m.BaseServerSpan.handleRequest,{spanName:`${J} ${a.url}`,kind:i.SpanKind.SERVER,attributes:{"http.method":J,"http.target":a.url}},g))}catch(b){if(b instanceof s.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:E,routeType:"route",revalidateReason:(0,n.c)({isRevalidate:I,isOnDemandRevalidate:B})}),F)throw b;return await (0,o.I)(N,O,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},74051:(a,b,c)=>{"use strict";c.r(b),c.d(b,{closeAllConnections:()=>v,closeCoreDatabase:()=>u,closeSiteDatabase:()=>t,deleteSiteDatabase:()=>s,getCoreDatabase:()=>p,getCoreDatabasePath:()=>y,getSiteDatabase:()=>q,getSiteDatabasePath:()=>x,listSiteIds:()=>w,siteExists:()=>r});var d=c(87550),e=c.n(d),f=c(33873),g=c.n(f),h=c(29021),i=c.n(h);let j=null,k=new Map;function l(){return process.env.DATA_DIR||g().join(process.cwd(),"data")}function m(){return g().join(process.cwd(),"sites")}function n(a){i().existsSync(a)||i().mkdirSync(a,{recursive:!0})}function o(a){a.pragma("journal_mode = WAL"),a.pragma("foreign_keys = ON"),a.pragma("synchronous = NORMAL"),a.pragma("cache_size = -64000"),a.pragma("temp_store = MEMORY")}function p(){if(j)return j;let a=l();n(a);let b=g().join(a,"osws.sqlite");return o(j=new(e())(b)),j}function q(a){let b=k.get(a);if(b)return b;let c=m(),d=g().join(c,a);n(d);let f=g().join(d,"site.sqlite"),h=new(e())(f);return o(h),k.set(a,h),h}function r(a){let b=m(),c=g().join(b,a,"site.sqlite");return i().existsSync(c)}function s(a){t(a);let b=m(),c=g().join(b,a);if(i().existsSync(c)){for(let a of i().readdirSync(c))i().unlinkSync(g().join(c,a));i().rmdirSync(c)}}function t(a){let b=k.get(a);if(b){try{b.close()}catch{}k.delete(a)}}function u(){if(j){try{j.close()}catch{}j=null}}function v(){for(let[a]of k)t(a);u()}function w(){let a=m();return i().existsSync(a)?i().readdirSync(a,{withFileTypes:!0}).filter(a=>a.isDirectory()).filter(b=>i().existsSync(g().join(a,b.name,"site.sqlite"))).map(a=>a.name):[]}function x(a){let b=m();return g().join(b,a,"site.sqlite")}function y(){let a=l();return g().join(a,"osws.sqlite")}},78335:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")},94471:(a,b,c)=>{"use strict";c.d(b,{XO:()=>h,ad:()=>g,p1:()=>i});var d=c(55511);let e=null;function f(){if(!e){let{getCoreDatabase:a}=c(74051);e=a()}return e}function g(a){try{var b;let c=f();if(!c)return;let e=(b=a.ip)&&"unknown"!==b?(0,d.createHash)("sha256").update(b).digest("hex").substring(0,8):"unknown",g=a.userAgent?.substring(0,255)||"";c.prepare(`
INSERT INTO request_log (site_id, path, status_code, ip_hash, user_agent, timestamp)
VALUES (?, ?, ?, ?, ?, datetime('now'))
- `).run(e.siteId,e.path,e.statusCode,n,o)}catch(e){console.error("[RequestLogger] Failed to log request:",e)}}function i(e=24){try{let e=a();if(!e)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let t=e.prepare(`
+ `).run(a.siteId,a.path,a.statusCode,e,g)}catch(a){console.error("[RequestLogger] Failed to log request:",a)}}function h(a=24){try{let a=f();if(!a)return{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]};let b=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-1 hour')
- `).get(),r=e.prepare(`
+ `).get(),c=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
- `).get(),s=e.prepare(`
+ `).get(),d=a.prepare(`
SELECT COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
AND status_code >= 400
- `).get(),n=e.prepare(`
+ `).get(),e=a.prepare(`
SELECT site_id as siteId, COUNT(*) as count FROM request_log
WHERE timestamp > datetime('now', '-24 hours')
GROUP BY site_id
ORDER BY count DESC
LIMIT 10
- `).all(),o=e.prepare(`
+ `).all(),g=a.prepare(`
SELECT site_id as siteId, path, status_code as statusCode, timestamp FROM request_log
WHERE status_code >= 400
ORDER BY timestamp DESC
LIMIT 10
- `).all();return{requestsLastHour:t.count,requestsLastDay:r.count,errorCount:s.count,topSites:n,recentErrors:o}}catch(e){return console.error("[RequestLogger] Failed to get stats:",e),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function u(e=7){try{let t=a();if(!t)return 0;return t.prepare(`
+ `).all();return{requestsLastHour:b.count,requestsLastDay:c.count,errorCount:d.count,topSites:e,recentErrors:g}}catch(a){return console.error("[RequestLogger] Failed to get stats:",a),{requestsLastHour:0,requestsLastDay:0,errorCount:0,topSites:[],recentErrors:[]}}}function i(a=7){try{let b=f();if(!b)return 0;return b.prepare(`
DELETE FROM request_log
WHERE timestamp < datetime('now', '-' || ? || ' days')
- `).run(e).changes}catch(e){return console.error("[RequestLogger] Failed to cleanup logs:",e),0}}},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:e=>{"use strict";e.exports=require("path")},38372:(e,t,r)=>{"use strict";r.r(t),r.d(t,{patchFetch:()=>x,routeModule:()=>g,serverHooks:()=>f,workAsyncStorage:()=>h,workUnitAsyncStorage:()=>m});var s={};r.r(s),r.d(s,{GET:()=>l});var n=r(96559),a=r(48088),o=r(37719),i=r(32190),u=r(29021),c=r(33873),d=r.n(c),p=r(19870);async function l(e,{params:t}){let r=200,{id:s}=await t;try{let t=d().join(process.cwd(),"public","sites",s,"index.html");try{await u.promises.access(t)}catch{return r=404,(0,p.ad)({siteId:s,path:"/index.html",statusCode:r,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse("Site not found",{status:404})}let n=await u.promises.readFile(t,"utf-8");return(0,p.ad)({siteId:s,path:"/index.html",statusCode:r,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse(n,{status:200,headers:{"Content-Type":"text/html","Cache-Control":"public, max-age=3600"}})}catch(t){return console.error("[Sites Route] Error:",t),(0,p.ad)({siteId:s,path:"/index.html",statusCode:500,ip:e.headers.get("x-forwarded-for")||e.headers.get("x-real-ip")||"unknown",userAgent:e.headers.get("user-agent")||""}),new i.NextResponse("Internal server error",{status:500})}}let g=new n.AppRouteRouteModule({definition:{kind:a.RouteKind.APP_ROUTE,page:"/sites/[id]/route",pathname:"/sites/[id]",filename:"route",bundlePath:"app/sites/[id]/route"},resolvedPagePath:"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route.ts",nextConfigOutput:"standalone",userland:s}),{workAsyncStorage:h,workUnitAsyncStorage:m,serverHooks:f}=g;function x(){return(0,o.patchFetch)({workAsyncStorage:h,workUnitAsyncStorage:m})}},44870:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50854:(e,t,r)=>{"use strict";r.r(t),r.d(t,{closeAllConnections:()=>y,closeCoreDatabase:()=>q,closeSiteDatabase:()=>w,deleteSiteDatabase:()=>E,getCoreDatabase:()=>m,getCoreDatabasePath:()=>C,getSiteDatabase:()=>f,getSiteDatabasePath:()=>S,listSiteIds:()=>R,siteExists:()=>x});var s=r(87550),n=r.n(s),a=r(33873),o=r.n(a),i=r(29021),u=r.n(i);let c=null,d=new Map;function p(){return process.env.DATA_DIR||o().join(process.cwd(),"data")}function l(){return o().join(process.cwd(),"sites")}function g(e){u().existsSync(e)||u().mkdirSync(e,{recursive:!0})}function h(e){e.pragma("journal_mode = WAL"),e.pragma("foreign_keys = ON"),e.pragma("synchronous = NORMAL"),e.pragma("cache_size = -64000"),e.pragma("temp_store = MEMORY")}function m(){if(c)return c;let e=p();g(e);let t=o().join(e,"osws.sqlite");return h(c=new(n())(t)),c}function f(e){let t=d.get(e);if(t)return t;let r=l(),s=o().join(r,e);g(s);let a=o().join(s,"site.sqlite"),i=new(n())(a);return h(i),d.set(e,i),i}function x(e){let t=l(),r=o().join(t,e,"site.sqlite");return u().existsSync(r)}function E(e){w(e);let t=l(),r=o().join(t,e);if(u().existsSync(r)){for(let e of u().readdirSync(r))u().unlinkSync(o().join(r,e));u().rmdirSync(r)}}function w(e){let t=d.get(e);if(t){try{t.close()}catch{}d.delete(e)}}function q(){if(c){try{c.close()}catch{}c=null}}function y(){for(let[e]of d)w(e);q()}function R(){let e=l();return u().existsSync(e)?u().readdirSync(e,{withFileTypes:!0}).filter(e=>e.isDirectory()).filter(t=>u().existsSync(o().join(e,t.name,"site.sqlite"))).map(e=>e.name):[]}function S(e){let t=l();return o().join(t,e,"site.sqlite")}function C(){let e=p();return o().join(e,"osws.sqlite")}},55511:e=>{"use strict";e.exports=require("crypto")},63033:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},78335:()=>{},87550:e=>{"use strict";e.exports=require("better-sqlite3")},96487:()=>{}};var t=require("../../../webpack-runtime.js");t.C(e);var r=e=>t(t.s=e),s=t.X(0,[4447,580],()=>r(38372));module.exports=s})();
\ No newline at end of file
+ `).run(a).changes}catch(a){return console.error("[RequestLogger] Failed to cleanup logs:",a),0}}},96487:()=>{}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[4586,1692],()=>b(b.s=57986));module.exports=c})();
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/route.js.nft.json b/.next/server/app/sites/[id]/route.js.nft.json
index 8bcaf1138f607ca5209facf1c880634b3e31b07a..9b48567012e3c360f419676d2910057272abbb07 100644
--- a/.next/server/app/sites/[id]/route.js.nft.json
+++ b/.next/server/app/sites/[id]/route.js.nft.json
@@ -1 +1 @@
-{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot-instance.js","../../../../../node_modules/next/dist/server/app-render/clean-async-snapshot.external.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/4447.js","../../../chunks/580.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
+{"version":1,"files":["../../../../../data/osws.sqlite","../../../../../data/osws.sqlite-shm","../../../../../data/osws.sqlite-wal","../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../node_modules/better-sqlite3/package.json","../../../../../node_modules/bindings/bindings.js","../../../../../node_modules/bindings/package.json","../../../../../node_modules/file-uri-to-path/index.js","../../../../../node_modules/file-uri-to-path/package.json","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/lib/cache-handlers/default.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../package.json","../../../../../public/sites/039b8554-0a87-42f7-a969-570c3fa99cb5/index.html","../../../../../public/sites/18efcdfd-9309-45d1-bf13-82a968da7216/index.html","../../../../../public/sites/20af6c75-4c1b-4c53-94bc-fa2ff7e445fa/index.html","../../../../../public/sites/22950e26-4edf-45c9-8719-b212f697a8b1/index.html","../../../../../public/sites/505b4e67-9ba5-4396-9a76-9368a6848874/index.html","../../../../../public/sites/6333fd6d-b2bf-4eb2-a48e-762b7a7be8b7/index.html","../../../../../public/sites/69d3cb0a-3cd3-4d41-981c-3d4ba5c978cc/index.html","../../../../../public/sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/index.html","../../../../../public/sites/8a671c27-1498-4164-9cdf-5429469f45f6/index.html","../../../../../public/sites/9e5a46cf-1efd-4377-9da5-1e2eb63b8ca4/index.html","../../../../../public/sites/a57c81e5-0175-49b9-b333-d0a4d1094271/index.html","../../../../../public/sites/af3ba693-4c5a-4564-9c93-0c9b9f3d74f1/index.html","../../../../../public/sites/be28436b-5a58-4c1b-a1da-ec28036b41e3/index.html","../../../../../public/sites/ea724ee7-fc57-4bde-a505-e083d72d52b2/index.html","../../../../../sites/7882e8c5-bdb9-4f0c-851c-cb9657291796/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-shm","../../../../../sites/8a671c27-1498-4164-9cdf-5429469f45f6/site.sqlite-wal","../../../../package.json","../../../chunks/1692.js","../../../chunks/4586.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]}
\ No newline at end of file
diff --git a/.next/server/app/sites/[id]/route_client-reference-manifest.js b/.next/server/app/sites/[id]/route_client-reference-manifest.js
index eb2fb0b9cb33788870a49ed3f659d79bab88eade..b76bb459fcedad57bbef28d4ee5902776e623a61 100644
--- a/.next/server/app/sites/[id]/route_client-reference-manifest.js
+++ b/.next/server/app/sites/[id]/route_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/sites/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"3727":{"*":{"id":"12913","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"94593","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"69001","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"53014","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"35656","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"97173","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"43555","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"40099","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"20435","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"30268","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"62763","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"99197","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"28827","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"38243","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"86346","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"27924","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":90894,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":94970,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":26614,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":46975,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":87555,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":74911,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":59665,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":31295,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":25388,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":61321,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":15851,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":9755,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":56382,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":85410,"name":"*","chunks":["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":19009,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":3727,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":57161,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":40796,"name":"*","chunks":["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","4316","static/chunks/ad2866b8-a4659a388c5e0680.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5194","static/chunks/5194-99a431c0b0218919.js","5226","static/chunks/5226-756b348ecc09845d.js","1645","static/chunks/1645-ba208cf843cc4ff4.js","8974","static/chunks/app/page-f25d0cf644cab125.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":59054,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/7b8717d9d84180b1.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route":[]},"rscModuleMapping":{"3727":{"*":{"id":"9911","name":"*","chunks":[],"async":false}},"15851":{"*":{"id":"80363","name":"*","chunks":[],"async":false}},"19009":{"*":{"id":"36903","name":"*","chunks":[],"async":false}},"25388":{"*":{"id":"41900","name":"*","chunks":[],"async":false}},"26614":{"*":{"id":"88170","name":"*","chunks":[],"async":false}},"31295":{"*":{"id":"31307","name":"*","chunks":[],"async":false}},"40796":{"*":{"id":"90597","name":"*","chunks":[],"async":false}},"46975":{"*":{"id":"49477","name":"*","chunks":[],"async":false}},"57161":{"*":{"id":"49441","name":"*","chunks":[],"async":false}},"59054":{"*":{"id":"82623","name":"*","chunks":[],"async":false}},"59665":{"*":{"id":"46577","name":"*","chunks":[],"async":false}},"61321":{"*":{"id":"39035","name":"*","chunks":[],"async":false}},"74911":{"*":{"id":"12089","name":"*","chunks":[],"async":false}},"85410":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"87555":{"*":{"id":"29345","name":"*","chunks":[],"async":false}},"90894":{"*":{"id":"16444","name":"*","chunks":[],"async":false}},"94970":{"*":{"id":"16042","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/sites/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"9766":{"*":{"id":"77526","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"78922","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"68495","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"12263","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"82016","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"31152","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"83133","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"54160","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"92130","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"75170","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"38502","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"82146","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"31603","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"11987","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"52148","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"67600","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"29234","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57150,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-page.js":{"id":81959,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/client-segment.js":{"id":17989,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":63886,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/layout-router.js":{"id":9766,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":15278,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":98924,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":24431,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":80622,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/tanstack-query-provider.tsx":{"id":46131,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/providers/theme-provider.tsx":{"id":98124,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/ui/sonner.tsx":{"id":70240,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"Inter\",\"arguments\":[{\"variable\":\"--font-inter-sans\",\"subsets\":[\"latin\"]}],\"variableName\":\"inter\"}":{"id":85568,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/node_modules/next/font/google/target.css?{\"path\":\"app/layout.tsx\",\"import\":\"PT_Sans\",\"arguments\":[{\"variable\":\"--font-ptSans-mono\",\"subsets\":[\"latin\"],\"weight\":[\"400\",\"700\"]}],\"variableName\":\"ptSans\"}":{"id":80231,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/assets/globals.css":{"id":27408,"name":"*","chunks":["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/components/page-wrapper/index.tsx":{"id":43688,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/login/page.tsx":{"id":62112,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/admin/page.tsx":{"id":25782,"name":"*","chunks":[],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page.tsx":{"id":91367,"name":"*","chunks":["5948","static/chunks/06bf0ff1-101744fe776a5109.js","4316","static/chunks/ad2866b8-e13a3cf75ccf0eb8.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","9974","static/chunks/9974-f7789415a2178836.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6971","static/chunks/6971-b0cc891c05a94ee5.js","8974","static/chunks/app/page-0aeebd468c8e7784.js"],"async":false},"/Users/otto/Desktop/deepstudio/osw-studio-git/app/test-generation/page.tsx":{"id":84674,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/otto/Desktop/deepstudio/osw-studio-git/":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/layout":[{"inlined":false,"path":"static/css/048b1824021554f0.css"}],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/page":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/route":[],"/Users/otto/Desktop/deepstudio/osw-studio-git/app/sites/[id]/[...path]/route":[]},"rscModuleMapping":{"9766":{"*":{"id":"6060","name":"*","chunks":[],"async":false}},"15278":{"*":{"id":"7184","name":"*","chunks":[],"async":false}},"17989":{"*":{"id":"36893","name":"*","chunks":[],"async":false}},"24431":{"*":{"id":"73041","name":"*","chunks":[],"async":false}},"25782":{"*":{"id":"37734","name":"*","chunks":[],"async":false}},"27408":{"*":{"id":"94348","name":"*","chunks":[],"async":false}},"43688":{"*":{"id":"2054","name":"*","chunks":[],"async":false}},"46131":{"*":{"id":"69507","name":"*","chunks":[],"async":false}},"57150":{"*":{"id":"81170","name":"*","chunks":[],"async":false}},"62112":{"*":{"id":"7760","name":"*","chunks":[],"async":false}},"63886":{"*":{"id":"89748","name":"*","chunks":[],"async":false}},"70240":{"*":{"id":"20656","name":"*","chunks":[],"async":false}},"80622":{"*":{"id":"51384","name":"*","chunks":[],"async":false}},"81959":{"*":{"id":"23597","name":"*","chunks":[],"async":false}},"84674":{"*":{"id":"60940","name":"*","chunks":[],"async":false}},"91367":{"*":{"id":"17742","name":"*","chunks":[],"async":false}},"98124":{"*":{"id":"26262","name":"*","chunks":[],"async":false}},"98924":{"*":{"id":"69576","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/test-generation.html b/.next/server/app/test-generation.html
index 33d69269188be3aec62e97a0abf4711363878227..7216407a3759d9acfea181e0c5bab81b0b2ae22a 100644
--- a/.next/server/app/test-generation.html
+++ b/.next/server/app/test-generation.html
@@ -1,4 +1,4 @@
-Open Source Web Studio | Agentic AI Development 🎨
+Open Source Web Studio | Agentic AI Development 🎨
How to Interpret Test Results These tests validate basic code generation capabilities across different task types. A passing test means files were created/modified successfully. A failing test indicates the model couldn't complete the task or didn't produce expected outputs.
Tip: Select your preferred provider and model below to test specific configurations. The generation output will show you what the AI is thinking during execution.
💡
Cost Warning Running these tests can be very expensive and likely isn't necessary. It's cheaper and easier to just use good models and research community feedback about agentic capabilities.
This tester is largely for evaluating how models perform with OSW Studio's implementation and using those results to improve the agentic system.
Select Model Run Quick Tests (5 tests) ResetAdd hamburger menu to navbar
(ui) Add a mobile hamburger menu to the navbar. The hamburger should appear on screens smaller than 768px...
Create a modal dialog that can be opened with a button click. The modal should have a close button a...
Add contact form with validation
(ui) Add a contact form with fields for name, email, and message. Include client-side validation for requ...
Create a dropdown menu for the navigation. When hovering over "Services" link, show a dropdown with ...
Create image carousel
(ui) Create an image carousel/slider with next and previous buttons. It should display one image at a tim...
Change background to gradient
(style) Change the body background to a linear gradient from #ff8c42 to #e65100...
Add dark mode toggle
(style) Add a dark mode toggle button that switches the entire page between light and dark themes. Store the...
Create responsive grid layout
(style) Create a responsive grid layout with 3 columns on desktop, 2 on tablet, and 1 on mobile. Add 6 card ...
Add API fetch functionality
(javascript) Add a button that fetches data from https://jsonplaceholder.typicode.com/users and displays the user...
Create countdown timer
(javascript) Create a countdown timer that counts down from 60 seconds and displays the remaining time. Include s...
Build a todo list application
(complex) Build a todo list application with the ability to add tasks, mark them as complete, delete tasks, an...
\ No newline at end of file
+ Model Tester
Model Tester How to Interpret Test Results These tests validate basic code generation capabilities across different task types. A passing test means files were created/modified successfully. A failing test indicates the model couldn't complete the task or didn't produce expected outputs.
Tip: Select your preferred provider and model below to test specific configurations. The generation output will show you what the AI is thinking during execution.
💡
Cost Warning Running these tests can be very expensive and likely isn't necessary. It's cheaper and easier to just use good models and research community feedback about agentic capabilities.
This tester is largely for evaluating how models perform with OSW Studio's implementation and using those results to improve the agentic system.
Select Model Run Quick Tests (5 tests) ResetAdd hamburger menu to navbar
(ui) Add a mobile hamburger menu to the navbar. The hamburger should appear on screens smaller than 768px...
Create a modal dialog that can be opened with a button click. The modal should have a close button a...
Add contact form with validation
(ui) Add a contact form with fields for name, email, and message. Include client-side validation for requ...
Create a dropdown menu for the navigation. When hovering over "Services" link, show a dropdown with ...
Create image carousel
(ui) Create an image carousel/slider with next and previous buttons. It should display one image at a tim...
Change background to gradient
(style) Change the body background to a linear gradient from #ff8c42 to #e65100...
Add dark mode toggle
(style) Add a dark mode toggle button that switches the entire page between light and dark themes. Store the...
Create responsive grid layout
(style) Create a responsive grid layout with 3 columns on desktop, 2 on tablet, and 1 on mobile. Add 6 card ...
Add API fetch functionality
(javascript) Add a button that fetches data from https://jsonplaceholder.typicode.com/users and displays the user...
Create countdown timer
(javascript) Create a countdown timer that counts down from 60 seconds and displays the remaining time. Include s...
Build a todo list application
(complex) Build a todo list application with the ability to add tasks, mark them as complete, delete tasks, an...
\ No newline at end of file
diff --git a/.next/server/app/test-generation.rsc b/.next/server/app/test-generation.rsc
index e87ec7a0df786f00ba9ec3623d128a205d7b20a2..35f103e5fde74088f768fe6d58129ef38e355f67 100644
--- a/.next/server/app/test-generation.rsc
+++ b/.next/server/app/test-generation.rsc
@@ -1,28 +1,26 @@
1:"$Sreact.fragment"
-2:I[61321,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"ThemeProvider"]
-3:I[15851,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"Toaster"]
-4:I[25388,["6671","static/chunks/6671-78ed01c4e5154d89.js","2138","static/chunks/2138-18d4ca002a920f5d.js","7177","static/chunks/app/layout-19d4da7b6d1a11dd.js"],"default"]
-5:I[87555,[],""]
-6:I[31295,[],""]
-7:I[90894,[],"ClientPageRoot"]
-8:I[59054,["5948","static/chunks/06bf0ff1-2f6b5dbae626a171.js","6671","static/chunks/6671-78ed01c4e5154d89.js","4792","static/chunks/4792-f97f5e70e2ff5861.js","5226","static/chunks/5226-756b348ecc09845d.js","6932","static/chunks/app/test-generation/page-9a29f57c36cce1f2.js"],"default"]
-b:I[59665,[],"OutletBoundary"]
-e:I[74911,[],"AsyncMetadataOutlet"]
-10:I[59665,[],"ViewportBoundary"]
-12:I[59665,[],"MetadataBoundary"]
-14:I[26614,[],""]
+2:I[98124,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"ThemeProvider"]
+3:I[70240,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"Toaster"]
+4:I[46131,["8720","static/chunks/8720-c9ee040177c11cae.js","4841","static/chunks/4841-9c023033845750e4.js","7177","static/chunks/app/layout-f8fe6cebce585a15.js"],"default"]
+5:I[9766,[],""]
+6:I[98924,[],""]
+7:I[81959,[],"ClientPageRoot"]
+8:I[84674,["5948","static/chunks/06bf0ff1-101744fe776a5109.js","8720","static/chunks/8720-c9ee040177c11cae.js","8111","static/chunks/8111-afa4b6ab5893fd8c.js","7047","static/chunks/7047-8ed7f297ea0641fa.js","6932","static/chunks/app/test-generation/page-3f2a8abff861f1b3.js"],"default"]
+b:I[24431,[],"OutletBoundary"]
+d:I[15278,[],"AsyncMetadataOutlet"]
+f:I[24431,[],"ViewportBoundary"]
+11:I[24431,[],"MetadataBoundary"]
+12:"$Sreact.suspense"
+14:I[57150,[],""]
:HL["/_next/static/media/58f662ed5ba12a72-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/c3f6eb667c0186c5-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
-:HL["/_next/static/css/7b8717d9d84180b1.css","style"]
-0:{"P":null,"b":"E66ReztlUunPgDOKdXxsh","p":"","c":["","test-generation"],"i":false,"f":[[["",{"children":["test-generation",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7b8717d9d84180b1.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["test-generation",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc","$Ld",["$","$Le",null,{"promise":"$@f"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,["$","$1","wfvPgh02477nhLP3-T0yxv",{"children":[["$","$L10",null,{"children":"$L11"}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],["$","$L12",null,{"children":"$L13"}]]}],false]],"m":"$undefined","G":["$14","$undefined"],"s":false,"S":true}
-15:"$Sreact.suspense"
-16:I[74911,[],"AsyncMetadata"]
+:HL["/_next/static/css/048b1824021554f0.css","style"]
+0:{"P":null,"b":"HOMmT77GBF_yHKBIDvc4Q","p":"","c":["","test-generation"],"i":false,"f":[[["",{"children":["test-generation",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/048b1824021554f0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":["$","body",null,{"className":"__variable_f367f3 __variable_438d47 antialiased bg-background h-[100dvh] overflow-hidden","suppressHydrationWarning":true,"children":["$","$L2",null,{"children":[["$","$L3",null,{"richColors":true,"position":"bottom-center"}],["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]}]}]]}],{"children":["test-generation",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","searchParams":{},"params":{},"promises":["$@9","$@a"]}],null,["$","$Lb",null,{"children":["$Lc",["$","$Ld",null,{"promise":"$@e"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Lf",null,{"children":"$L10"}],["$","meta",null,{"name":"next-size-adjust","content":""}]],["$","$L11",null,{"children":["$","div",null,{"hidden":true,"children":["$","$12",null,{"fallback":null,"children":"$L13"}]}]}]]}],false]],"m":"$undefined","G":["$14",[]],"s":false,"S":true}
9:{}
-a:{}
-13:["$","div",null,{"hidden":true,"children":["$","$15",null,{"fallback":null,"children":["$","$L16",null,{"promise":"$@17"}]}]}]
-d:null
-11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
+a:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params"
+10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, maximum-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#000000"}]]
c:null
-f:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}]],"error":null,"digest":"$undefined"}
-17:{"metadata":"$f:metadata","error":null,"digest":"$undefined"}
+15:I[80622,[],"IconMark"]
+e:{"metadata":[["$","title","0",{"children":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","1",{"name":"description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","2",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","3",{"name":"apple-mobile-web-app-title","content":"OSW-Studio"}],["$","meta","4",{"name":"apple-mobile-web-app-status-bar-style","content":"black-translucent"}],["$","meta","5",{"property":"og:title","content":"Open Source Web Studio | Agentic AI Development 🎨"}],["$","meta","6",{"property":"og:description","content":"Open Source Web Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","7",{"property":"og:url","content":"https://huggingface.co/spaces/otst/osw-studio"}],["$","meta","8",{"property":"og:site_name","content":"Open Source Web Studio"}],["$","meta","9",{"property":"og:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","meta","10",{"property":"og:image:width","content":"1200"}],["$","meta","11",{"property":"og:image:height","content":"630"}],["$","meta","12",{"property":"og:image:alt","content":"Open Source Web Studio - Agentic AI Development"}],["$","meta","13",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","14",{"name":"twitter:title","content":"OSW-Studio | Agentic AI Development 🎨"}],["$","meta","15",{"name":"twitter:description","content":"OSW-Studio is an AI-powered development environment that enables autonomous multi-file development through intelligent tool usage. Build complete applications with natural language."}],["$","meta","16",{"name":"twitter:image","content":"https://huggingface.co/spaces/otst/osw-studio/resolve/main/banner.png"}],["$","link","17",{"rel":"shortcut icon","href":"/osw-studio-logo.svg"}],["$","link","18",{"rel":"icon","href":"/osw-studio-logo.svg"}],["$","link","19",{"rel":"apple-touch-icon","href":"/osw-studio-logo.svg"}],["$","$L15","20",{}]],"error":null,"digest":"$undefined"}
+13:"$e:metadata"
diff --git a/.next/server/app/test-generation/page.js b/.next/server/app/test-generation/page.js
index d83a37533717a5ecf4ff94d7b13d25b79358f985..1e5932f9ca6814b90fe223a3c19b13bdedf08a90 100644
--- a/.next/server/app/test-generation/page.js
+++ b/.next/server/app/test-generation/page.js
@@ -1,4 +1,4 @@
-(()=>{var e={};e.id=6932,e.ids=[6932],e.modules={3295:e=>{"use strict";e.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:e=>{"use strict";e.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},19121:e=>{"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},27910:e=>{"use strict";e.exports=require("stream")},28354:e=>{"use strict";e.exports=require("util")},29021:e=>{"use strict";e.exports=require("fs")},29294:e=>{"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30268:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>C});var a=s(60687),i=s(43210),r=s(24934),n=s(26627);let o=`
+(()=>{var a={};a.id=6932,a.ids=[6932],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11987:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>A});var d=c(21124),e=c(38301),f=c(19217),g=c(22725);let h=`
@@ -49,7 +49,7 @@
-`,d=`/* Additional styles */
+