Dax Raad 6 месяцев назад
Родитель
Сommit
925284c6c1

+ 1 - 0
.gitignore

@@ -8,3 +8,4 @@ node_modules
 openapi.json
 playground
 tmp
+dist

+ 22 - 3
bun.lock

@@ -240,9 +240,6 @@
     "web-tree-sitter",
     "tree-sitter-bash",
   ],
-  "overrides": {
-    "zod": "4.1.8",
-  },
   "catalog": {
     "@hono/zod-validator": "0.4.2",
     "@tsconfig/node22": "22.0.2",
@@ -2942,6 +2939,8 @@
 
     "@ai-sdk/amazon-bedrock/aws4fetch": ["[email protected]", "", {}, "sha512-/djoAN709iY65ETD6LKCtyyEI04XIBP5xVvfmNxsEP0uJB5tyaGBztSryRr4HqMStr9R06PisQE7m9zDTXKu6g=="],
 
+    "@ai-sdk/amazon-bedrock/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "@ai-sdk/gateway/@ai-sdk/provider-utils": ["@ai-sdk/[email protected]", "", { "dependencies": { "@ai-sdk/provider": "2.0.0", "@standard-schema/spec": "^1.0.0", "eventsource-parser": "^3.0.3", "zod-to-json-schema": "^3.24.1" }, "peerDependencies": { "zod": "^3.25.76 || ^4" } }, "sha512-/iP1sKc6UdJgGH98OCly7sWJKv+J9G47PnTjIj40IJMUQKwDrUMyf7zOOfRtPwSuNifYhSoJQ4s1WltI65gJ/g=="],
 
     "@astrojs/cloudflare/@cloudflare/workers-types": ["@cloudflare/[email protected]", "", {}, "sha512-JjrYEvRn7cyALxwoFTw3XChaQneHSJOXqz2t5iKEpNzAnC2iPQU75rtTK/gw03Jjy4SHY5aEBh/uqQePtonZlA=="],
@@ -2952,6 +2951,8 @@
 
     "@astrojs/mdx/source-map": ["[email protected]", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
 
+    "@astrojs/sitemap/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "@aws-crypto/sha256-browser/@smithy/util-utf8": ["@smithy/[email protected]", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="],
 
     "@aws-crypto/util/@smithy/util-utf8": ["@smithy/[email protected]", "", { "dependencies": { "@smithy/util-buffer-from": "^2.2.0", "tslib": "^2.6.2" } }, "sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A=="],
@@ -2974,6 +2975,8 @@
 
     "@grpc/proto-loader/yargs": ["[email protected]", "", { "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" } }, "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w=="],
 
+    "@hono/zod-validator/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "@isaacs/cliui/string-width": ["[email protected]", "", { "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" } }, "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA=="],
 
     "@isaacs/cliui/wrap-ansi": ["[email protected]", "", { "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" } }, "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ=="],
@@ -2982,6 +2985,8 @@
 
     "@mdx-js/mdx/source-map": ["[email protected]", "", {}, "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ=="],
 
+    "@modelcontextprotocol/sdk/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "@npmcli/agent/lru-cache": ["[email protected]", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
 
     "@npmcli/arborist/lru-cache": ["[email protected]", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
@@ -3090,6 +3095,8 @@
 
     "astro/sharp": ["[email protected]", "", { "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.3", "semver": "^7.6.3" }, "optionalDependencies": { "@img/sharp-darwin-arm64": "0.33.5", "@img/sharp-darwin-x64": "0.33.5", "@img/sharp-libvips-darwin-arm64": "1.0.4", "@img/sharp-libvips-darwin-x64": "1.0.4", "@img/sharp-libvips-linux-arm": "1.0.5", "@img/sharp-libvips-linux-arm64": "1.0.4", "@img/sharp-libvips-linux-s390x": "1.0.4", "@img/sharp-libvips-linux-x64": "1.0.4", "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", "@img/sharp-libvips-linuxmusl-x64": "1.0.4", "@img/sharp-linux-arm": "0.33.5", "@img/sharp-linux-arm64": "0.33.5", "@img/sharp-linux-s390x": "0.33.5", "@img/sharp-linux-x64": "0.33.5", "@img/sharp-linuxmusl-arm64": "0.33.5", "@img/sharp-linuxmusl-x64": "0.33.5", "@img/sharp-wasm32": "0.33.5", "@img/sharp-win32-ia32": "0.33.5", "@img/sharp-win32-x64": "0.33.5" } }, "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw=="],
 
+    "astro/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "babel-plugin-jsx-dom-expressions/@babel/helper-module-imports": ["@babel/[email protected]", "", { "dependencies": { "@babel/types": "^7.18.6" } }, "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA=="],
 
     "bl/buffer": ["[email protected]", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
@@ -3162,6 +3169,8 @@
 
     "miniflare/youch": ["[email protected]", "", { "dependencies": { "@poppinss/colors": "^4.1.5", "@poppinss/dumper": "^0.6.4", "@speed-highlight/core": "^1.2.7", "cookie": "^1.0.2", "youch-core": "^0.3.3" } }, "sha512-rLfVLB4FgQneDr0dv1oddCVZmKjcJ6yX6mS4pU82Mq/Dt9a3cLZQ62pDBL4AUO+uVrCvtWz3ZFUL2HFAFJ/BXQ=="],
 
+    "miniflare/zod": ["[email protected]", "", {}, "sha512-EjIevzuJRiRPbVH4mGc8nApb/lVLKVpmUhAaR5R5doKGfAnGJ6Gr3CViAVjP+4FWSxCsybeWQdcgCtbX+7oZug=="],
+
     "minipass-fetch/minizlib": ["[email protected]", "", { "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" } }, "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="],
 
     "minipass-flush/minipass": ["[email protected]", "", { "dependencies": { "yallist": "^4.0.0" } }, "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="],
@@ -3212,6 +3221,8 @@
 
     "opencontrol/hono": ["[email protected]", "", {}, "sha512-Pst8FuGqz3L7tFF+u9Pu70eI0xa5S3LPUmrNd5Jm8nTHze9FxLTK9Kaj5g/k4UcwuJSXTP65SyHOPLrffpcAJg=="],
 
+    "opencontrol/zod": ["[email protected]", "", {}, "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ=="],
+
     "opencontrol/zod-to-json-schema": ["[email protected]", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A=="],
 
     "openid-client/jose": ["[email protected]", "", {}, "sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA=="],
@@ -3300,6 +3311,8 @@
 
     "uri-js/punycode": ["[email protected]", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
 
+    "vinxi/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "wrangler/esbuild": ["[email protected]", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.4", "@esbuild/android-arm": "0.25.4", "@esbuild/android-arm64": "0.25.4", "@esbuild/android-x64": "0.25.4", "@esbuild/darwin-arm64": "0.25.4", "@esbuild/darwin-x64": "0.25.4", "@esbuild/freebsd-arm64": "0.25.4", "@esbuild/freebsd-x64": "0.25.4", "@esbuild/linux-arm": "0.25.4", "@esbuild/linux-arm64": "0.25.4", "@esbuild/linux-ia32": "0.25.4", "@esbuild/linux-loong64": "0.25.4", "@esbuild/linux-mips64el": "0.25.4", "@esbuild/linux-ppc64": "0.25.4", "@esbuild/linux-riscv64": "0.25.4", "@esbuild/linux-s390x": "0.25.4", "@esbuild/linux-x64": "0.25.4", "@esbuild/netbsd-arm64": "0.25.4", "@esbuild/netbsd-x64": "0.25.4", "@esbuild/openbsd-arm64": "0.25.4", "@esbuild/openbsd-x64": "0.25.4", "@esbuild/sunos-x64": "0.25.4", "@esbuild/win32-arm64": "0.25.4", "@esbuild/win32-ia32": "0.25.4", "@esbuild/win32-x64": "0.25.4" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8pgjLUcUjcgDg+2Q4NYXnPbo/vncAY4UmyaCm0jZevERqCHZIaWwdJHkf8XQtu4AxSKCdvrUbT0XUr1IdZzI8Q=="],
 
     "wrangler/unenv": ["[email protected]", "", { "dependencies": { "defu": "^6.1.4", "exsolve": "^1.0.7", "ohash": "^2.0.11", "pathe": "^2.0.3", "ufo": "^1.6.1" } }, "sha512-Wj7/AMtE9MRnAXa6Su3Lk0LNCfqDYgfwVjwRFVum9U7wsto1imuHqk4kTm7Jni+5A0Hn7dttL6O/zjvUvoo+8A=="],
@@ -3314,6 +3327,10 @@
 
     "yargs/yargs-parser": ["[email protected]", "", {}, "sha512-rwu/ClNdSMpkSrUb+d6BRsSkLUq1fmfsY6TOpYzTwvwkg1/NRG85KBy3kq++A8LKQwX6lsu+aWad+2khvuXrqw=="],
 
+    "zod-to-json-schema/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
+    "zod-to-ts/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/internal-helpers": ["@astrojs/[email protected]", "", {}, "sha512-KCkCqR3Goym79soqEtbtLzJfqhTWMyVaizUi35FLzgGSzBotSw8DB1qwsu7U96ihOJgYhDk2nVPz+3LnXPeX6g=="],
 
     "@astrojs/mdx/@astrojs/markdown-remark/@astrojs/prism": ["@astrojs/[email protected]", "", { "dependencies": { "prismjs": "^1.30.0" } }, "sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ=="],
@@ -3582,6 +3599,8 @@
 
     "opencontrol/@modelcontextprotocol/sdk/pkce-challenge": ["[email protected]", "", {}, "sha512-ZBmhE1C9LcPoH9XZSdwiPtbPHZROwAnMy+kIFQVrnMCxY4Cudlz3gBOpzilgc0jOgRaiT3sIWfpMomW2ar2orQ=="],
 
+    "opencontrol/@modelcontextprotocol/sdk/zod": ["[email protected]", "", {}, "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ=="],
+
     "opencontrol/@modelcontextprotocol/sdk/zod-to-json-schema": ["[email protected]", "", { "peerDependencies": { "zod": "^3.24.1" } }, "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g=="],
 
     "pacote/tar/chownr": ["[email protected]", "", {}, "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="],

+ 1 - 1
cloud/app/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
cloud/core/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 79 - 79
cloud/function/sst-env.d.ts

@@ -6,91 +6,91 @@
 import "sst"
 declare module "sst" {
   export interface Resource {
-    ANTHROPIC_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    AUTH_API_URL: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    BASETEN_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    Console: {
-      type: "sst.cloudflare.SolidStart"
-      url: string
-    }
-    Database: {
-      database: string
-      host: string
-      password: string
-      port: number
-      type: "sst.sst.Linkable"
-      username: string
-    }
-    FIREWORKS_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_PRIVATE_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_ID_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_SECRET_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GOOGLE_CLIENT_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    HONEYCOMB_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    OPENAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_SECRET_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_WEBHOOK_SECRET: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    Web: {
-      type: "sst.cloudflare.Astro"
-      url: string
-    }
-    XAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "ANTHROPIC_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "AUTH_API_URL": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "BASETEN_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "Console": {
+      "type": "sst.cloudflare.SolidStart"
+      "url": string
+    }
+    "Database": {
+      "database": string
+      "host": string
+      "password": string
+      "port": number
+      "type": "sst.sst.Linkable"
+      "username": string
+    }
+    "FIREWORKS_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_PRIVATE_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_ID_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_SECRET_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GOOGLE_CLIENT_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "HONEYCOMB_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "OPENAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_SECRET_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_WEBHOOK_SECRET": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "Web": {
+      "type": "sst.cloudflare.Astro"
+      "url": string
+    }
+    "XAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
   }
 }
-// cloudflare
-import * as cloudflare from "@cloudflare/workers-types"
+// cloudflare 
+import * as cloudflare from "@cloudflare/workers-types";
 declare module "sst" {
   export interface Resource {
-    Api: cloudflare.Service
-    AuthApi: cloudflare.Service
-    AuthStorage: cloudflare.KVNamespace
-    Bucket: cloudflare.R2Bucket
-    LogProcessor: cloudflare.Service
+    "Api": cloudflare.Service
+    "AuthApi": cloudflare.Service
+    "AuthStorage": cloudflare.KVNamespace
+    "Bucket": cloudflare.R2Bucket
+    "LogProcessor": cloudflare.Service
   }
 }
 
 import "sst"
-export {}
+export {}

+ 79 - 79
cloud/resource/sst-env.d.ts

@@ -6,91 +6,91 @@
 import "sst"
 declare module "sst" {
   export interface Resource {
-    ANTHROPIC_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    AUTH_API_URL: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    BASETEN_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    Console: {
-      type: "sst.cloudflare.SolidStart"
-      url: string
-    }
-    Database: {
-      database: string
-      host: string
-      password: string
-      port: number
-      type: "sst.sst.Linkable"
-      username: string
-    }
-    FIREWORKS_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_PRIVATE_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_ID_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_SECRET_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GOOGLE_CLIENT_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    HONEYCOMB_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    OPENAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_SECRET_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_WEBHOOK_SECRET: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    Web: {
-      type: "sst.cloudflare.Astro"
-      url: string
-    }
-    XAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "ANTHROPIC_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "AUTH_API_URL": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "BASETEN_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "Console": {
+      "type": "sst.cloudflare.SolidStart"
+      "url": string
+    }
+    "Database": {
+      "database": string
+      "host": string
+      "password": string
+      "port": number
+      "type": "sst.sst.Linkable"
+      "username": string
+    }
+    "FIREWORKS_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_PRIVATE_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_ID_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_SECRET_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GOOGLE_CLIENT_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "HONEYCOMB_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "OPENAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_SECRET_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_WEBHOOK_SECRET": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "Web": {
+      "type": "sst.cloudflare.Astro"
+      "url": string
+    }
+    "XAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
   }
 }
-// cloudflare
-import * as cloudflare from "@cloudflare/workers-types"
+// cloudflare 
+import * as cloudflare from "@cloudflare/workers-types";
 declare module "sst" {
   export interface Resource {
-    Api: cloudflare.Service
-    AuthApi: cloudflare.Service
-    AuthStorage: cloudflare.KVNamespace
-    Bucket: cloudflare.R2Bucket
-    LogProcessor: cloudflare.Service
+    "Api": cloudflare.Service
+    "AuthApi": cloudflare.Service
+    "AuthStorage": cloudflare.KVNamespace
+    "Bucket": cloudflare.R2Bucket
+    "LogProcessor": cloudflare.Service
   }
 }
 
 import "sst"
-export {}
+export {}

+ 1 - 1
cloud/scripts/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
github/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 10 - 0
infra/desktop.ts

@@ -0,0 +1,10 @@
+import { domain } from "./stage"
+
+new sst.cloudflare.StaticSite("Desktop", {
+  domain: "desktop." + domain,
+  path: "packages/app",
+  build: {
+    command: "bun run build",
+    output: "./dist",
+  },
+})

+ 0 - 3
package.json

@@ -53,9 +53,6 @@
     "tree-sitter-bash",
     "web-tree-sitter"
   ],
-  "overrides": {
-    "zod": "4.1.8"
-  },
   "patchedDependencies": {
     "@solidjs/[email protected]": "patches/@solidjs%[email protected]"
   }

+ 357 - 356
packages/app/src/assets/theme.css

@@ -159,109 +159,109 @@
 }
 
 [data-theme="ayu"][data-dark="false"] {
-  --theme-primary: #59c2ff;
-  --theme-secondary: #d2a6ff;
-  --theme-accent: #e6b450;
-  --theme-error: #d95757;
-  --theme-warning: #e6b673;
-  --theme-success: #7fd962;
-  --theme-info: #39bae6;
-  --theme-text: #bfbdb6;
-  --theme-text-muted: #565b66;
-  --theme-background: #0b0e14;
-  --theme-background-panel: #0f131a;
-  --theme-background-element: #0d1017;
-  --theme-border: #6c7380;
-  --theme-border-active: #6c7380;
-  --theme-border-subtle: #11151c;
-  --theme-diff-added: #7fd962;
-  --theme-diff-removed: #f26d78;
-  --theme-diff-context: #acb6bf;
-  --theme-diff-hunk-header: #acb6bf;
-  --theme-diff-highlight-added: #aad94c;
-  --theme-diff-highlight-removed: #f07178;
+  --theme-primary: #59C2FF;
+  --theme-secondary: #D2A6FF;
+  --theme-accent: #E6B450;
+  --theme-error: #D95757;
+  --theme-warning: #E6B673;
+  --theme-success: #7FD962;
+  --theme-info: #39BAE6;
+  --theme-text: #BFBDB6;
+  --theme-text-muted: #565B66;
+  --theme-background: #0B0E14;
+  --theme-background-panel: #0F131A;
+  --theme-background-element: #0D1017;
+  --theme-border: #6C7380;
+  --theme-border-active: #6C7380;
+  --theme-border-subtle: #11151C;
+  --theme-diff-added: #7FD962;
+  --theme-diff-removed: #F26D78;
+  --theme-diff-context: #ACB6BF;
+  --theme-diff-hunk-header: #ACB6BF;
+  --theme-diff-highlight-added: #AAD94C;
+  --theme-diff-highlight-removed: #F07178;
   --theme-diff-added-bg: #20303b;
   --theme-diff-removed-bg: #37222c;
-  --theme-diff-context-bg: #0f131a;
-  --theme-diff-line-number: #6c7380;
+  --theme-diff-context-bg: #0F131A;
+  --theme-diff-line-number: #6C7380;
   --theme-diff-added-line-number-bg: #1b2b34;
   --theme-diff-removed-line-number-bg: #2d1f26;
-  --theme-markdown-text: #bfbdb6;
-  --theme-markdown-heading: #d2a6ff;
-  --theme-markdown-link: #59c2ff;
-  --theme-markdown-link-text: #39bae6;
-  --theme-markdown-code: #aad94c;
-  --theme-markdown-block-quote: #e6b673;
-  --theme-markdown-emph: #e6b673;
-  --theme-markdown-strong: #ffb454;
-  --theme-markdown-horizontal-rule: #565b66;
-  --theme-markdown-list-item: #59c2ff;
-  --theme-markdown-list-enumeration: #39bae6;
-  --theme-markdown-image: #59c2ff;
-  --theme-markdown-image-text: #39bae6;
-  --theme-markdown-code-block: #bfbdb6;
-  --theme-syntax-comment: #acb6bf;
-  --theme-syntax-keyword: #ff8f40;
-  --theme-syntax-function: #ffb454;
-  --theme-syntax-variable: #59c2ff;
-  --theme-syntax-string: #aad94c;
-  --theme-syntax-number: #d2a6ff;
-  --theme-syntax-type: #e6b673;
-  --theme-syntax-operator: #f29668;
-  --theme-syntax-punctuation: #bfbdb6;
+  --theme-markdown-text: #BFBDB6;
+  --theme-markdown-heading: #D2A6FF;
+  --theme-markdown-link: #59C2FF;
+  --theme-markdown-link-text: #39BAE6;
+  --theme-markdown-code: #AAD94C;
+  --theme-markdown-block-quote: #E6B673;
+  --theme-markdown-emph: #E6B673;
+  --theme-markdown-strong: #FFB454;
+  --theme-markdown-horizontal-rule: #565B66;
+  --theme-markdown-list-item: #59C2FF;
+  --theme-markdown-list-enumeration: #39BAE6;
+  --theme-markdown-image: #59C2FF;
+  --theme-markdown-image-text: #39BAE6;
+  --theme-markdown-code-block: #BFBDB6;
+  --theme-syntax-comment: #ACB6BF;
+  --theme-syntax-keyword: #FF8F40;
+  --theme-syntax-function: #FFB454;
+  --theme-syntax-variable: #59C2FF;
+  --theme-syntax-string: #AAD94C;
+  --theme-syntax-number: #D2A6FF;
+  --theme-syntax-type: #E6B673;
+  --theme-syntax-operator: #F29668;
+  --theme-syntax-punctuation: #BFBDB6;
 }
 
 [data-theme="ayu"][data-dark="true"] {
-  --theme-primary: #59c2ff;
-  --theme-secondary: #d2a6ff;
-  --theme-accent: #e6b450;
-  --theme-error: #d95757;
-  --theme-warning: #e6b673;
-  --theme-success: #7fd962;
-  --theme-info: #39bae6;
-  --theme-text: #bfbdb6;
-  --theme-text-muted: #565b66;
-  --theme-background: #0b0e14;
-  --theme-background-panel: #0f131a;
-  --theme-background-element: #0d1017;
-  --theme-border: #6c7380;
-  --theme-border-active: #6c7380;
-  --theme-border-subtle: #11151c;
-  --theme-diff-added: #7fd962;
-  --theme-diff-removed: #f26d78;
-  --theme-diff-context: #acb6bf;
-  --theme-diff-hunk-header: #acb6bf;
-  --theme-diff-highlight-added: #aad94c;
-  --theme-diff-highlight-removed: #f07178;
+  --theme-primary: #59C2FF;
+  --theme-secondary: #D2A6FF;
+  --theme-accent: #E6B450;
+  --theme-error: #D95757;
+  --theme-warning: #E6B673;
+  --theme-success: #7FD962;
+  --theme-info: #39BAE6;
+  --theme-text: #BFBDB6;
+  --theme-text-muted: #565B66;
+  --theme-background: #0B0E14;
+  --theme-background-panel: #0F131A;
+  --theme-background-element: #0D1017;
+  --theme-border: #6C7380;
+  --theme-border-active: #6C7380;
+  --theme-border-subtle: #11151C;
+  --theme-diff-added: #7FD962;
+  --theme-diff-removed: #F26D78;
+  --theme-diff-context: #ACB6BF;
+  --theme-diff-hunk-header: #ACB6BF;
+  --theme-diff-highlight-added: #AAD94C;
+  --theme-diff-highlight-removed: #F07178;
   --theme-diff-added-bg: #20303b;
   --theme-diff-removed-bg: #37222c;
-  --theme-diff-context-bg: #0f131a;
-  --theme-diff-line-number: #6c7380;
+  --theme-diff-context-bg: #0F131A;
+  --theme-diff-line-number: #6C7380;
   --theme-diff-added-line-number-bg: #1b2b34;
   --theme-diff-removed-line-number-bg: #2d1f26;
-  --theme-markdown-text: #bfbdb6;
-  --theme-markdown-heading: #d2a6ff;
-  --theme-markdown-link: #59c2ff;
-  --theme-markdown-link-text: #39bae6;
-  --theme-markdown-code: #aad94c;
-  --theme-markdown-block-quote: #e6b673;
-  --theme-markdown-emph: #e6b673;
-  --theme-markdown-strong: #ffb454;
-  --theme-markdown-horizontal-rule: #565b66;
-  --theme-markdown-list-item: #59c2ff;
-  --theme-markdown-list-enumeration: #39bae6;
-  --theme-markdown-image: #59c2ff;
-  --theme-markdown-image-text: #39bae6;
-  --theme-markdown-code-block: #bfbdb6;
-  --theme-syntax-comment: #acb6bf;
-  --theme-syntax-keyword: #ff8f40;
-  --theme-syntax-function: #ffb454;
-  --theme-syntax-variable: #59c2ff;
-  --theme-syntax-string: #aad94c;
-  --theme-syntax-number: #d2a6ff;
-  --theme-syntax-type: #e6b673;
-  --theme-syntax-operator: #f29668;
-  --theme-syntax-punctuation: #bfbdb6;
+  --theme-markdown-text: #BFBDB6;
+  --theme-markdown-heading: #D2A6FF;
+  --theme-markdown-link: #59C2FF;
+  --theme-markdown-link-text: #39BAE6;
+  --theme-markdown-code: #AAD94C;
+  --theme-markdown-block-quote: #E6B673;
+  --theme-markdown-emph: #E6B673;
+  --theme-markdown-strong: #FFB454;
+  --theme-markdown-horizontal-rule: #565B66;
+  --theme-markdown-list-item: #59C2FF;
+  --theme-markdown-list-enumeration: #39BAE6;
+  --theme-markdown-image: #59C2FF;
+  --theme-markdown-image-text: #39BAE6;
+  --theme-markdown-code-block: #BFBDB6;
+  --theme-syntax-comment: #ACB6BF;
+  --theme-syntax-keyword: #FF8F40;
+  --theme-syntax-function: #FFB454;
+  --theme-syntax-variable: #59C2FF;
+  --theme-syntax-string: #AAD94C;
+  --theme-syntax-number: #D2A6FF;
+  --theme-syntax-type: #E6B673;
+  --theme-syntax-operator: #F29668;
+  --theme-syntax-punctuation: #BFBDB6;
 }
 
 [data-theme="catppuccin"][data-dark="false"] {
@@ -901,109 +901,109 @@
 }
 
 [data-theme="kanagawa"][data-dark="false"] {
-  --theme-primary: #2d4f67;
-  --theme-secondary: #957fb8;
-  --theme-accent: #d27e99;
-  --theme-error: #e82424;
-  --theme-warning: #d7a657;
-  --theme-success: #98bb6c;
-  --theme-info: #76946a;
-  --theme-text: #54433a;
-  --theme-text-muted: #9e9389;
-  --theme-background: #f2e9de;
-  --theme-background-panel: #eae4d7;
-  --theme-background-element: #e3dcd2;
-  --theme-border: #d4cbbf;
-  --theme-border-active: #c38d9d;
-  --theme-border-subtle: #dcd4c9;
-  --theme-diff-added: #98bb6c;
-  --theme-diff-removed: #e82424;
-  --theme-diff-context: #9e9389;
-  --theme-diff-hunk-header: #2d4f67;
-  --theme-diff-highlight-added: #89af5b;
-  --theme-diff-highlight-removed: #d61f1f;
-  --theme-diff-added-bg: #eaf3e4;
-  --theme-diff-removed-bg: #fbe6e6;
-  --theme-diff-context-bg: #eae4d7;
-  --theme-diff-line-number: #c7beb4;
-  --theme-diff-added-line-number-bg: #dde8d6;
-  --theme-diff-removed-line-number-bg: #f2dada;
-  --theme-markdown-text: #54433a;
-  --theme-markdown-heading: #957fb8;
-  --theme-markdown-link: #2d4f67;
-  --theme-markdown-link-text: #76946a;
-  --theme-markdown-code: #98bb6c;
-  --theme-markdown-block-quote: #9e9389;
-  --theme-markdown-emph: #c38d9d;
-  --theme-markdown-strong: #d7a657;
-  --theme-markdown-horizontal-rule: #9e9389;
-  --theme-markdown-list-item: #2d4f67;
-  --theme-markdown-list-enumeration: #76946a;
-  --theme-markdown-image: #2d4f67;
-  --theme-markdown-image-text: #76946a;
-  --theme-markdown-code-block: #54433a;
-  --theme-syntax-comment: #9e9389;
-  --theme-syntax-keyword: #957fb8;
-  --theme-syntax-function: #2d4f67;
-  --theme-syntax-variable: #54433a;
-  --theme-syntax-string: #98bb6c;
-  --theme-syntax-number: #d7a657;
-  --theme-syntax-type: #c38d9d;
-  --theme-syntax-operator: #d27e99;
-  --theme-syntax-punctuation: #54433a;
+  --theme-primary: #2D4F67;
+  --theme-secondary: #957FB8;
+  --theme-accent: #D27E99;
+  --theme-error: #E82424;
+  --theme-warning: #D7A657;
+  --theme-success: #98BB6C;
+  --theme-info: #76946A;
+  --theme-text: #54433A;
+  --theme-text-muted: #9E9389;
+  --theme-background: #F2E9DE;
+  --theme-background-panel: #EAE4D7;
+  --theme-background-element: #E3DCD2;
+  --theme-border: #D4CBBF;
+  --theme-border-active: #C38D9D;
+  --theme-border-subtle: #DCD4C9;
+  --theme-diff-added: #98BB6C;
+  --theme-diff-removed: #E82424;
+  --theme-diff-context: #9E9389;
+  --theme-diff-hunk-header: #2D4F67;
+  --theme-diff-highlight-added: #89AF5B;
+  --theme-diff-highlight-removed: #D61F1F;
+  --theme-diff-added-bg: #EAF3E4;
+  --theme-diff-removed-bg: #FBE6E6;
+  --theme-diff-context-bg: #EAE4D7;
+  --theme-diff-line-number: #C7BEB4;
+  --theme-diff-added-line-number-bg: #DDE8D6;
+  --theme-diff-removed-line-number-bg: #F2DADA;
+  --theme-markdown-text: #54433A;
+  --theme-markdown-heading: #957FB8;
+  --theme-markdown-link: #2D4F67;
+  --theme-markdown-link-text: #76946A;
+  --theme-markdown-code: #98BB6C;
+  --theme-markdown-block-quote: #9E9389;
+  --theme-markdown-emph: #C38D9D;
+  --theme-markdown-strong: #D7A657;
+  --theme-markdown-horizontal-rule: #9E9389;
+  --theme-markdown-list-item: #2D4F67;
+  --theme-markdown-list-enumeration: #76946A;
+  --theme-markdown-image: #2D4F67;
+  --theme-markdown-image-text: #76946A;
+  --theme-markdown-code-block: #54433A;
+  --theme-syntax-comment: #9E9389;
+  --theme-syntax-keyword: #957FB8;
+  --theme-syntax-function: #2D4F67;
+  --theme-syntax-variable: #54433A;
+  --theme-syntax-string: #98BB6C;
+  --theme-syntax-number: #D7A657;
+  --theme-syntax-type: #C38D9D;
+  --theme-syntax-operator: #D27E99;
+  --theme-syntax-punctuation: #54433A;
 }
 
 [data-theme="kanagawa"][data-dark="true"] {
-  --theme-primary: #7e9cd8;
-  --theme-secondary: #957fb8;
-  --theme-accent: #d27e99;
-  --theme-error: #e82424;
-  --theme-warning: #d7a657;
-  --theme-success: #98bb6c;
-  --theme-info: #76946a;
-  --theme-text: #dcd7ba;
+  --theme-primary: #7E9CD8;
+  --theme-secondary: #957FB8;
+  --theme-accent: #D27E99;
+  --theme-error: #E82424;
+  --theme-warning: #D7A657;
+  --theme-success: #98BB6C;
+  --theme-info: #76946A;
+  --theme-text: #DCD7BA;
   --theme-text-muted: #727169;
-  --theme-background: #1f1f28;
-  --theme-background-panel: #2a2a37;
+  --theme-background: #1F1F28;
+  --theme-background-panel: #2A2A37;
   --theme-background-element: #363646;
-  --theme-border: #54546d;
-  --theme-border-active: #c38d9d;
+  --theme-border: #54546D;
+  --theme-border-active: #C38D9D;
   --theme-border-subtle: #363646;
-  --theme-diff-added: #98bb6c;
-  --theme-diff-removed: #e82424;
+  --theme-diff-added: #98BB6C;
+  --theme-diff-removed: #E82424;
   --theme-diff-context: #727169;
-  --theme-diff-hunk-header: #2d4f67;
-  --theme-diff-highlight-added: #a9d977;
-  --theme-diff-highlight-removed: #f24a4a;
-  --theme-diff-added-bg: #252e25;
+  --theme-diff-hunk-header: #2D4F67;
+  --theme-diff-highlight-added: #A9D977;
+  --theme-diff-highlight-removed: #F24A4A;
+  --theme-diff-added-bg: #252E25;
   --theme-diff-removed-bg: #362020;
-  --theme-diff-context-bg: #2a2a37;
-  --theme-diff-line-number: #54546d;
+  --theme-diff-context-bg: #2A2A37;
+  --theme-diff-line-number: #54546D;
   --theme-diff-added-line-number-bg: #202820;
-  --theme-diff-removed-line-number-bg: #2d1c1c;
-  --theme-markdown-text: #dcd7ba;
-  --theme-markdown-heading: #957fb8;
-  --theme-markdown-link: #7e9cd8;
-  --theme-markdown-link-text: #76946a;
-  --theme-markdown-code: #98bb6c;
+  --theme-diff-removed-line-number-bg: #2D1C1C;
+  --theme-markdown-text: #DCD7BA;
+  --theme-markdown-heading: #957FB8;
+  --theme-markdown-link: #7E9CD8;
+  --theme-markdown-link-text: #76946A;
+  --theme-markdown-code: #98BB6C;
   --theme-markdown-block-quote: #727169;
-  --theme-markdown-emph: #c38d9d;
-  --theme-markdown-strong: #d7a657;
+  --theme-markdown-emph: #C38D9D;
+  --theme-markdown-strong: #D7A657;
   --theme-markdown-horizontal-rule: #727169;
-  --theme-markdown-list-item: #7e9cd8;
-  --theme-markdown-list-enumeration: #76946a;
-  --theme-markdown-image: #7e9cd8;
-  --theme-markdown-image-text: #76946a;
-  --theme-markdown-code-block: #dcd7ba;
+  --theme-markdown-list-item: #7E9CD8;
+  --theme-markdown-list-enumeration: #76946A;
+  --theme-markdown-image: #7E9CD8;
+  --theme-markdown-image-text: #76946A;
+  --theme-markdown-code-block: #DCD7BA;
   --theme-syntax-comment: #727169;
-  --theme-syntax-keyword: #957fb8;
-  --theme-syntax-function: #7e9cd8;
-  --theme-syntax-variable: #dcd7ba;
-  --theme-syntax-string: #98bb6c;
-  --theme-syntax-number: #d7a657;
-  --theme-syntax-type: #c38d9d;
-  --theme-syntax-operator: #d27e99;
-  --theme-syntax-punctuation: #dcd7ba;
+  --theme-syntax-keyword: #957FB8;
+  --theme-syntax-function: #7E9CD8;
+  --theme-syntax-variable: #DCD7BA;
+  --theme-syntax-string: #98BB6C;
+  --theme-syntax-number: #D7A657;
+  --theme-syntax-type: #C38D9D;
+  --theme-syntax-operator: #D27E99;
+  --theme-syntax-punctuation: #DCD7BA;
 }
 
 [data-theme="material"][data-dark="false"] {
@@ -1325,109 +1325,109 @@
 }
 
 [data-theme="nord"][data-dark="false"] {
-  --theme-primary: #5e81ac;
-  --theme-secondary: #81a1c1;
-  --theme-accent: #8fbcbb;
-  --theme-error: #bf616a;
-  --theme-warning: #d08770;
-  --theme-success: #a3be8c;
-  --theme-info: #5e81ac;
-  --theme-text: #2e3440;
-  --theme-text-muted: #3b4252;
-  --theme-background: #eceff4;
-  --theme-background-panel: #e5e9f0;
-  --theme-background-element: #d8dee9;
-  --theme-border: #4c566a;
-  --theme-border-active: #434c5e;
-  --theme-border-subtle: #4c566a;
-  --theme-diff-added: #a3be8c;
-  --theme-diff-removed: #bf616a;
-  --theme-diff-context: #4c566a;
-  --theme-diff-hunk-header: #4c566a;
-  --theme-diff-highlight-added: #a3be8c;
-  --theme-diff-highlight-removed: #bf616a;
-  --theme-diff-added-bg: #e5e9f0;
-  --theme-diff-removed-bg: #e5e9f0;
-  --theme-diff-context-bg: #e5e9f0;
-  --theme-diff-line-number: #d8dee9;
-  --theme-diff-added-line-number-bg: #e5e9f0;
-  --theme-diff-removed-line-number-bg: #e5e9f0;
-  --theme-markdown-text: #2e3440;
-  --theme-markdown-heading: #5e81ac;
-  --theme-markdown-link: #81a1c1;
-  --theme-markdown-link-text: #8fbcbb;
-  --theme-markdown-code: #a3be8c;
-  --theme-markdown-block-quote: #4c566a;
-  --theme-markdown-emph: #d08770;
-  --theme-markdown-strong: #ebcb8b;
-  --theme-markdown-horizontal-rule: #4c566a;
-  --theme-markdown-list-item: #5e81ac;
-  --theme-markdown-list-enumeration: #8fbcbb;
-  --theme-markdown-image: #81a1c1;
-  --theme-markdown-image-text: #8fbcbb;
-  --theme-markdown-code-block: #2e3440;
-  --theme-syntax-comment: #4c566a;
-  --theme-syntax-keyword: #81a1c1;
-  --theme-syntax-function: #88c0d0;
-  --theme-syntax-variable: #8fbcbb;
-  --theme-syntax-string: #a3be8c;
-  --theme-syntax-number: #b48ead;
-  --theme-syntax-type: #8fbcbb;
-  --theme-syntax-operator: #81a1c1;
-  --theme-syntax-punctuation: #2e3440;
+  --theme-primary: #5E81AC;
+  --theme-secondary: #81A1C1;
+  --theme-accent: #8FBCBB;
+  --theme-error: #BF616A;
+  --theme-warning: #D08770;
+  --theme-success: #A3BE8C;
+  --theme-info: #5E81AC;
+  --theme-text: #2E3440;
+  --theme-text-muted: #3B4252;
+  --theme-background: #ECEFF4;
+  --theme-background-panel: #E5E9F0;
+  --theme-background-element: #D8DEE9;
+  --theme-border: #4C566A;
+  --theme-border-active: #434C5E;
+  --theme-border-subtle: #4C566A;
+  --theme-diff-added: #A3BE8C;
+  --theme-diff-removed: #BF616A;
+  --theme-diff-context: #4C566A;
+  --theme-diff-hunk-header: #4C566A;
+  --theme-diff-highlight-added: #A3BE8C;
+  --theme-diff-highlight-removed: #BF616A;
+  --theme-diff-added-bg: #E5E9F0;
+  --theme-diff-removed-bg: #E5E9F0;
+  --theme-diff-context-bg: #E5E9F0;
+  --theme-diff-line-number: #D8DEE9;
+  --theme-diff-added-line-number-bg: #E5E9F0;
+  --theme-diff-removed-line-number-bg: #E5E9F0;
+  --theme-markdown-text: #2E3440;
+  --theme-markdown-heading: #5E81AC;
+  --theme-markdown-link: #81A1C1;
+  --theme-markdown-link-text: #8FBCBB;
+  --theme-markdown-code: #A3BE8C;
+  --theme-markdown-block-quote: #4C566A;
+  --theme-markdown-emph: #D08770;
+  --theme-markdown-strong: #EBCB8B;
+  --theme-markdown-horizontal-rule: #4C566A;
+  --theme-markdown-list-item: #5E81AC;
+  --theme-markdown-list-enumeration: #8FBCBB;
+  --theme-markdown-image: #81A1C1;
+  --theme-markdown-image-text: #8FBCBB;
+  --theme-markdown-code-block: #2E3440;
+  --theme-syntax-comment: #4C566A;
+  --theme-syntax-keyword: #81A1C1;
+  --theme-syntax-function: #88C0D0;
+  --theme-syntax-variable: #8FBCBB;
+  --theme-syntax-string: #A3BE8C;
+  --theme-syntax-number: #B48EAD;
+  --theme-syntax-type: #8FBCBB;
+  --theme-syntax-operator: #81A1C1;
+  --theme-syntax-punctuation: #2E3440;
 }
 
 [data-theme="nord"][data-dark="true"] {
-  --theme-primary: #88c0d0;
-  --theme-secondary: #81a1c1;
-  --theme-accent: #8fbcbb;
-  --theme-error: #bf616a;
-  --theme-warning: #d08770;
-  --theme-success: #a3be8c;
-  --theme-info: #88c0d0;
-  --theme-text: #eceff4;
-  --theme-text-muted: #8b95a7;
-  --theme-background: #2e3440;
-  --theme-background-panel: #3b4252;
-  --theme-background-element: #434c5e;
-  --theme-border: #434c5e;
-  --theme-border-active: #4c566a;
-  --theme-border-subtle: #434c5e;
-  --theme-diff-added: #a3be8c;
-  --theme-diff-removed: #bf616a;
-  --theme-diff-context: #8b95a7;
-  --theme-diff-hunk-header: #8b95a7;
-  --theme-diff-highlight-added: #a3be8c;
-  --theme-diff-highlight-removed: #bf616a;
-  --theme-diff-added-bg: #3b4252;
-  --theme-diff-removed-bg: #3b4252;
-  --theme-diff-context-bg: #3b4252;
-  --theme-diff-line-number: #434c5e;
-  --theme-diff-added-line-number-bg: #3b4252;
-  --theme-diff-removed-line-number-bg: #3b4252;
-  --theme-markdown-text: #d8dee9;
-  --theme-markdown-heading: #88c0d0;
-  --theme-markdown-link: #81a1c1;
-  --theme-markdown-link-text: #8fbcbb;
-  --theme-markdown-code: #a3be8c;
-  --theme-markdown-block-quote: #8b95a7;
-  --theme-markdown-emph: #d08770;
-  --theme-markdown-strong: #ebcb8b;
-  --theme-markdown-horizontal-rule: #8b95a7;
-  --theme-markdown-list-item: #88c0d0;
-  --theme-markdown-list-enumeration: #8fbcbb;
-  --theme-markdown-image: #81a1c1;
-  --theme-markdown-image-text: #8fbcbb;
-  --theme-markdown-code-block: #d8dee9;
-  --theme-syntax-comment: #8b95a7;
-  --theme-syntax-keyword: #81a1c1;
-  --theme-syntax-function: #88c0d0;
-  --theme-syntax-variable: #8fbcbb;
-  --theme-syntax-string: #a3be8c;
-  --theme-syntax-number: #b48ead;
-  --theme-syntax-type: #8fbcbb;
-  --theme-syntax-operator: #81a1c1;
-  --theme-syntax-punctuation: #d8dee9;
+  --theme-primary: #88C0D0;
+  --theme-secondary: #81A1C1;
+  --theme-accent: #8FBCBB;
+  --theme-error: #BF616A;
+  --theme-warning: #D08770;
+  --theme-success: #A3BE8C;
+  --theme-info: #88C0D0;
+  --theme-text: #ECEFF4;
+  --theme-text-muted: #8B95A7;
+  --theme-background: #2E3440;
+  --theme-background-panel: #3B4252;
+  --theme-background-element: #434C5E;
+  --theme-border: #434C5E;
+  --theme-border-active: #4C566A;
+  --theme-border-subtle: #434C5E;
+  --theme-diff-added: #A3BE8C;
+  --theme-diff-removed: #BF616A;
+  --theme-diff-context: #8B95A7;
+  --theme-diff-hunk-header: #8B95A7;
+  --theme-diff-highlight-added: #A3BE8C;
+  --theme-diff-highlight-removed: #BF616A;
+  --theme-diff-added-bg: #3B4252;
+  --theme-diff-removed-bg: #3B4252;
+  --theme-diff-context-bg: #3B4252;
+  --theme-diff-line-number: #434C5E;
+  --theme-diff-added-line-number-bg: #3B4252;
+  --theme-diff-removed-line-number-bg: #3B4252;
+  --theme-markdown-text: #D8DEE9;
+  --theme-markdown-heading: #88C0D0;
+  --theme-markdown-link: #81A1C1;
+  --theme-markdown-link-text: #8FBCBB;
+  --theme-markdown-code: #A3BE8C;
+  --theme-markdown-block-quote: #8B95A7;
+  --theme-markdown-emph: #D08770;
+  --theme-markdown-strong: #EBCB8B;
+  --theme-markdown-horizontal-rule: #8B95A7;
+  --theme-markdown-list-item: #88C0D0;
+  --theme-markdown-list-enumeration: #8FBCBB;
+  --theme-markdown-image: #81A1C1;
+  --theme-markdown-image-text: #8FBCBB;
+  --theme-markdown-code-block: #D8DEE9;
+  --theme-syntax-comment: #8B95A7;
+  --theme-syntax-keyword: #81A1C1;
+  --theme-syntax-function: #88C0D0;
+  --theme-syntax-variable: #8FBCBB;
+  --theme-syntax-string: #A3BE8C;
+  --theme-syntax-number: #B48EAD;
+  --theme-syntax-type: #8FBCBB;
+  --theme-syntax-operator: #81A1C1;
+  --theme-syntax-punctuation: #D8DEE9;
 }
 
 [data-theme="one-dark"][data-dark="false"] {
@@ -2173,109 +2173,109 @@
 }
 
 [data-theme="vesper"][data-dark="false"] {
-  --theme-primary: #ffc799;
-  --theme-secondary: #99ffe4;
-  --theme-accent: #ffc799;
-  --theme-error: #ff8080;
-  --theme-warning: #ffc799;
-  --theme-success: #99ffe4;
-  --theme-info: #ffc799;
+  --theme-primary: #FFC799;
+  --theme-secondary: #99FFE4;
+  --theme-accent: #FFC799;
+  --theme-error: #FF8080;
+  --theme-warning: #FFC799;
+  --theme-success: #99FFE4;
+  --theme-info: #FFC799;
   --theme-text: #101010;
-  --theme-text-muted: #a0a0a0;
-  --theme-background: #fff;
-  --theme-background-panel: #f0f0f0;
-  --theme-background-element: #e0e0e0;
-  --theme-border: #d0d0d0;
-  --theme-border-active: #ffc799;
-  --theme-border-subtle: #e8e8e8;
-  --theme-diff-added: #99ffe4;
-  --theme-diff-removed: #ff8080;
-  --theme-diff-context: #a0a0a0;
-  --theme-diff-hunk-header: #a0a0a0;
-  --theme-diff-highlight-added: #99ffe4;
-  --theme-diff-highlight-removed: #ff8080;
+  --theme-text-muted: #A0A0A0;
+  --theme-background: #FFF;
+  --theme-background-panel: #F0F0F0;
+  --theme-background-element: #E0E0E0;
+  --theme-border: #D0D0D0;
+  --theme-border-active: #FFC799;
+  --theme-border-subtle: #E8E8E8;
+  --theme-diff-added: #99FFE4;
+  --theme-diff-removed: #FF8080;
+  --theme-diff-context: #A0A0A0;
+  --theme-diff-hunk-header: #A0A0A0;
+  --theme-diff-highlight-added: #99FFE4;
+  --theme-diff-highlight-removed: #FF8080;
   --theme-diff-added-bg: #e8f5e8;
   --theme-diff-removed-bg: #f5e8e8;
-  --theme-diff-context-bg: #f8f8f8;
+  --theme-diff-context-bg: #F8F8F8;
   --theme-diff-line-number: #808080;
   --theme-diff-added-line-number-bg: #e8f5e8;
   --theme-diff-removed-line-number-bg: #f5e8e8;
   --theme-markdown-text: #101010;
-  --theme-markdown-heading: #ffc799;
-  --theme-markdown-link: #ffc799;
-  --theme-markdown-link-text: #a0a0a0;
-  --theme-markdown-code: #a0a0a0;
+  --theme-markdown-heading: #FFC799;
+  --theme-markdown-link: #FFC799;
+  --theme-markdown-link-text: #A0A0A0;
+  --theme-markdown-code: #A0A0A0;
   --theme-markdown-block-quote: #101010;
   --theme-markdown-emph: #101010;
   --theme-markdown-strong: #101010;
-  --theme-markdown-horizontal-rule: #65737e;
+  --theme-markdown-horizontal-rule: #65737E;
   --theme-markdown-list-item: #101010;
   --theme-markdown-list-enumeration: #101010;
-  --theme-markdown-image: #ffc799;
-  --theme-markdown-image-text: #a0a0a0;
+  --theme-markdown-image: #FFC799;
+  --theme-markdown-image-text: #A0A0A0;
   --theme-markdown-code-block: #101010;
   --theme-syntax-comment: #8b8b8b94;
-  --theme-syntax-keyword: #a0a0a0;
-  --theme-syntax-function: #ffc799;
+  --theme-syntax-keyword: #A0A0A0;
+  --theme-syntax-function: #FFC799;
   --theme-syntax-variable: #101010;
-  --theme-syntax-string: #99ffe4;
-  --theme-syntax-number: #ffc799;
-  --theme-syntax-type: #ffc799;
-  --theme-syntax-operator: #a0a0a0;
+  --theme-syntax-string: #99FFE4;
+  --theme-syntax-number: #FFC799;
+  --theme-syntax-type: #FFC799;
+  --theme-syntax-operator: #A0A0A0;
   --theme-syntax-punctuation: #101010;
 }
 
 [data-theme="vesper"][data-dark="true"] {
-  --theme-primary: #ffc799;
-  --theme-secondary: #99ffe4;
-  --theme-accent: #ffc799;
-  --theme-error: #ff8080;
-  --theme-warning: #ffc799;
-  --theme-success: #99ffe4;
-  --theme-info: #ffc799;
-  --theme-text: #fff;
-  --theme-text-muted: #a0a0a0;
+  --theme-primary: #FFC799;
+  --theme-secondary: #99FFE4;
+  --theme-accent: #FFC799;
+  --theme-error: #FF8080;
+  --theme-warning: #FFC799;
+  --theme-success: #99FFE4;
+  --theme-info: #FFC799;
+  --theme-text: #FFF;
+  --theme-text-muted: #A0A0A0;
   --theme-background: #101010;
   --theme-background-panel: #101010;
   --theme-background-element: #101010;
   --theme-border: #282828;
-  --theme-border-active: #ffc799;
-  --theme-border-subtle: #1c1c1c;
-  --theme-diff-added: #99ffe4;
-  --theme-diff-removed: #ff8080;
-  --theme-diff-context: #a0a0a0;
-  --theme-diff-hunk-header: #a0a0a0;
-  --theme-diff-highlight-added: #99ffe4;
-  --theme-diff-highlight-removed: #ff8080;
+  --theme-border-active: #FFC799;
+  --theme-border-subtle: #1C1C1C;
+  --theme-diff-added: #99FFE4;
+  --theme-diff-removed: #FF8080;
+  --theme-diff-context: #A0A0A0;
+  --theme-diff-hunk-header: #A0A0A0;
+  --theme-diff-highlight-added: #99FFE4;
+  --theme-diff-highlight-removed: #FF8080;
   --theme-diff-added-bg: #0d2818;
   --theme-diff-removed-bg: #281a1a;
   --theme-diff-context-bg: #101010;
   --theme-diff-line-number: #505050;
   --theme-diff-added-line-number-bg: #0d2818;
   --theme-diff-removed-line-number-bg: #281a1a;
-  --theme-markdown-text: #fff;
-  --theme-markdown-heading: #ffc799;
-  --theme-markdown-link: #ffc799;
-  --theme-markdown-link-text: #a0a0a0;
-  --theme-markdown-code: #a0a0a0;
-  --theme-markdown-block-quote: #fff;
-  --theme-markdown-emph: #fff;
-  --theme-markdown-strong: #fff;
-  --theme-markdown-horizontal-rule: #65737e;
-  --theme-markdown-list-item: #fff;
-  --theme-markdown-list-enumeration: #fff;
-  --theme-markdown-image: #ffc799;
-  --theme-markdown-image-text: #a0a0a0;
-  --theme-markdown-code-block: #fff;
+  --theme-markdown-text: #FFF;
+  --theme-markdown-heading: #FFC799;
+  --theme-markdown-link: #FFC799;
+  --theme-markdown-link-text: #A0A0A0;
+  --theme-markdown-code: #A0A0A0;
+  --theme-markdown-block-quote: #FFF;
+  --theme-markdown-emph: #FFF;
+  --theme-markdown-strong: #FFF;
+  --theme-markdown-horizontal-rule: #65737E;
+  --theme-markdown-list-item: #FFF;
+  --theme-markdown-list-enumeration: #FFF;
+  --theme-markdown-image: #FFC799;
+  --theme-markdown-image-text: #A0A0A0;
+  --theme-markdown-code-block: #FFF;
   --theme-syntax-comment: #8b8b8b94;
-  --theme-syntax-keyword: #a0a0a0;
-  --theme-syntax-function: #ffc799;
-  --theme-syntax-variable: #fff;
-  --theme-syntax-string: #99ffe4;
-  --theme-syntax-number: #ffc799;
-  --theme-syntax-type: #ffc799;
-  --theme-syntax-operator: #a0a0a0;
-  --theme-syntax-punctuation: #fff;
+  --theme-syntax-keyword: #A0A0A0;
+  --theme-syntax-function: #FFC799;
+  --theme-syntax-variable: #FFF;
+  --theme-syntax-string: #99FFE4;
+  --theme-syntax-number: #FFC799;
+  --theme-syntax-type: #FFC799;
+  --theme-syntax-operator: #A0A0A0;
+  --theme-syntax-punctuation: #FFF;
 }
 
 [data-theme="zenburn"][data-dark="false"] {
@@ -2383,3 +2383,4 @@
   --theme-syntax-operator: #f0dfaf;
   --theme-syntax-punctuation: #dcdccc;
 }
+

+ 9 - 0
packages/app/sst-env.d.ts

@@ -0,0 +1,9 @@
+/* This file is auto-generated by SST. Do not edit. */
+/* tslint:disable */
+/* eslint-disable */
+/* deno-fmt-ignore-file */
+
+/// <reference path="../../sst-env.d.ts" />
+
+import "sst"
+export {}

+ 79 - 79
packages/function/sst-env.d.ts

@@ -6,91 +6,91 @@
 import "sst"
 declare module "sst" {
   export interface Resource {
-    ANTHROPIC_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    AUTH_API_URL: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    BASETEN_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    Console: {
-      type: "sst.cloudflare.SolidStart"
-      url: string
-    }
-    Database: {
-      database: string
-      host: string
-      password: string
-      port: number
-      type: "sst.sst.Linkable"
-      username: string
-    }
-    FIREWORKS_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_APP_PRIVATE_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_ID_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GITHUB_CLIENT_SECRET_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    GOOGLE_CLIENT_ID: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    HONEYCOMB_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    OPENAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_SECRET_KEY: {
-      type: "sst.sst.Secret"
-      value: string
-    }
-    STRIPE_WEBHOOK_SECRET: {
-      type: "sst.sst.Linkable"
-      value: string
-    }
-    Web: {
-      type: "sst.cloudflare.Astro"
-      url: string
-    }
-    XAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "ANTHROPIC_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "AUTH_API_URL": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "BASETEN_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "Console": {
+      "type": "sst.cloudflare.SolidStart"
+      "url": string
+    }
+    "Database": {
+      "database": string
+      "host": string
+      "password": string
+      "port": number
+      "type": "sst.sst.Linkable"
+      "username": string
+    }
+    "FIREWORKS_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_APP_PRIVATE_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_ID_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GITHUB_CLIENT_SECRET_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "GOOGLE_CLIENT_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "HONEYCOMB_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "OPENAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_SECRET_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
+    }
+    "STRIPE_WEBHOOK_SECRET": {
+      "type": "sst.sst.Linkable"
+      "value": string
+    }
+    "Web": {
+      "type": "sst.cloudflare.Astro"
+      "url": string
+    }
+    "XAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
   }
 }
-// cloudflare
-import * as cloudflare from "@cloudflare/workers-types"
+// cloudflare 
+import * as cloudflare from "@cloudflare/workers-types";
 declare module "sst" {
   export interface Resource {
-    Api: cloudflare.Service
-    AuthApi: cloudflare.Service
-    AuthStorage: cloudflare.KVNamespace
-    Bucket: cloudflare.R2Bucket
-    LogProcessor: cloudflare.Service
+    "Api": cloudflare.Service
+    "AuthApi": cloudflare.Service
+    "AuthStorage": cloudflare.KVNamespace
+    "Bucket": cloudflare.R2Bucket
+    "LogProcessor": cloudflare.Service
   }
 }
 
 import "sst"
-export {}
+export {}

+ 1 - 1
packages/opencode/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
packages/plugin/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
packages/sdk/js/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
packages/web/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 1 - 1
sdks/vscode/sst-env.d.ts

@@ -6,4 +6,4 @@
 /// <reference path="../../sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 69 - 69
sst-env.d.ts

@@ -5,99 +5,99 @@
 
 declare module "sst" {
   export interface Resource {
-    ANTHROPIC_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "ANTHROPIC_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    AUTH_API_URL: {
-      type: "sst.sst.Linkable"
-      value: string
+    "AUTH_API_URL": {
+      "type": "sst.sst.Linkable"
+      "value": string
     }
-    Api: {
-      type: "sst.cloudflare.Worker"
-      url: string
+    "Api": {
+      "type": "sst.cloudflare.Worker"
+      "url": string
     }
-    AuthApi: {
-      type: "sst.cloudflare.Worker"
-      url: string
+    "AuthApi": {
+      "type": "sst.cloudflare.Worker"
+      "url": string
     }
-    AuthStorage: {
-      type: "sst.cloudflare.Kv"
+    "AuthStorage": {
+      "type": "sst.cloudflare.Kv"
     }
-    BASETEN_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "BASETEN_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    Bucket: {
-      name: string
-      type: "sst.cloudflare.Bucket"
+    "Bucket": {
+      "name": string
+      "type": "sst.cloudflare.Bucket"
     }
-    Console: {
-      type: "sst.cloudflare.SolidStart"
-      url: string
+    "Console": {
+      "type": "sst.cloudflare.SolidStart"
+      "url": string
     }
-    Database: {
-      database: string
-      host: string
-      password: string
-      port: number
-      type: "sst.sst.Linkable"
-      username: string
+    "Database": {
+      "database": string
+      "host": string
+      "password": string
+      "port": number
+      "type": "sst.sst.Linkable"
+      "username": string
     }
-    FIREWORKS_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "FIREWORKS_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    GITHUB_APP_ID: {
-      type: "sst.sst.Secret"
-      value: string
+    "GITHUB_APP_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    GITHUB_APP_PRIVATE_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "GITHUB_APP_PRIVATE_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    GITHUB_CLIENT_ID_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
+    "GITHUB_CLIENT_ID_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    GITHUB_CLIENT_SECRET_CONSOLE: {
-      type: "sst.sst.Secret"
-      value: string
+    "GITHUB_CLIENT_SECRET_CONSOLE": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    GOOGLE_CLIENT_ID: {
-      type: "sst.sst.Secret"
-      value: string
+    "GOOGLE_CLIENT_ID": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    HONEYCOMB_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "HONEYCOMB_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    LogProcessor: {
-      type: "sst.cloudflare.Worker"
+    "LogProcessor": {
+      "type": "sst.cloudflare.Worker"
     }
-    OPENAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "OPENAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    STRIPE_SECRET_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "STRIPE_SECRET_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
-    STRIPE_WEBHOOK_SECRET: {
-      type: "sst.sst.Linkable"
-      value: string
+    "STRIPE_WEBHOOK_SECRET": {
+      "type": "sst.sst.Linkable"
+      "value": string
     }
-    Web: {
-      type: "sst.cloudflare.Astro"
-      url: string
+    "Web": {
+      "type": "sst.cloudflare.Astro"
+      "url": string
     }
-    XAI_API_KEY: {
-      type: "sst.sst.Secret"
-      value: string
+    "XAI_API_KEY": {
+      "type": "sst.sst.Secret"
+      "value": string
     }
   }
 }
 /// <reference path="sst-env.d.ts" />
 
 import "sst"
-export {}
+export {}

+ 3 - 6
sst.config.ts

@@ -15,11 +15,8 @@ export default $config({
     }
   },
   async run() {
-    const { api } = await import("./infra/app.js")
-    const { auth } = await import("./infra/cloud.js")
-    return {
-      api: api.url,
-      auth: auth.url,
-    }
+    await import("./infra/app.js")
+    await import("./infra/cloud.js")
+    await import("./infra/desktop.js")
   },
 })