@alook/app 0.0.120 → 0.0.122

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/bundled/web/.open-next/.build/durable-objects/queue.js +5 -5
  2. package/bundled/web/.open-next/assets/BUILD_ID +1 -1
  3. package/bundled/web/.open-next/assets/_next/static/chunks/{133ba3~6n5tgq.css → 16-86brhtbf3d.css} +1 -1
  4. package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/_global-error.cache +1 -1
  5. package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/_not-found.cache +1 -1
  6. package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/device.cache +1 -1
  7. package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/privacy.cache +1 -1
  8. package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/sitemap.xml.cache +1 -1
  9. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  10. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  11. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  12. package/bundled/web/.open-next/middleware/handler.mjs +3 -3
  13. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  14. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  15. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  16. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  17. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/page_client-reference-manifest.js +1 -1
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/activity/page_client-reference-manifest.js +1 -1
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/[convId]/page_client-reference-manifest.js +1 -1
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/chat/page_client-reference-manifest.js +1 -1
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/email/page_client-reference-manifest.js +1 -1
  22. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/files/page_client-reference-manifest.js +1 -1
  23. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/meetings/page_client-reference-manifest.js +1 -1
  24. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/[id]/page_client-reference-manifest.js +1 -1
  25. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/new/page_client-reference-manifest.js +1 -1
  26. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  27. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  28. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  29. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/help/email-setup/page_client-reference-manifest.js +1 -1
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
  33. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/[traceId]/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  39. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +2 -2
  51. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +3 -3
  52. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  53. package/bundled/web/wrangler.toml +1 -1
  54. package/dist/cli/index.js +166 -25
  55. package/package.json +1 -1
  56. /package/bundled/web/.open-next/assets/_next/static/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/_buildManifest.js +0 -0
  57. /package/bundled/web/.open-next/assets/_next/static/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/_clientMiddlewareManifest.js +0 -0
  58. /package/bundled/web/.open-next/assets/_next/static/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/_ssgManifest.js +0 -0
  59. /package/bundled/web/.open-next/cache/{LzjT49JW_J_-C3CU-45ou → 1HIX5exhB6xRr_rbtiK-8}/robots.txt.cache +0 -0
@@ -4249,7 +4249,7 @@
4249
4249
  "format": "cjs"
4250
4250
  },
4251
4251
  ".open-next/server-functions/default/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/next/dist/server/load-manifest.external.js": {
4252
- "bytes": 827406,
4252
+ "bytes": 827411,
4253
4253
  "imports": [
4254
4254
  {
4255
4255
  "path": "path",
@@ -30498,7 +30498,7 @@
30498
30498
  "bytesInOutput": 456
30499
30499
  },
30500
30500
  ".open-next/server-functions/default/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/next/dist/server/load-manifest.external.js": {
30501
- "bytesInOutput": 739883
30501
+ "bytesInOutput": 739888
30502
30502
  },
30503
30503
  ".open-next/server-functions/default/node_modules/.pnpm/next@16.2.6_@babel+core@7.29.0_@opentelemetry+api@1.9.1_react-dom@19.2.6_react@19.2.6__react@19.2.6/node_modules/next/dist/compiled/@vercel/og/index.edge.js": {
30504
30504
  "bytesInOutput": 546910
@@ -33417,7 +33417,7 @@
33417
33417
  "bytesInOutput": 94669
33418
33418
  }
33419
33419
  },
33420
- "bytes": 19484013
33420
+ "bytes": 19484018
33421
33421
  }
33422
33422
  }
33423
33423
  }
@@ -1268,11 +1268,11 @@ var NEXT_DIR = path.join(__dirname, ".next");
1268
1268
  var OPEN_NEXT_DIR = path.join(__dirname, ".open-next");
1269
1269
  debug({ NEXT_DIR, OPEN_NEXT_DIR });
1270
1270
  var NextConfig = { "env": {}, "typescript": { "ignoreBuildErrors": false }, "typedRoutes": false, "distDir": ".next", "cleanDistDir": true, "assetPrefix": "", "cacheMaxMemorySize": 52428800, "configOrigin": "next.config.ts", "useFileSystemPublicRoutes": true, "generateEtags": true, "pageExtensions": ["js", "jsx", "md", "mdx", "ts", "tsx"], "poweredByHeader": true, "compress": true, "images": { "deviceSizes": [640, 750, 828, 1080, 1200, 1920, 2048, 3840], "imageSizes": [32, 48, 64, 96, 128, 256, 384], "path": "/_next/image", "loader": "default", "loaderFile": "", "domains": [], "disableStaticImages": false, "minimumCacheTTL": 14400, "formats": ["image/webp"], "maximumRedirects": 3, "maximumResponseBody": 5e7, "dangerouslyAllowLocalIP": false, "dangerouslyAllowSVG": false, "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", "contentDispositionType": "attachment", "localPatterns": [{ "pathname": "**", "search": "" }], "remotePatterns": [], "qualities": [75], "unoptimized": false, "customCacheHandler": false }, "devIndicators": { "position": "bottom-left" }, "onDemandEntries": { "maxInactiveAge": 6e4, "pagesBufferLength": 5 }, "basePath": "", "sassOptions": {}, "trailingSlash": false, "i18n": null, "productionBrowserSourceMaps": false, "excludeDefaultMomentLocales": true, "reactProductionProfiling": false, "reactStrictMode": null, "reactMaxHeadersLength": 6e3, "httpAgentOptions": { "keepAlive": true }, "logging": { "serverFunctions": true, "browserToTerminal": "warn" }, "compiler": {}, "expireTime": 31536e3, "staticPageGenerationTimeout": 60, "output": "standalone", "modularizeImports": { "@mui/icons-material": { "transform": "@mui/icons-material/{{member}}" }, "lodash": { "transform": "lodash/{{member}}" } }, "outputFileTracingRoot": "/home/runner/work/alook/alook", "cacheComponents": false, "cacheLife": { "default": { "stale": 300, "revalidate": 900, "expire": 4294967294 }, "seconds": { "stale": 30, "revalidate": 1, "expire": 60 }, "minutes": { "stale": 300, "revalidate": 60, "expire": 3600 }, "hours": { "stale": 300, "revalidate": 3600, "expire": 86400 }, "days": { "stale": 300, "revalidate": 86400, "expire": 604800 }, "weeks": { "stale": 300, "revalidate": 604800, "expire": 2592e3 }, "max": { "stale": 300, "revalidate": 2592e3, "expire": 31536e3 } }, "cacheHandlers": {}, "experimental": { "appNewScrollHandler": false, "useSkewCookie": false, "cssChunking": true, "multiZoneDraftMode": false, "appNavFailHandling": false, "prerenderEarlyExit": true, "serverMinification": true, "linkNoTouchStart": false, "caseSensitiveRoutes": false, "cachedNavigations": false, "partialFallbacks": false, "dynamicOnHover": false, "varyParams": false, "prefetchInlining": false, "preloadEntriesOnStart": true, "clientRouterFilter": true, "clientRouterFilterRedirects": false, "fetchCacheKeyPrefix": "", "proxyPrefetch": "flexible", "optimisticClientCache": true, "manualClientBasePath": false, "cpus": 3, "memoryBasedWorkersCount": false, "imgOptConcurrency": null, "imgOptTimeoutInSeconds": 7, "imgOptMaxInputPixels": 268402689, "imgOptSequentialRead": null, "imgOptSkipMetadata": null, "isrFlushToDisk": true, "workerThreads": false, "optimizeCss": false, "nextScriptWorkers": false, "scrollRestoration": false, "externalDir": false, "disableOptimizedLoading": false, "gzipSize": true, "craCompat": false, "esmExternals": true, "fullySpecified": false, "swcTraceProfiling": false, "forceSwcTransforms": false, "largePageDataBytes": 128e3, "typedEnv": false, "parallelServerCompiles": false, "parallelServerBuildTraces": false, "ppr": false, "authInterrupts": false, "webpackMemoryOptimizations": false, "optimizeServerReact": true, "strictRouteTypes": false, "viewTransition": false, "removeUncaughtErrorAndRejectionListeners": false, "validateRSCRequestHeaders": false, "staleTimes": { "dynamic": 0, "static": 300 }, "reactDebugChannel": true, "serverComponentsHmrCache": true, "staticGenerationMaxConcurrency": 8, "staticGenerationMinPagesPerWorker": 25, "transitionIndicator": false, "gestureTransition": false, "inlineCss": false, "useCache": false, "globalNotFound": false, "browserDebugInfoInTerminal": "warn", "lockDistDir": true, "proxyClientMaxBodySize": 10485760, "hideLogsAfterAbort": false, "mcpServer": true, "turbopackFileSystemCacheForDev": true, "turbopackFileSystemCacheForBuild": false, "turbopackInferModuleSideEffects": true, "turbopackPluginRuntimeStrategy": "childProcesses", "optimizePackageImports": ["lucide-react", "date-fns", "lodash-es", "ramda", "antd", "react-bootstrap", "ahooks", "@ant-design/icons", "@headlessui/react", "@headlessui-float/react", "@heroicons/react/20/solid", "@heroicons/react/24/solid", "@heroicons/react/24/outline", "@visx/visx", "@tremor/react", "rxjs", "@mui/material", "@mui/icons-material", "recharts", "react-use", "effect", "@effect/schema", "@effect/platform", "@effect/platform-node", "@effect/platform-browser", "@effect/platform-bun", "@effect/sql", "@effect/sql-mssql", "@effect/sql-mysql2", "@effect/sql-pg", "@effect/sql-sqlite-node", "@effect/sql-sqlite-bun", "@effect/sql-sqlite-wasm", "@effect/sql-sqlite-react-native", "@effect/rpc", "@effect/rpc-http", "@effect/typeclass", "@effect/experimental", "@effect/opentelemetry", "@material-ui/core", "@material-ui/icons", "@tabler/icons-react", "mui-core", "react-icons/ai", "react-icons/bi", "react-icons/bs", "react-icons/cg", "react-icons/ci", "react-icons/di", "react-icons/fa", "react-icons/fa6", "react-icons/fc", "react-icons/fi", "react-icons/gi", "react-icons/go", "react-icons/gr", "react-icons/hi", "react-icons/hi2", "react-icons/im", "react-icons/io", "react-icons/io5", "react-icons/lia", "react-icons/lib", "react-icons/lu", "react-icons/md", "react-icons/pi", "react-icons/ri", "react-icons/rx", "react-icons/si", "react-icons/sl", "react-icons/tb", "react-icons/tfi", "react-icons/ti", "react-icons/vsc", "react-icons/wi"], "trustHostHeader": false, "isExperimentalCompile": false }, "htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight", "bundlePagesRouterDependencies": false, "configFileName": "next.config.ts", "serverExternalPackages": ["@better-auth/core"], "turbopack": { "root": "/home/runner/work/alook/alook", "rules": { "{*,next-mdx-rule}": [{ "loaders": [{ "loader": "/home/runner/work/alook/alook/node_modules/.pnpm/@next+mdx@16.2.6_@mdx-js+loader@3.1.1_@mdx-js+react@3.1.1_@types+react@19.2.15_react@19.2.6_/node_modules/@next/mdx/mdx-js-loader.js", "options": { "providerImportSource": "next-mdx-import-source-file", "remarkPlugins": ["remark-gfm"], "rehypePlugins": ["rehype-slug", ["rehype-autolink-headings", { "behavior": "wrap" }], ["rehype-external-links", { "target": "_blank", "rel": ["noopener", "noreferrer"] }], ["rehype-pretty-code", { "theme": { "light": "vitesse-light", "dark": "vitesse-dark" }, "keepBackground": false }]] } }], "as": "*.tsx", "condition": { "path": {} } }] }, "resolveAlias": { "next-mdx-import-source-file": "@vercel/turbopack-next/mdx-import-source" } }, "distDirRoot": ".next" };
1271
- var BuildId = "LzjT49JW_J_-C3CU-45ou";
1271
+ var BuildId = "1HIX5exhB6xRr_rbtiK-8";
1272
1272
  var HtmlPages = ["/404", "/500"];
1273
1273
  var RoutesManifest = { "basePath": "", "rewrites": { "beforeFiles": [], "afterFiles": [], "fallback": [] }, "redirects": [{ "source": "/:path+/", "destination": "/:path+", "internal": true, "priority": true, "statusCode": 308, "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" }], "routes": { "static": [{ "page": "/", "regex": "^/(?:/)?$", "routeKeys": {}, "namedRegex": "^/(?:/)?$" }, { "page": "/_global-error", "regex": "^/_global\\-error(?:/)?$", "routeKeys": {}, "namedRegex": "^/_global\\-error(?:/)?$" }, { "page": "/_not-found", "regex": "^/_not\\-found(?:/)?$", "routeKeys": {}, "namedRegex": "^/_not\\-found(?:/)?$" }, { "page": "/.well-known/apple-app-site-association", "regex": "^/\\.well\\-known/apple\\-app\\-site\\-association(?:/)?$", "routeKeys": {}, "namedRegex": "^/\\.well\\-known/apple\\-app\\-site\\-association(?:/)?$" }, { "page": "/.well-known/assetlinks.json", "regex": "^/\\.well\\-known/assetlinks\\.json(?:/)?$", "routeKeys": {}, "namedRegex": "^/\\.well\\-known/assetlinks\\.json(?:/)?$" }, { "page": "/api/agent-links", "regex": "^/api/agent\\-links(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agent\\-links(?:/)?$" }, { "page": "/api/agents", "regex": "^/api/agents(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents(?:/)?$" }, { "page": "/api/agents/active-task-counts", "regex": "^/api/agents/active\\-task\\-counts(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/active\\-task\\-counts(?:/)?$" }, { "page": "/api/agents/active-tasks", "regex": "^/api/agents/active\\-tasks(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/active\\-tasks(?:/)?$" }, { "page": "/api/agents/pins", "regex": "^/api/agents/pins(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/pins(?:/)?$" }, { "page": "/api/agents/pins/reorder", "regex": "^/api/agents/pins/reorder(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/pins/reorder(?:/)?$" }, { "page": "/api/agents/recruit", "regex": "^/api/agents/recruit(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/recruit(?:/)?$" }, { "page": "/api/agents/sidebar/reorder", "regex": "^/api/agents/sidebar/reorder(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/agents/sidebar/reorder(?:/)?$" }, { "page": "/api/artifacts", "regex": "^/api/artifacts(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/artifacts(?:/)?$" }, { "page": "/api/artifacts/upload", "regex": "^/api/artifacts/upload(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/artifacts/upload(?:/)?$" }, { "page": "/api/calendar", "regex": "^/api/calendar(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/calendar(?:/)?$" }, { "page": "/api/channels", "regex": "^/api/channels(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/channels(?:/)?$" }, { "page": "/api/channels/reorder", "regex": "^/api/channels/reorder(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/channels/reorder(?:/)?$" }, { "page": "/api/cli/latest-version", "regex": "^/api/cli/latest\\-version(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/cli/latest\\-version(?:/)?$" }, { "page": "/api/config/min-version", "regex": "^/api/config/min\\-version(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/config/min\\-version(?:/)?$" }, { "page": "/api/config/model-options", "regex": "^/api/config/model\\-options(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/config/model\\-options(?:/)?$" }, { "page": "/api/conversations", "regex": "^/api/conversations(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/conversations(?:/)?$" }, { "page": "/api/conversations/check-fresh", "regex": "^/api/conversations/check\\-fresh(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/conversations/check\\-fresh(?:/)?$" }, { "page": "/api/daemon/deregister", "regex": "^/api/daemon/deregister(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/deregister(?:/)?$" }, { "page": "/api/daemon/heartbeat", "regex": "^/api/daemon/heartbeat(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/heartbeat(?:/)?$" }, { "page": "/api/daemon/register", "regex": "^/api/daemon/register(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/register(?:/)?$" }, { "page": "/api/daemon/skills/sync", "regex": "^/api/daemon/skills/sync(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/skills/sync(?:/)?$" }, { "page": "/api/daemon/sweep", "regex": "^/api/daemon/sweep(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/sweep(?:/)?$" }, { "page": "/api/daemon/tasks/poll", "regex": "^/api/daemon/tasks/poll(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/tasks/poll(?:/)?$" }, { "page": "/api/daemon/workspace/report", "regex": "^/api/daemon/workspace/report(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daemon/workspace/report(?:/)?$" }, { "page": "/api/daily-quote", "regex": "^/api/daily\\-quote(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/daily\\-quote(?:/)?$" }, { "page": "/api/email", "regex": "^/api/email(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/email(?:/)?$" }, { "page": "/api/email/notify", "regex": "^/api/email/notify(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/email/notify(?:/)?$" }, { "page": "/api/email/send", "regex": "^/api/email/send(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/email/send(?:/)?$" }, { "page": "/api/email/upload", "regex": "^/api/email/upload(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/email/upload(?:/)?$" }, { "page": "/api/flags", "regex": "^/api/flags(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/flags(?:/)?$" }, { "page": "/api/flags/count", "regex": "^/api/flags/count(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/flags/count(?:/)?$" }, { "page": "/api/health", "regex": "^/api/health(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/health(?:/)?$" }, { "page": "/api/inbox", "regex": "^/api/inbox(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/inbox(?:/)?$" }, { "page": "/api/inbox/count", "regex": "^/api/inbox/count(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/inbox/count(?:/)?$" }, { "page": "/api/inbox/read", "regex": "^/api/inbox/read(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/inbox/read(?:/)?$" }, { "page": "/api/inbox/read-all", "regex": "^/api/inbox/read\\-all(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/inbox/read\\-all(?:/)?$" }, { "page": "/api/issues", "regex": "^/api/issues(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/issues(?:/)?$" }, { "page": "/api/machine-tokens", "regex": "^/api/machine\\-tokens(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/machine\\-tokens(?:/)?$" }, { "page": "/api/machine-tokens/activate", "regex": "^/api/machine\\-tokens/activate(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/machine\\-tokens/activate(?:/)?$" }, { "page": "/api/machine-tokens/bind-workspace", "regex": "^/api/machine\\-tokens/bind\\-workspace(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/machine\\-tokens/bind\\-workspace(?:/)?$" }, { "page": "/api/machine-tokens/status", "regex": "^/api/machine\\-tokens/status(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/machine\\-tokens/status(?:/)?$" }, { "page": "/api/me", "regex": "^/api/me(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/me(?:/)?$" }, { "page": "/api/meeting/callback", "regex": "^/api/meeting/callback(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/meeting/callback(?:/)?$" }, { "page": "/api/members/me", "regex": "^/api/members/me(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/members/me(?:/)?$" }, { "page": "/api/runtimes", "regex": "^/api/runtimes(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/runtimes(?:/)?$" }, { "page": "/api/runtimes/machine", "regex": "^/api/runtimes/machine(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/runtimes/machine(?:/)?$" }, { "page": "/api/studios", "regex": "^/api/studios(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/studios(?:/)?$" }, { "page": "/api/studios/check-handles", "regex": "^/api/studios/check\\-handles(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/studios/check\\-handles(?:/)?$" }, { "page": "/api/studios/check-name", "regex": "^/api/studios/check\\-name(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/studios/check\\-name(?:/)?$" }, { "page": "/api/traces", "regex": "^/api/traces(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/traces(?:/)?$" }, { "page": "/api/workspaces", "regex": "^/api/workspaces(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/workspaces(?:/)?$" }, { "page": "/api/ws/token", "regex": "^/api/ws/token(?:/)?$", "routeKeys": {}, "namedRegex": "^/api/ws/token(?:/)?$" }, { "page": "/device", "regex": "^/device(?:/)?$", "routeKeys": {}, "namedRegex": "^/device(?:/)?$" }, { "page": "/og", "regex": "^/og(?:/)?$", "routeKeys": {}, "namedRegex": "^/og(?:/)?$" }, { "page": "/onboard.md", "regex": "^/onboard\\.md(?:/)?$", "routeKeys": {}, "namedRegex": "^/onboard\\.md(?:/)?$" }, { "page": "/privacy", "regex": "^/privacy(?:/)?$", "routeKeys": {}, "namedRegex": "^/privacy(?:/)?$" }, { "page": "/robots.txt", "regex": "^/robots\\.txt(?:/)?$", "routeKeys": {}, "namedRegex": "^/robots\\.txt(?:/)?$" }, { "page": "/sign-in", "regex": "^/sign\\-in(?:/)?$", "routeKeys": {}, "namedRegex": "^/sign\\-in(?:/)?$" }, { "page": "/sitemap.xml", "regex": "^/sitemap\\.xml(?:/)?$", "routeKeys": {}, "namedRegex": "^/sitemap\\.xml(?:/)?$" }, { "page": "/studio/new", "regex": "^/studio/new(?:/)?$", "routeKeys": {}, "namedRegex": "^/studio/new(?:/)?$" }, { "page": "/templates", "regex": "^/templates(?:/)?$", "routeKeys": {}, "namedRegex": "^/templates(?:/)?$" }, { "page": "/workspaces", "regex": "^/workspaces(?:/)?$", "routeKeys": {}, "namedRegex": "^/workspaces(?:/)?$" }], "dynamic": [{ "page": "/api/agent-links/[id]", "regex": "^/api/agent\\-links/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agent\\-links/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]", "regex": "^/api/agents/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]/access", "regex": "^/api/agents/([^/]+?)/access(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/access(?:/)?$" }, { "page": "/api/agents/[id]/access/[userId]", "regex": "^/api/agents/([^/]+?)/access/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPuserId": "nxtPuserId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/access/(?<nxtPuserId>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]/active-tasks", "regex": "^/api/agents/([^/]+?)/active\\-tasks(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/active\\-tasks(?:/)?$" }, { "page": "/api/agents/[id]/activity", "regex": "^/api/agents/([^/]+?)/activity(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/activity(?:/)?$" }, { "page": "/api/agents/[id]/chat-init", "regex": "^/api/agents/([^/]+?)/chat\\-init(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/chat\\-init(?:/)?$" }, { "page": "/api/agents/[id]/conversation", "regex": "^/api/agents/([^/]+?)/conversation(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/conversation(?:/)?$" }, { "page": "/api/agents/[id]/conversations", "regex": "^/api/agents/([^/]+?)/conversations(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/conversations(?:/)?$" }, { "page": "/api/agents/[id]/email-accounts", "regex": "^/api/agents/([^/]+?)/email\\-accounts(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/email\\-accounts(?:/)?$" }, { "page": "/api/agents/[id]/email-accounts/[accountId]", "regex": "^/api/agents/([^/]+?)/email\\-accounts/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPaccountId": "nxtPaccountId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/email\\-accounts/(?<nxtPaccountId>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]/email-accounts/[accountId]/sync", "regex": "^/api/agents/([^/]+?)/email\\-accounts/([^/]+?)/sync(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPaccountId": "nxtPaccountId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/email\\-accounts/(?<nxtPaccountId>[^/]+?)/sync(?:/)?$" }, { "page": "/api/agents/[id]/email-accounts/[accountId]/test", "regex": "^/api/agents/([^/]+?)/email\\-accounts/([^/]+?)/test(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPaccountId": "nxtPaccountId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/email\\-accounts/(?<nxtPaccountId>[^/]+?)/test(?:/)?$" }, { "page": "/api/agents/[id]/meetings", "regex": "^/api/agents/([^/]+?)/meetings(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/meetings(?:/)?$" }, { "page": "/api/agents/[id]/meetings/[meetingId]", "regex": "^/api/agents/([^/]+?)/meetings/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPmeetingId": "nxtPmeetingId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/meetings/(?<nxtPmeetingId>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]/meetings/[meetingId]/approve", "regex": "^/api/agents/([^/]+?)/meetings/([^/]+?)/approve(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPmeetingId": "nxtPmeetingId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/meetings/(?<nxtPmeetingId>[^/]+?)/approve(?:/)?$" }, { "page": "/api/agents/[id]/meetings/[meetingId]/stop", "regex": "^/api/agents/([^/]+?)/meetings/([^/]+?)/stop(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPmeetingId": "nxtPmeetingId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/meetings/(?<nxtPmeetingId>[^/]+?)/stop(?:/)?$" }, { "page": "/api/agents/[id]/pin", "regex": "^/api/agents/([^/]+?)/pin(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/pin(?:/)?$" }, { "page": "/api/agents/[id]/skills", "regex": "^/api/agents/([^/]+?)/skills(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/skills(?:/)?$" }, { "page": "/api/agents/[id]/whitelist", "regex": "^/api/agents/([^/]+?)/whitelist(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/whitelist(?:/)?$" }, { "page": "/api/agents/[id]/whitelist/[whitelistId]", "regex": "^/api/agents/([^/]+?)/whitelist/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPwhitelistId": "nxtPwhitelistId" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/whitelist/(?<nxtPwhitelistId>[^/]+?)(?:/)?$" }, { "page": "/api/agents/[id]/workspace/browse", "regex": "^/api/agents/([^/]+?)/workspace/browse(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/agents/(?<nxtPid>[^/]+?)/workspace/browse(?:/)?$" }, { "page": "/api/artifacts/[id]", "regex": "^/api/artifacts/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artifacts/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/artifacts/[id]/content", "regex": "^/api/artifacts/([^/]+?)/content(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/artifacts/(?<nxtPid>[^/]+?)/content(?:/)?$" }, { "page": "/api/auth/[...all]", "regex": "^/api/auth/(.+?)(?:/)?$", "routeKeys": { "nxtPall": "nxtPall" }, "namedRegex": "^/api/auth/(?<nxtPall>.+?)(?:/)?$" }, { "page": "/api/calendar/[id]", "regex": "^/api/calendar/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/calendar/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/channels/[id]", "regex": "^/api/channels/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/channels/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/conversations/[id]", "regex": "^/api/conversations/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/conversations/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/conversations/[id]/active-task", "regex": "^/api/conversations/([^/]+?)/active\\-task(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/conversations/(?<nxtPid>[^/]+?)/active\\-task(?:/)?$" }, { "page": "/api/conversations/[id]/init", "regex": "^/api/conversations/([^/]+?)/init(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/conversations/(?<nxtPid>[^/]+?)/init(?:/)?$" }, { "page": "/api/conversations/[id]/messages", "regex": "^/api/conversations/([^/]+?)/messages(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/conversations/(?<nxtPid>[^/]+?)/messages(?:/)?$" }, { "page": "/api/daemon/conversations/[id]/messages", "regex": "^/api/daemon/conversations/([^/]+?)/messages(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/daemon/conversations/(?<nxtPid>[^/]+?)/messages(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/complete", "regex": "^/api/daemon/tasks/([^/]+?)/complete(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/complete(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/fail", "regex": "^/api/daemon/tasks/([^/]+?)/fail(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/fail(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/messages", "regex": "^/api/daemon/tasks/([^/]+?)/messages(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/messages(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/progress", "regex": "^/api/daemon/tasks/([^/]+?)/progress(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/progress(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/start", "regex": "^/api/daemon/tasks/([^/]+?)/start(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/start(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/status", "regex": "^/api/daemon/tasks/([^/]+?)/status(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/status(?:/)?$" }, { "page": "/api/daemon/tasks/[taskId]/supersede", "regex": "^/api/daemon/tasks/([^/]+?)/supersede(?:/)?$", "routeKeys": { "nxtPtaskId": "nxtPtaskId" }, "namedRegex": "^/api/daemon/tasks/(?<nxtPtaskId>[^/]+?)/supersede(?:/)?$" }, { "page": "/api/desktop/update/[target]/[arch]/[current_version]", "regex": "^/api/desktop/update/([^/]+?)/([^/]+?)/([^/]+?)(?:/)?$", "routeKeys": { "nxtPtarget": "nxtPtarget", "nxtParch": "nxtParch", "nxtPcurrent_version": "nxtPcurrent_version" }, "namedRegex": "^/api/desktop/update/(?<nxtPtarget>[^/]+?)/(?<nxtParch>[^/]+?)/(?<nxtPcurrent_version>[^/]+?)(?:/)?$" }, { "page": "/api/email/[id]", "regex": "^/api/email/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/email/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/email/[id]/attachment/[index]", "regex": "^/api/email/([^/]+?)/attachment/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPindex": "nxtPindex" }, "namedRegex": "^/api/email/(?<nxtPid>[^/]+?)/attachment/(?<nxtPindex>[^/]+?)(?:/)?$" }, { "page": "/api/email/[id]/body", "regex": "^/api/email/([^/]+?)/body(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/email/(?<nxtPid>[^/]+?)/body(?:/)?$" }, { "page": "/api/email/[id]/raw", "regex": "^/api/email/([^/]+?)/raw(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/email/(?<nxtPid>[^/]+?)/raw(?:/)?$" }, { "page": "/api/email/[id]/thread", "regex": "^/api/email/([^/]+?)/thread(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/email/(?<nxtPid>[^/]+?)/thread(?:/)?$" }, { "page": "/api/flags/[messageId]", "regex": "^/api/flags/([^/]+?)(?:/)?$", "routeKeys": { "nxtPmessageId": "nxtPmessageId" }, "namedRegex": "^/api/flags/(?<nxtPmessageId>[^/]+?)(?:/)?$" }, { "page": "/api/invite/[token]", "regex": "^/api/invite/([^/]+?)(?:/)?$", "routeKeys": { "nxtPtoken": "nxtPtoken" }, "namedRegex": "^/api/invite/(?<nxtPtoken>[^/]+?)(?:/)?$" }, { "page": "/api/issues/[id]", "regex": "^/api/issues/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/issues/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/issues/[id]/comments", "regex": "^/api/issues/([^/]+?)/comments(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/issues/(?<nxtPid>[^/]+?)/comments(?:/)?$" }, { "page": "/api/machine-tokens/[id]", "regex": "^/api/machine\\-tokens/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/machine\\-tokens/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/runtimes/[runtimeId]/rescan", "regex": "^/api/runtimes/([^/]+?)/rescan(?:/)?$", "routeKeys": { "nxtPruntimeId": "nxtPruntimeId" }, "namedRegex": "^/api/runtimes/(?<nxtPruntimeId>[^/]+?)/rescan(?:/)?$" }, { "page": "/api/runtimes/[runtimeId]/update", "regex": "^/api/runtimes/([^/]+?)/update(?:/)?$", "routeKeys": { "nxtPruntimeId": "nxtPruntimeId" }, "namedRegex": "^/api/runtimes/(?<nxtPruntimeId>[^/]+?)/update(?:/)?$" }, { "page": "/api/tasks/[id]", "regex": "^/api/tasks/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/tasks/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/tasks/[id]/messages", "regex": "^/api/tasks/([^/]+?)/messages(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/tasks/(?<nxtPid>[^/]+?)/messages(?:/)?$" }, { "page": "/api/tasks/[id]/retry", "regex": "^/api/tasks/([^/]+?)/retry(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/tasks/(?<nxtPid>[^/]+?)/retry(?:/)?$" }, { "page": "/api/traces/[traceId]", "regex": "^/api/traces/([^/]+?)(?:/)?$", "routeKeys": { "nxtPtraceId": "nxtPtraceId" }, "namedRegex": "^/api/traces/(?<nxtPtraceId>[^/]+?)(?:/)?$" }, { "page": "/api/workspaces/[id]", "regex": "^/api/workspaces/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/api/workspaces/[id]/invites", "regex": "^/api/workspaces/([^/]+?)/invites(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)/invites(?:/)?$" }, { "page": "/api/workspaces/[id]/invites/[inviteId]", "regex": "^/api/workspaces/([^/]+?)/invites/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPinviteId": "nxtPinviteId" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)/invites/(?<nxtPinviteId>[^/]+?)(?:/)?$" }, { "page": "/api/workspaces/[id]/members", "regex": "^/api/workspaces/([^/]+?)/members(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)/members(?:/)?$" }, { "page": "/api/workspaces/[id]/members/[memberId]", "regex": "^/api/workspaces/([^/]+?)/members/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid", "nxtPmemberId": "nxtPmemberId" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)/members/(?<nxtPmemberId>[^/]+?)(?:/)?$" }, { "page": "/api/workspaces/[id]/overview", "regex": "^/api/workspaces/([^/]+?)/overview(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/api/workspaces/(?<nxtPid>[^/]+?)/overview(?:/)?$" }, { "page": "/invite/[token]", "regex": "^/invite/([^/]+?)(?:/)?$", "routeKeys": { "nxtPtoken": "nxtPtoken" }, "namedRegex": "^/invite/(?<nxtPtoken>[^/]+?)(?:/)?$" }, { "page": "/templates/[id]", "regex": "^/templates/([^/]+?)(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/templates/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/templates/[id]/json", "regex": "^/templates/([^/]+?)/json(?:/)?$", "routeKeys": { "nxtPid": "nxtPid" }, "namedRegex": "^/templates/(?<nxtPid>[^/]+?)/json(?:/)?$" }, { "page": "/w/[slug]", "regex": "^/w/([^/]+?)(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)(?:/)?$" }, { "page": "/w/[slug]/agents", "regex": "^/w/([^/]+?)/agents(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents(?:/)?$" }, { "page": "/w/[slug]/agents/new", "regex": "^/w/([^/]+?)/agents/new(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/new(?:/)?$" }, { "page": "/w/[slug]/agents/[id]", "regex": "^/w/([^/]+?)/agents/([^/]+?)(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/activity", "regex": "^/w/([^/]+?)/agents/([^/]+?)/activity(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/activity(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/chat", "regex": "^/w/([^/]+?)/agents/([^/]+?)/chat(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/chat(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/chat/[convId]", "regex": "^/w/([^/]+?)/agents/([^/]+?)/chat/([^/]+?)(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid", "nxtPconvId": "nxtPconvId" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/chat/(?<nxtPconvId>[^/]+?)(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/email", "regex": "^/w/([^/]+?)/agents/([^/]+?)/email(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/email(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/files", "regex": "^/w/([^/]+?)/agents/([^/]+?)/files(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/files(?:/)?$" }, { "page": "/w/[slug]/agents/[id]/meetings", "regex": "^/w/([^/]+?)/agents/([^/]+?)/meetings(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPid": "nxtPid" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/agents/(?<nxtPid>[^/]+?)/meetings(?:/)?$" }, { "page": "/w/[slug]/calendar", "regex": "^/w/([^/]+?)/calendar(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/calendar(?:/)?$" }, { "page": "/w/[slug]/flags", "regex": "^/w/([^/]+?)/flags(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/flags(?:/)?$" }, { "page": "/w/[slug]/help/email-setup", "regex": "^/w/([^/]+?)/help/email\\-setup(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/help/email\\-setup(?:/)?$" }, { "page": "/w/[slug]/home", "regex": "^/w/([^/]+?)/home(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/home(?:/)?$" }, { "page": "/w/[slug]/issues", "regex": "^/w/([^/]+?)/issues(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/issues(?:/)?$" }, { "page": "/w/[slug]/runtimes", "regex": "^/w/([^/]+?)/runtimes(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/runtimes(?:/)?$" }, { "page": "/w/[slug]/settings", "regex": "^/w/([^/]+?)/settings(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/settings(?:/)?$" }, { "page": "/w/[slug]/threads", "regex": "^/w/([^/]+?)/threads(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/threads(?:/)?$" }, { "page": "/w/[slug]/threads/[traceId]", "regex": "^/w/([^/]+?)/threads/([^/]+?)(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug", "nxtPtraceId": "nxtPtraceId" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/threads/(?<nxtPtraceId>[^/]+?)(?:/)?$" }, { "page": "/w/[slug]/unread", "regex": "^/w/([^/]+?)/unread(?:/)?$", "routeKeys": { "nxtPslug": "nxtPslug" }, "namedRegex": "^/w/(?<nxtPslug>[^/]+?)/unread(?:/)?$" }], "data": { "static": [], "dynamic": [] } }, "locales": [] };
1274
- var PrerenderManifest = { "version": 4, "routes": { "/_global-error": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/_global-error", "dataRoute": "/_global-error.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/_not-found": { "initialStatus": 404, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/_not-found", "dataRoute": "/_not-found.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/device": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/device", "dataRoute": "/device.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/privacy": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/privacy", "dataRoute": "/privacy.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/robots.txt": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "text/plain", "x-next-cache-tags": "_N_T_/layout,_N_T_/robots.txt/layout,_N_T_/robots.txt/route,_N_T_/robots.txt" }, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/robots.txt", "dataRoute": null, "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/sitemap.xml": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "application/xml", "x-next-cache-tags": "_N_T_/layout,_N_T_/sitemap.xml/layout,_N_T_/sitemap.xml/route,_N_T_/sitemap.xml" }, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/sitemap.xml", "dataRoute": null, "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "a85a7fdbc57e00149e830cb3c7488207", "previewModeSigningKey": "77d194d5434043a39cea4c607850c3add9892e1df46520eaed994919b464ace4", "previewModeEncryptionKey": "bb8ca2e0f10c7f8c0736a48898c34c26e2035a9325334008a28e35e367866080" } };
1275
- var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge/chunks/_0hofbt5._.js", "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_05qoh-5.js", "server/edge/chunks/node_modules__pnpm_0yc2vrw._.js", "server/edge/chunks/[root-of-the-server]__0y.93rt._.js", "server/edge/chunks/118y_@better-auth_core_dist_0lg92m2._.js", "server/edge/chunks/[root-of-the-server]__0oytv_q._.js", "server/edge/chunks/0kwo_kysely_dist_esm_0~ppdkt._.js", "server/edge/chunks/11ag_@better-auth_kysely-adapter_dist_index_mjs_0nkxiub._.js", "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_0-ubsnc.js"], "name": "middleware", "page": "/", "entrypoint": "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_0-ubsnc.js", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next|favicon\\.ico|.*\\..*).*))(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$", "originalSource": "/((?!_next|favicon\\.ico|.*\\..*).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "LzjT49JW_J_-C3CU-45ou", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "aR7BWk91sqqvxgsyUdZchuCvi3+0jz94wGGi42+B6sM=", "__NEXT_PREVIEW_MODE_ID": "a85a7fdbc57e00149e830cb3c7488207", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "bb8ca2e0f10c7f8c0736a48898c34c26e2035a9325334008a28e35e367866080", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "77d194d5434043a39cea4c607850c3add9892e1df46520eaed994919b464ace4" } } }, "sortedMiddleware": ["/"], "functions": {} };
1274
+ var PrerenderManifest = { "version": 4, "routes": { "/_global-error": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/_global-error", "dataRoute": "/_global-error.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/_not-found": { "initialStatus": 404, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/_not-found", "dataRoute": "/_not-found.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/device": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/device", "dataRoute": "/device.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/privacy": { "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/privacy", "dataRoute": "/privacy.rsc", "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/robots.txt": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "text/plain", "x-next-cache-tags": "_N_T_/layout,_N_T_/robots.txt/layout,_N_T_/robots.txt/route,_N_T_/robots.txt" }, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/robots.txt", "dataRoute": null, "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] }, "/sitemap.xml": { "initialHeaders": { "cache-control": "public, max-age=0, must-revalidate", "content-type": "application/xml", "x-next-cache-tags": "_N_T_/layout,_N_T_/sitemap.xml/layout,_N_T_/sitemap.xml/route,_N_T_/sitemap.xml" }, "experimentalBypassFor": [{ "type": "header", "key": "next-action" }, { "type": "header", "key": "content-type", "value": "multipart/form-data;.*" }], "initialRevalidateSeconds": false, "srcRoute": "/sitemap.xml", "dataRoute": null, "allowHeader": ["host", "x-matched-path", "x-prerender-revalidate", "x-prerender-revalidate-if-generated", "x-next-revalidated-tags", "x-next-revalidate-tag-token"] } }, "dynamicRoutes": {}, "notFoundRoutes": [], "preview": { "previewModeId": "588dc6d963ad4ed174238270c9fc6155", "previewModeSigningKey": "93d19cda69d83e272259f771acdcbb8ad9975bb05d202c30fa77898d22409934", "previewModeEncryptionKey": "ebffbc4b961e93eafa86e515bc84fee117fc90f704d70c6b69e3a467ebc56f79" } };
1275
+ var MiddlewareManifest = { "version": 3, "middleware": { "/": { "files": ["server/edge/chunks/_0hofbt5._.js", "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_05qoh-5.js", "server/edge/chunks/node_modules__pnpm_0yc2vrw._.js", "server/edge/chunks/[root-of-the-server]__0y.93rt._.js", "server/edge/chunks/118y_@better-auth_core_dist_0lg92m2._.js", "server/edge/chunks/[root-of-the-server]__0oytv_q._.js", "server/edge/chunks/0kwo_kysely_dist_esm_0~ppdkt._.js", "server/edge/chunks/11ag_@better-auth_kysely-adapter_dist_index_mjs_0nkxiub._.js", "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_0-ubsnc.js"], "name": "middleware", "page": "/", "entrypoint": "server/edge/chunks/058b_next_dist_esm_build_templates_edge-wrapper_0-ubsnc.js", "matchers": [{ "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/((?!_next|favicon\\.ico|.*\\..*).*))(\\.json|\\.rsc|\\.segments\\/.+\\.segment\\.rsc)?[\\/#\\?]?$", "originalSource": "/((?!_next|favicon\\.ico|.*\\..*).*)" }], "wasm": [], "assets": [], "env": { "__NEXT_BUILD_ID": "1HIX5exhB6xRr_rbtiK-8", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "inWDzkCQRE6EjWsoWocQelbqKO9psmrua9llOzmCZCE=", "__NEXT_PREVIEW_MODE_ID": "588dc6d963ad4ed174238270c9fc6155", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "ebffbc4b961e93eafa86e515bc84fee117fc90f704d70c6b69e3a467ebc56f79", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "93d19cda69d83e272259f771acdcbb8ad9975bb05d202c30fa77898d22409934" } } }, "sortedMiddleware": ["/"], "functions": {} };
1276
1276
  var AppPathRoutesManifest = { "/(app)/invite/[token]/page": "/invite/[token]", "/(app)/studio/new/page": "/studio/new", "/(app)/w/[slug]/agents/[id]/activity/page": "/w/[slug]/agents/[id]/activity", "/(app)/w/[slug]/agents/[id]/chat/[convId]/page": "/w/[slug]/agents/[id]/chat/[convId]", "/(app)/w/[slug]/agents/[id]/chat/page": "/w/[slug]/agents/[id]/chat", "/(app)/w/[slug]/agents/[id]/email/page": "/w/[slug]/agents/[id]/email", "/(app)/w/[slug]/agents/[id]/files/page": "/w/[slug]/agents/[id]/files", "/(app)/w/[slug]/agents/[id]/meetings/page": "/w/[slug]/agents/[id]/meetings", "/(app)/w/[slug]/agents/[id]/page": "/w/[slug]/agents/[id]", "/(app)/w/[slug]/agents/new/page": "/w/[slug]/agents/new", "/(app)/w/[slug]/agents/page": "/w/[slug]/agents", "/(app)/w/[slug]/calendar/page": "/w/[slug]/calendar", "/(app)/w/[slug]/flags/page": "/w/[slug]/flags", "/(app)/w/[slug]/help/email-setup/page": "/w/[slug]/help/email-setup", "/(app)/w/[slug]/home/page": "/w/[slug]/home", "/(app)/w/[slug]/issues/page": "/w/[slug]/issues", "/(app)/w/[slug]/page": "/w/[slug]", "/(app)/w/[slug]/runtimes/page": "/w/[slug]/runtimes", "/(app)/w/[slug]/settings/page": "/w/[slug]/settings", "/(app)/w/[slug]/threads/[traceId]/page": "/w/[slug]/threads/[traceId]", "/(app)/w/[slug]/threads/page": "/w/[slug]/threads", "/(app)/w/[slug]/unread/page": "/w/[slug]/unread", "/(app)/workspaces/page": "/workspaces", "/(auth)/sign-in/page": "/sign-in", "/.well-known/apple-app-site-association/route": "/.well-known/apple-app-site-association", "/.well-known/assetlinks.json/route": "/.well-known/assetlinks.json", "/_global-error/page": "/_global-error", "/_not-found/page": "/_not-found", "/api/agent-links/[id]/route": "/api/agent-links/[id]", "/api/agent-links/route": "/api/agent-links", "/api/agents/[id]/access/[userId]/route": "/api/agents/[id]/access/[userId]", "/api/agents/[id]/access/route": "/api/agents/[id]/access", "/api/agents/[id]/active-tasks/route": "/api/agents/[id]/active-tasks", "/api/agents/[id]/activity/route": "/api/agents/[id]/activity", "/api/agents/[id]/chat-init/route": "/api/agents/[id]/chat-init", "/api/agents/[id]/conversation/route": "/api/agents/[id]/conversation", "/api/agents/[id]/conversations/route": "/api/agents/[id]/conversations", "/api/agents/[id]/email-accounts/[accountId]/route": "/api/agents/[id]/email-accounts/[accountId]", "/api/agents/[id]/email-accounts/[accountId]/sync/route": "/api/agents/[id]/email-accounts/[accountId]/sync", "/api/agents/[id]/email-accounts/[accountId]/test/route": "/api/agents/[id]/email-accounts/[accountId]/test", "/api/agents/[id]/email-accounts/route": "/api/agents/[id]/email-accounts", "/api/agents/[id]/meetings/[meetingId]/approve/route": "/api/agents/[id]/meetings/[meetingId]/approve", "/api/agents/[id]/meetings/[meetingId]/route": "/api/agents/[id]/meetings/[meetingId]", "/api/agents/[id]/meetings/[meetingId]/stop/route": "/api/agents/[id]/meetings/[meetingId]/stop", "/api/agents/[id]/meetings/route": "/api/agents/[id]/meetings", "/api/agents/[id]/pin/route": "/api/agents/[id]/pin", "/api/agents/[id]/route": "/api/agents/[id]", "/api/agents/[id]/skills/route": "/api/agents/[id]/skills", "/api/agents/[id]/whitelist/[whitelistId]/route": "/api/agents/[id]/whitelist/[whitelistId]", "/api/agents/[id]/whitelist/route": "/api/agents/[id]/whitelist", "/api/agents/[id]/workspace/browse/route": "/api/agents/[id]/workspace/browse", "/api/agents/active-task-counts/route": "/api/agents/active-task-counts", "/api/agents/active-tasks/route": "/api/agents/active-tasks", "/api/agents/pins/reorder/route": "/api/agents/pins/reorder", "/api/agents/pins/route": "/api/agents/pins", "/api/agents/recruit/route": "/api/agents/recruit", "/api/agents/route": "/api/agents", "/api/agents/sidebar/reorder/route": "/api/agents/sidebar/reorder", "/api/artifacts/[id]/content/route": "/api/artifacts/[id]/content", "/api/artifacts/[id]/route": "/api/artifacts/[id]", "/api/artifacts/route": "/api/artifacts", "/api/artifacts/upload/route": "/api/artifacts/upload", "/api/auth/[...all]/route": "/api/auth/[...all]", "/api/calendar/[id]/route": "/api/calendar/[id]", "/api/calendar/route": "/api/calendar", "/api/channels/[id]/route": "/api/channels/[id]", "/api/channels/reorder/route": "/api/channels/reorder", "/api/channels/route": "/api/channels", "/api/cli/latest-version/route": "/api/cli/latest-version", "/api/config/min-version/route": "/api/config/min-version", "/api/config/model-options/route": "/api/config/model-options", "/api/conversations/[id]/active-task/route": "/api/conversations/[id]/active-task", "/api/conversations/[id]/init/route": "/api/conversations/[id]/init", "/api/conversations/[id]/messages/route": "/api/conversations/[id]/messages", "/api/conversations/[id]/route": "/api/conversations/[id]", "/api/conversations/check-fresh/route": "/api/conversations/check-fresh", "/api/conversations/route": "/api/conversations", "/api/daemon/conversations/[id]/messages/route": "/api/daemon/conversations/[id]/messages", "/api/daemon/deregister/route": "/api/daemon/deregister", "/api/daemon/heartbeat/route": "/api/daemon/heartbeat", "/api/daemon/register/route": "/api/daemon/register", "/api/daemon/skills/sync/route": "/api/daemon/skills/sync", "/api/daemon/sweep/route": "/api/daemon/sweep", "/api/daemon/tasks/[taskId]/complete/route": "/api/daemon/tasks/[taskId]/complete", "/api/daemon/tasks/[taskId]/fail/route": "/api/daemon/tasks/[taskId]/fail", "/api/daemon/tasks/[taskId]/messages/route": "/api/daemon/tasks/[taskId]/messages", "/api/daemon/tasks/[taskId]/progress/route": "/api/daemon/tasks/[taskId]/progress", "/api/daemon/tasks/[taskId]/start/route": "/api/daemon/tasks/[taskId]/start", "/api/daemon/tasks/[taskId]/status/route": "/api/daemon/tasks/[taskId]/status", "/api/daemon/tasks/[taskId]/supersede/route": "/api/daemon/tasks/[taskId]/supersede", "/api/daemon/tasks/poll/route": "/api/daemon/tasks/poll", "/api/daemon/workspace/report/route": "/api/daemon/workspace/report", "/api/daily-quote/route": "/api/daily-quote", "/api/desktop/update/[target]/[arch]/[current_version]/route": "/api/desktop/update/[target]/[arch]/[current_version]", "/api/email/[id]/attachment/[index]/route": "/api/email/[id]/attachment/[index]", "/api/email/[id]/body/route": "/api/email/[id]/body", "/api/email/[id]/raw/route": "/api/email/[id]/raw", "/api/email/[id]/route": "/api/email/[id]", "/api/email/[id]/thread/route": "/api/email/[id]/thread", "/api/email/notify/route": "/api/email/notify", "/api/email/route": "/api/email", "/api/email/send/route": "/api/email/send", "/api/email/upload/route": "/api/email/upload", "/api/flags/[messageId]/route": "/api/flags/[messageId]", "/api/flags/count/route": "/api/flags/count", "/api/flags/route": "/api/flags", "/api/health/route": "/api/health", "/api/inbox/count/route": "/api/inbox/count", "/api/inbox/read-all/route": "/api/inbox/read-all", "/api/inbox/read/route": "/api/inbox/read", "/api/inbox/route": "/api/inbox", "/api/invite/[token]/route": "/api/invite/[token]", "/api/issues/[id]/comments/route": "/api/issues/[id]/comments", "/api/issues/[id]/route": "/api/issues/[id]", "/api/issues/route": "/api/issues", "/api/machine-tokens/[id]/route": "/api/machine-tokens/[id]", "/api/machine-tokens/activate/route": "/api/machine-tokens/activate", "/api/machine-tokens/bind-workspace/route": "/api/machine-tokens/bind-workspace", "/api/machine-tokens/route": "/api/machine-tokens", "/api/machine-tokens/status/route": "/api/machine-tokens/status", "/api/me/route": "/api/me", "/api/meeting/callback/route": "/api/meeting/callback", "/api/members/me/route": "/api/members/me", "/api/runtimes/[runtimeId]/rescan/route": "/api/runtimes/[runtimeId]/rescan", "/api/runtimes/[runtimeId]/update/route": "/api/runtimes/[runtimeId]/update", "/api/runtimes/machine/route": "/api/runtimes/machine", "/api/runtimes/route": "/api/runtimes", "/api/studios/check-handles/route": "/api/studios/check-handles", "/api/studios/check-name/route": "/api/studios/check-name", "/api/studios/route": "/api/studios", "/api/tasks/[id]/messages/route": "/api/tasks/[id]/messages", "/api/tasks/[id]/retry/route": "/api/tasks/[id]/retry", "/api/tasks/[id]/route": "/api/tasks/[id]", "/api/traces/[traceId]/route": "/api/traces/[traceId]", "/api/traces/route": "/api/traces", "/api/workspaces/[id]/invites/[inviteId]/route": "/api/workspaces/[id]/invites/[inviteId]", "/api/workspaces/[id]/invites/route": "/api/workspaces/[id]/invites", "/api/workspaces/[id]/members/[memberId]/route": "/api/workspaces/[id]/members/[memberId]", "/api/workspaces/[id]/members/route": "/api/workspaces/[id]/members", "/api/workspaces/[id]/overview/route": "/api/workspaces/[id]/overview", "/api/workspaces/[id]/route": "/api/workspaces/[id]", "/api/workspaces/route": "/api/workspaces", "/api/ws/token/route": "/api/ws/token", "/device/page": "/device", "/og/route": "/og", "/onboard.md/route": "/onboard.md", "/page": "/", "/privacy/page": "/privacy", "/robots.txt/route": "/robots.txt", "/sitemap.xml/route": "/sitemap.xml", "/templates/[id]/json/route": "/templates/[id]/json", "/templates/[id]/page": "/templates/[id]", "/templates/page": "/templates" };
1277
1277
  var FunctionsConfigManifest = { "version": 1, "functions": {} };
1278
1278
  var PagesManifest = { "/404": "pages/404.html", "/500": "pages/500.html" };
@@ -77,4 +77,4 @@ id = "3aaa92b4c2c74185b888977e5552e9bf"
77
77
 
78
78
  [vars]
79
79
  RUNTIME_MODEL_OPTIONS = '{"claude":["claude-opus-4-6","claude-sonnet-4-6","claude-haiku-4-5"],"codex":["gpt-5.4","gpt-5.3-codex"]}'
80
- MIN_CLI_VERSION = "0.0.120"
80
+ MIN_CLI_VERSION = "0.0.122"
package/dist/cli/index.js CHANGED
@@ -16986,6 +16986,7 @@ function loadCLIConfigForProfile(profile) {
16986
16986
  }
16987
16987
  const result = {
16988
16988
  server_url: cfg.server_url || "",
16989
+ session_token: cfg.session_token,
16989
16990
  watched_workspaces: cfg.watched_workspaces || []
16990
16991
  };
16991
16992
  const legacy = cfg.machine_token;
@@ -17010,6 +17011,7 @@ function saveCLIConfigForProfile(profile, profileConfig) {
17010
17011
  cfg.profiles[profile] = profileConfig;
17011
17012
  } else {
17012
17013
  cfg.server_url = profileConfig.server_url;
17014
+ cfg.session_token = profileConfig.session_token;
17013
17015
  cfg.watched_workspaces = profileConfig.watched_workspaces;
17014
17016
  delete cfg.machine_token;
17015
17017
  }
@@ -17429,6 +17431,30 @@ function openBrowser(url2) {
17429
17431
  function sleep(ms) {
17430
17432
  return new Promise((resolve) => setTimeout(resolve, ms));
17431
17433
  }
17434
+ function syncWorkspacesToConfig(serverWorkspaces, profile, sessionToken) {
17435
+ const cfg = loadCLIConfigForProfile(profile);
17436
+ const watched = cfg.watched_workspaces || [];
17437
+ const serverIds = new Set(serverWorkspaces.map((w) => w.id));
17438
+ for (const sw of serverWorkspaces) {
17439
+ const existing = watched.find((w) => w.id === sw.id);
17440
+ if (existing) {
17441
+ existing.status = "active";
17442
+ existing.name = sw.name;
17443
+ } else {
17444
+ watched.push({ id: sw.id, name: sw.name, token: "", status: "active", agent_ids: [] });
17445
+ }
17446
+ }
17447
+ for (const w of watched) {
17448
+ if (w.id && !serverIds.has(w.id) && w.status !== "registered") {
17449
+ w.status = "deleted";
17450
+ }
17451
+ }
17452
+ saveCLIConfigForProfile(profile, {
17453
+ server_url: cfg.server_url,
17454
+ session_token: sessionToken ?? cfg.session_token,
17455
+ watched_workspaces: watched
17456
+ });
17457
+ }
17432
17458
  async function pollAndActivate(opts) {
17433
17459
  const { deviceCode, expiresIn, serverUrl, profile } = opts;
17434
17460
  let interval = opts.interval;
@@ -17479,13 +17505,12 @@ async function pollAndActivate(opts) {
17479
17505
  const me = await client.getJSON("/api/me");
17480
17506
  email3 = me.email;
17481
17507
  } catch {}
17482
- let existingWorkspaceId = "";
17508
+ let serverWorkspaces = [];
17483
17509
  try {
17484
- const workspaces = await client.getJSON("/api/workspaces");
17485
- if (workspaces.length > 0) {
17486
- existingWorkspaceId = workspaces[0].id;
17487
- }
17510
+ serverWorkspaces = await client.getJSON("/api/workspaces");
17488
17511
  } catch {}
17512
+ syncWorkspacesToConfig(serverWorkspaces, profile, sessionToken);
17513
+ const existingWorkspaceId = serverWorkspaces.length > 0 ? serverWorkspaces[0].id : "";
17489
17514
  const mtUrl = existingWorkspaceId ? `/api/machine-tokens?workspace_id=${existingWorkspaceId}` : "/api/machine-tokens";
17490
17515
  let machineToken2;
17491
17516
  try {
@@ -17515,32 +17540,37 @@ if (process.argv.includes("--__login-poll")) {
17515
17540
  }
17516
17541
  async function checkExistingAuth(serverUrl, profile) {
17517
17542
  const config2 = loadCLIConfigForProfile(profile);
17543
+ const sessionToken = config2.session_token;
17518
17544
  const workspaces = config2.watched_workspaces || [];
17519
- if (workspaces.length === 0) {
17520
- return { valid: false };
17521
- }
17522
17545
  const ws = workspaces[0];
17523
- if (!ws.token) {
17546
+ const authToken = sessionToken || ws?.token;
17547
+ if (!authToken) {
17524
17548
  return { valid: false };
17525
17549
  }
17526
17550
  try {
17527
17551
  const res = await fetch(`${serverUrl}/api/workspaces`, {
17528
- headers: { Authorization: `Bearer ${ws.token}` }
17552
+ headers: { Authorization: `Bearer ${authToken}` }
17529
17553
  });
17530
17554
  if (!res.ok) {
17531
17555
  return { valid: false };
17532
17556
  }
17557
+ const serverWorkspaces = await res.json();
17558
+ const hasValidWorkspace = workspaces.some((w) => w.id && w.status !== "deleted");
17559
+ if (!hasValidWorkspace && serverWorkspaces.length > 0) {
17560
+ syncWorkspacesToConfig(serverWorkspaces, profile);
17561
+ }
17533
17562
  let email3;
17534
17563
  try {
17535
17564
  const meRes = await fetch(`${serverUrl}/api/me`, {
17536
- headers: { Authorization: `Bearer ${ws.token}` }
17565
+ headers: { Authorization: `Bearer ${authToken}` }
17537
17566
  });
17538
17567
  if (meRes.ok) {
17539
17568
  const me = await meRes.json();
17540
17569
  email3 = me.email;
17541
17570
  }
17542
17571
  } catch {}
17543
- return { valid: true, email: email3, workspaceName: ws.name ?? undefined };
17572
+ const workspaceName = (serverWorkspaces.length > 0 ? serverWorkspaces[0].name : undefined) || ws?.name || undefined;
17573
+ return { valid: true, email: email3, workspaceName };
17544
17574
  } catch {
17545
17575
  return { valid: false };
17546
17576
  }
@@ -22175,6 +22205,14 @@ function getRootOpts(command) {
22175
22205
 
22176
22206
  // lib/resolve-client.ts
22177
22207
  function resolveClientOpts(command, opts = {}) {
22208
+ const result = resolveClientOptsPartial(command, opts);
22209
+ if (!result.workspaceId) {
22210
+ console.error("Error: cannot determine workspace. Set ALOOK_WORKSPACE_ID env var or use --workspace flag.");
22211
+ process.exit(1);
22212
+ }
22213
+ return result;
22214
+ }
22215
+ function resolveClientOptsPartial(command, opts = {}) {
22178
22216
  const parentOpts = getRootOpts(command);
22179
22217
  const cfg = loadCLIConfigForProfile(parentOpts.profile);
22180
22218
  const serverUrl = parentOpts.server || process.env.ALOOK_SERVER_URL || cfg.server_url;
@@ -22206,16 +22244,12 @@ function resolveClientOpts(command, opts = {}) {
22206
22244
  ws = workspaces[0];
22207
22245
  }
22208
22246
  const envToken = process.env.ALOOK_TOKEN;
22209
- const token = envToken || ws?.token;
22247
+ const token = envToken || ws?.token || cfg.session_token;
22210
22248
  if (!token) {
22211
22249
  console.error(`Error: not registered. Run '${cmdPrefix()} register --token <token>' first.`);
22212
22250
  process.exit(1);
22213
22251
  }
22214
- const workspaceId = ws?.id || envWorkspaceId;
22215
- if (!workspaceId) {
22216
- console.error("Error: cannot determine workspace. Set ALOOK_WORKSPACE_ID env var or use --workspace flag.");
22217
- process.exit(1);
22218
- }
22252
+ const workspaceId = ws?.id || envWorkspaceId || undefined;
22219
22253
  return { serverUrl, token, workspaceId };
22220
22254
  }
22221
22255
 
@@ -23231,11 +23265,40 @@ import { readFileSync as readFileSync14 } from "fs";
23231
23265
  function slugify2(name) {
23232
23266
  return name.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 60);
23233
23267
  }
23268
+ function sleep4(ms) {
23269
+ return new Promise((resolve2) => setTimeout(resolve2, ms));
23270
+ }
23271
+ async function resolveWorkspaceId(client, configName) {
23272
+ let workspaces;
23273
+ try {
23274
+ workspaces = await client.getJSON("/api/workspaces");
23275
+ } catch (err) {
23276
+ console.error(`Error: failed to fetch workspaces: ${err instanceof Error ? err.message : err}`);
23277
+ process.exit(1);
23278
+ }
23279
+ for (const ws of workspaces) {
23280
+ try {
23281
+ const agents = await client.getJSON(`/api/agents?workspace_id=${ws.id}`);
23282
+ if (agents.length === 0) {
23283
+ return { workspaceId: ws.id, created: false };
23284
+ }
23285
+ } catch {}
23286
+ }
23287
+ const wsName = configName || "Personal";
23288
+ try {
23289
+ const newWs = await client.postJSON("/api/workspaces", { name: wsName, slug: slugify2(wsName) });
23290
+ console.log(`Created workspace: ${newWs.name} (${newWs.id})`);
23291
+ return { workspaceId: newWs.id, created: true };
23292
+ } catch (err) {
23293
+ console.error(`Error: failed to create workspace: ${err instanceof Error ? err.message : err}`);
23294
+ process.exit(1);
23295
+ }
23296
+ }
23234
23297
  function workspaceCommand() {
23235
23298
  const cmd = new Command13("workspace").description("Manage workspaces");
23236
23299
  cmd.command("init").description("Initialize a workspace from a JSON configuration file").requiredOption("--json-file <path>", "Path to the JSON configuration file").option("--name <name>", "Workspace name (overrides JSON)").option("--json", "Output as JSON").action(async (opts, command) => {
23237
- const { serverUrl, token, workspaceId } = resolveClientOpts(command);
23238
- const client = new APIClient(serverUrl, token, workspaceId);
23300
+ const { serverUrl, token, workspaceId: resolvedWorkspaceId } = resolveClientOptsPartial(command);
23301
+ const client = new APIClient(serverUrl, token, resolvedWorkspaceId);
23239
23302
  let configJson;
23240
23303
  try {
23241
23304
  configJson = readFileSync14(opts.jsonFile, "utf-8");
@@ -23254,9 +23317,89 @@ function workspaceCommand() {
23254
23317
  console.error("Error: JSON must contain a 'members' array with at least one member");
23255
23318
  process.exit(1);
23256
23319
  }
23320
+ let targetWorkspaceId = resolvedWorkspaceId;
23321
+ if (!targetWorkspaceId) {
23322
+ const resolved = await resolveWorkspaceId(client, opts.name || config2.name);
23323
+ targetWorkspaceId = resolved.workspaceId;
23324
+ const parentOpts = getRootOpts(command);
23325
+ const cfg = loadCLIConfigForProfile(parentOpts.profile);
23326
+ const registeredWs = cfg.watched_workspaces?.find((w) => w.status === "registered" && !w.id);
23327
+ if (registeredWs) {
23328
+ try {
23329
+ await client.postJSON("/api/machine-tokens/bind-workspace", { workspace_id: targetWorkspaceId });
23330
+ console.log("Machine token bound to workspace. Waiting for runtime registration...");
23331
+ } catch (err) {
23332
+ console.warn(`Warning: bind-workspace failed: ${err instanceof Error ? err.message : err}`);
23333
+ }
23334
+ }
23335
+ let runtimes2 = [];
23336
+ const wsClient = new APIClient(serverUrl, token, targetWorkspaceId);
23337
+ for (let attempt = 0;attempt < 15; attempt++) {
23338
+ try {
23339
+ runtimes2 = await wsClient.getJSON("/api/runtimes");
23340
+ if (runtimes2.length > 0)
23341
+ break;
23342
+ } catch {}
23343
+ await sleep4(1000);
23344
+ }
23345
+ if (runtimes2.length === 0) {
23346
+ console.error(`Error: No daemon registered after waiting. Run '${cmdPrefix()} daemon start' first.`);
23347
+ process.exit(1);
23348
+ }
23349
+ const OFFLINE_THRESHOLD_MS3 = 5 * 60 * 1000;
23350
+ const now2 = Date.now();
23351
+ const onlineRuntime2 = runtimes2.find((r) => {
23352
+ if (!r.machineLastSeenAt)
23353
+ return false;
23354
+ const lastSeen = new Date(r.machineLastSeenAt.includes("Z") ? r.machineLastSeenAt : r.machineLastSeenAt + "Z").getTime();
23355
+ return now2 - lastSeen < OFFLINE_THRESHOLD_MS3;
23356
+ });
23357
+ const runtime2 = onlineRuntime2 || runtimes2[0];
23358
+ const members2 = config2.members.map((m) => ({
23359
+ ...m,
23360
+ runtime_id: runtime2.id
23361
+ }));
23362
+ const payload2 = {
23363
+ name: opts.name || config2.name,
23364
+ scenario: config2.scenario,
23365
+ members: members2
23366
+ };
23367
+ try {
23368
+ const res = await wsClient.postJSON("/api/studios", payload2);
23369
+ try {
23370
+ const freshCfg = loadCLIConfigForProfile(parentOpts.profile);
23371
+ const watched = freshCfg.watched_workspaces || [];
23372
+ const existing = watched.find((w) => w.id === targetWorkspaceId);
23373
+ if (existing) {
23374
+ existing.status = "active";
23375
+ existing.name = res.workspace.name;
23376
+ } else {
23377
+ watched.push({ id: targetWorkspaceId, name: res.workspace.name, token, status: "active", agent_ids: [] });
23378
+ }
23379
+ freshCfg.watched_workspaces = watched;
23380
+ saveCLIConfigForProfile(parentOpts.profile, freshCfg);
23381
+ } catch {}
23382
+ if (opts.json)
23383
+ return printJSON(res);
23384
+ console.log(`
23385
+ Workspace initialized: ${res.studio.name || res.workspace.name}`);
23386
+ console.log("Agents created:");
23387
+ for (const agent2 of res.agents) {
23388
+ const email3 = agent2.email_handle ? toAlookAddress(agent2.email_handle) : "no email";
23389
+ console.log(` - ${agent2.name} (${email3})`);
23390
+ }
23391
+ console.log(`
23392
+ Open: ${serverUrl}/w/${res.workspace.slug}`);
23393
+ } catch (err) {
23394
+ console.error(`Error: failed to create workspace: ${err instanceof Error ? err.message : err}`);
23395
+ process.exit(1);
23396
+ }
23397
+ return;
23398
+ }
23399
+ let targetClient = new APIClient(serverUrl, token, targetWorkspaceId);
23257
23400
  let runtimes;
23258
23401
  try {
23259
- runtimes = await client.getJSON("/api/runtimes");
23402
+ runtimes = await targetClient.getJSON("/api/runtimes");
23260
23403
  } catch (err) {
23261
23404
  console.error(`Error: failed to fetch runtimes: ${err instanceof Error ? err.message : err}`);
23262
23405
  process.exit(1);
@@ -23274,14 +23417,12 @@ function workspaceCommand() {
23274
23417
  return now - lastSeen < OFFLINE_THRESHOLD_MS2;
23275
23418
  });
23276
23419
  let runtime = onlineRuntime || runtimes[0];
23277
- let targetWorkspaceId = workspaceId;
23278
- let targetClient = client;
23279
23420
  try {
23280
- const agents = await client.getJSON(`/api/agents?workspace_id=${workspaceId}`);
23421
+ const agents = await targetClient.getJSON(`/api/agents?workspace_id=${targetWorkspaceId}`);
23281
23422
  if (agents.length > 0) {
23282
23423
  console.log("Current workspace has existing agents. Creating a new workspace...");
23283
23424
  const wsName = opts.name || config2.name || "New Workspace";
23284
- const newWs = await client.postJSON("/api/workspaces", { name: wsName, slug: slugify2(wsName) });
23425
+ const newWs = await targetClient.postJSON("/api/workspaces", { name: wsName, slug: slugify2(wsName) });
23285
23426
  targetWorkspaceId = newWs.id;
23286
23427
  targetClient = new APIClient(serverUrl, token, targetWorkspaceId);
23287
23428
  console.log(`Created workspace: ${newWs.name} (${newWs.id})`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alook/app",
3
- "version": "0.0.120",
3
+ "version": "0.0.122",
4
4
  "description": "Run Alook locally — one command, no clone needed",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://github.com/alookai/alook#readme",