@alook/app 0.0.118 → 0.0.119

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 (90) 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/{0quc_lvg3c4wu.js → 0-xdwhncj5-wf.js} +1 -1
  4. package/bundled/web/.open-next/assets/_next/static/chunks/06-zhqf9ypqns.css +1 -0
  5. package/bundled/web/.open-next/assets/_next/static/chunks/{0~lm_shhgzh8z.js → 0x14heey9lt7d.js} +3 -3
  6. package/bundled/web/.open-next/assets/_next/static/chunks/{02-xuu3pg.f40.js → 0z4n3xpn4dp13.js} +2 -2
  7. package/bundled/web/.open-next/assets/_next/static/chunks/110epmmtnkv9w.js +3 -0
  8. package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/_global-error.cache +1 -1
  9. package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/_not-found.cache +1 -1
  10. package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/device.cache +1 -1
  11. package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/privacy.cache +1 -1
  12. package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/sitemap.xml.cache +1 -1
  13. package/bundled/web/.open-next/cloudflare/cache-assets-manifest.sql +1 -1
  14. package/bundled/web/.open-next/cloudflare/init.js +1 -1
  15. package/bundled/web/.open-next/dynamodb-provider/dynamodb-cache.json +1 -1
  16. package/bundled/web/.open-next/middleware/handler.mjs +3 -3
  17. package/bundled/web/.open-next/server-functions/default/src/web/.next/BUILD_ID +1 -1
  18. package/bundled/web/.open-next/server-functions/default/src/web/.next/build-manifest.json +3 -3
  19. package/bundled/web/.open-next/server-functions/default/src/web/.next/prerender-manifest.json +3 -3
  20. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/invite/[token]/page_client-reference-manifest.js +1 -1
  21. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/studio/new/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]/activity/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]/chat/[convId]/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]/chat/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/[id]/email/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/[id]/files/page_client-reference-manifest.js +1 -1
  27. 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
  28. 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
  29. 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
  30. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/agents/page_client-reference-manifest.js +1 -1
  31. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/calendar/page_client-reference-manifest.js +1 -1
  32. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/flags/page_client-reference-manifest.js +1 -1
  33. 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
  34. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/home/page_client-reference-manifest.js +1 -1
  35. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/issues/page_client-reference-manifest.js +1 -1
  36. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/page_client-reference-manifest.js +1 -1
  37. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/runtimes/page_client-reference-manifest.js +1 -1
  38. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/settings/page_client-reference-manifest.js +1 -1
  39. 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
  40. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/threads/page_client-reference-manifest.js +1 -1
  41. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/w/[slug]/unread/page_client-reference-manifest.js +1 -1
  42. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(app)/workspaces/page_client-reference-manifest.js +1 -1
  43. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/(auth)/sign-in/page_client-reference-manifest.js +1 -1
  44. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  45. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/device/page_client-reference-manifest.js +1 -1
  46. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/page_client-reference-manifest.js +1 -1
  47. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  48. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/[id]/page_client-reference-manifest.js +1 -1
  49. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/app/templates/page_client-reference-manifest.js +1 -1
  50. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/[turbopack]_runtime.js +14 -14
  51. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_03t_17c._.js +1 -1
  52. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_08xh_f8._.js +2 -2
  53. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_09ivzvb._.js +1 -1
  54. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0l1m9wf._.js +2 -2
  55. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/_0ow_nxn._.js +1 -1
  56. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{[root-of-the-server]__0p4syi4._.js → [root-of-the-server]__0_3cckh._.js} +2 -2
  57. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/[turbopack]_runtime.js +14 -14
  58. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_13ya7_b._.js → _055~~zq._.js} +1 -1
  59. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_00ix2wb._.js → _05kh57s._.js} +1 -1
  60. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_0c0t735._.js → _09rh54w._.js} +1 -1
  61. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{_04w2ll1._.js → _0asq_j3._.js} +3 -3
  62. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_0owr40y._.js +3 -0
  63. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0tuts0b._.js → node_modules__pnpm_0-7t060._.js} +1 -1
  64. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_088eule._.js → node_modules__pnpm_0emry~3._.js} +1 -1
  65. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_00cke3h._.js → node_modules__pnpm_0lqu_u4._.js} +1 -1
  66. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0g4.m0t._.js → node_modules__pnpm_0ml9n-.._.js} +1 -1
  67. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0mr.gag._.js → node_modules__pnpm_0qmml4f._.js} +1 -1
  68. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0lw6_x.._.js → node_modules__pnpm_0vztztj._.js} +1 -1
  69. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0_gg4s6._.js → node_modules__pnpm_0wu1nx-._.js} +1 -1
  70. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/{node_modules__pnpm_0xykudd._.js → node_modules__pnpm_11id~ub._.js} +1 -1
  71. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_0~23g-y._.js +2 -2
  72. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/src_web_src_components_home_home-page_tsx_0to84tv._.js +1 -1
  73. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-build-manifest.js +3 -3
  74. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/middleware-manifest.json +5 -5
  75. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.js +1 -1
  76. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/server-reference-manifest.json +1 -1
  77. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs +92 -92
  78. package/bundled/web/.open-next/server-functions/default/src/web/handler.mjs.meta.json +251 -251
  79. package/bundled/web/.open-next/server-functions/default/src/web/index.mjs +3 -3
  80. package/bundled/web/wrangler.toml +1 -1
  81. package/dist/cli/index.js +16 -3
  82. package/dist/cli/session-runner.js +14 -2
  83. package/package.json +1 -1
  84. package/bundled/web/.open-next/assets/_next/static/chunks/058lb48xc0jj~.js +0 -3
  85. package/bundled/web/.open-next/assets/_next/static/chunks/0p87feis4b6ju.css +0 -1
  86. package/bundled/web/.open-next/server-functions/default/src/web/.next/server/chunks/ssr/_004q5tu._.js +0 -3
  87. /package/bundled/web/.open-next/assets/_next/static/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/_buildManifest.js +0 -0
  88. /package/bundled/web/.open-next/assets/_next/static/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/_clientMiddlewareManifest.js +0 -0
  89. /package/bundled/web/.open-next/assets/_next/static/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/_ssgManifest.js +0 -0
  90. /package/bundled/web/.open-next/cache/{odmmcsMVYHDGmqyrWQ3kc → bwwUBlSnuSEyz1RNfFbW9}/robots.txt.cache +0 -0
@@ -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 = "odmmcsMVYHDGmqyrWQ3kc";
1271
+ var BuildId = "bwwUBlSnuSEyz1RNfFbW9";
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": "/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/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/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": "9dafb8e1a1563e99a9db7611995699c6", "previewModeSigningKey": "d76d9e3795cf6e40050b48a1b5c9e9431a9202146560ed73e07032fe2c3dd8ac", "previewModeEncryptionKey": "ccc91e391d83ea64204ca9f51e1cc280a6b47a0f67b190f16fa594d8ab3b8e1c" } };
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": "odmmcsMVYHDGmqyrWQ3kc", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "SGGm/LM0dw3K5M2yuQBf0NVb9s5cp94Oc/ix+mk/fBg=", "__NEXT_PREVIEW_MODE_ID": "9dafb8e1a1563e99a9db7611995699c6", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "ccc91e391d83ea64204ca9f51e1cc280a6b47a0f67b190f16fa594d8ab3b8e1c", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "d76d9e3795cf6e40050b48a1b5c9e9431a9202146560ed73e07032fe2c3dd8ac" } } }, "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": "51badda85745ef91b8cd2210f5cb52a6", "previewModeSigningKey": "01494ff68c00153ddac33540d51cf693a17f07a02195d43509d8b13c870b6f91", "previewModeEncryptionKey": "5ed78fc089110ba58cf3dba359da8c5a0cd89a9ad34299e638549ab89e578d22" } };
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": "bwwUBlSnuSEyz1RNfFbW9", "NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "td6JCUDYciFFdsAszP3O1zSwavLYgeJkA+tX1M0/33c=", "__NEXT_PREVIEW_MODE_ID": "51badda85745ef91b8cd2210f5cb52a6", "__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "5ed78fc089110ba58cf3dba359da8c5a0cd89a9ad34299e638549ab89e578d22", "__NEXT_PREVIEW_MODE_SIGNING_KEY": "01494ff68c00153ddac33540d51cf693a17f07a02195d43509d8b13c870b6f91" } } }, "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", "/_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/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/route": "/api/machine-tokens", "/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.118"
80
+ MIN_CLI_VERSION = "0.0.119"
package/dist/cli/index.js CHANGED
@@ -19091,6 +19091,7 @@ The CLI auto-detects your identity from the environment. No need to pass \`--age
19091
19091
  ### Command quick reference
19092
19092
  | Capability | Command |
19093
19093
  |---|---|
19094
+ | Send a message to the user | \`${cmdPrefix()} sync send-dm\` |
19094
19095
  | Schedule / list / edit tasks | \`${cmdPrefix()} calendar set\` (also list, show, update, delete) |
19095
19096
  | Upload a file for your owner | \`${cmdPrefix()} sync upload-artifact\` |
19096
19097
  | Recruit a colleague agent | \`${cmdPrefix()} agent recruit\` |
@@ -19181,11 +19182,22 @@ Upload files for your owner to review in the app.
19181
19182
  ### Talking to the user
19182
19183
  You're texting a colleague, not filing a report. The only thing the user sees is what you send with \`${cmdPrefix()} sync send-dm\` — your task output, reasoning, and tool calls are all off-screen. If you finish without sending, they got silence.
19183
19184
 
19185
+ \`${cmdPrefix()} sync send-dm\` sends a message to **the user** (your owner), not to a colleague agent. This is how you communicate with the human who gave you the task. Use email to talk to colleague agents.
19186
+
19184
19187
  Message at milestones, the way a person would: acknowledge when you pick something up, share a real step forward or a fork in the road, and deliver the result. A quick task is often one message; a long one is a few well-spaced check-ins. Trust your read of the moment — don't narrate every small step, and don't go dark for a long stretch on something they're waiting on.
19185
19188
 
19186
19189
  Say what a colleague would say, not a transcript — the answer in your own voice. (Email- and calendar-triggered tasks have no one watching the chat; use email there.)
19187
19190
 
19188
- \`${cmdPrefix()} sync send-dm --message "…"\` (or \`--message-file <path>\` for long/markdown). The conversation is in $ALOOK_CONVERSATION_ID, so you usually need no flags. You can send several times in one task.
19191
+ **A real person is waiting on the other end.** Send updates at every milestone of your work not just the final result. For any task longer than a minute:
19192
+ 1. **Before you start**: tell them your plan ("I'll research X, then modify Y and Z")
19193
+ 2. **During work**: update when you find something important, change direction, or hit a blocker ("Found the issue — it's in the auth module, fixing now")
19194
+ 3. **When done**: deliver the clear result
19195
+
19196
+ Don't bundle everything into one giant message at the end. The user shouldn't have to sit in silence wondering what's happening. A one-line progress update costs nothing and keeps the human in the loop. But don't send repetitive or near-identical messages — each update should carry new information, not just restate what you already said.
19197
+
19198
+ **If the user sends you a message while you're working** — especially questions like "are you there?", "what's the status?", or unrelated requests — **respond to them immediately**. Don't finish your current task first and then reply. The user reached out because they need your attention NOW. Acknowledge them right away, then resume your work.
19199
+
19200
+ \`${cmdPrefix()} sync send-dm --message "…"\` for short messages. For longer or markdown-rich messages, write to a file first and use \`--message-file <path>\` — this preserves formatting and avoids shell escaping issues. The conversation is in $ALOOK_CONVERSATION_ID, so you usually need no flags. You can send several times in one task.
19189
19201
 
19190
19202
  ### Attachments
19191
19203
  When your task includes attachments, their local paths are listed in the prompt JSON under "attachments".
@@ -19652,7 +19664,7 @@ function releaseSteeringLock(baseDir, contextKey) {
19652
19664
  }
19653
19665
 
19654
19666
  // daemon/prompt.ts
19655
- var DM_RESPONSE_NOTICE = "Reply with `alook sync send-dm` — that's the only thing the user sees;" + " your task output and reasoning are not shown." + " Talk to them at milestones like a colleague would, and don't end your turn without sending what they need.";
19667
+ var DM_RESPONSE_NOTICE = "Reply with `alook sync send-dm` — that's the only thing the user sees; your task output and reasoning are not shown." + " Talk to them at milestones like a colleague would, and don't end your turn without sending what they need." + " If this task will take more than 30 seconds, send a quick ack first so the user knows you're on it.";
19656
19668
  var EMAIL_NOTICE = "This task was triggered automatically by an incoming email. There is no human in this session." + " If you need to communicate with a human, you MUST send an email using the email sending tool." + " If you need more information or confirmation from the human, send them an email asking for it and then exit." + " Do not wait — when the human replies, a new task will be triggered automatically and you will be woken up with their response.";
19657
19669
  var CALENDAR_NOTICE = "This task was triggered by a scheduled calendar event. There is no human in this session." + " If you need to communicate with a human, you MUST send an email using the email sending tool." + " If you need more information or confirmation, send an email asking for it and then exit." + " Do not wait — when the human replies, a new task will be triggered automatically and you will be woken up with their response.";
19658
19670
  var ISSUE_NOTICE = "This task was triggered by an assigned issue. The issue_id is provided in this message." + " Use `alook issue show --issue_id <issue_id>` to read full context." + " Use `alook issue update --issue_id <issue_id> --status <status>` to change status." + " Use `alook issue comment --issue_id <issue_id> --body <text>` to leave a comment." + " CRITICAL — You MUST manage the issue status correctly. This is NOT optional:" + " 1. Set status to 'in_progress' when you start working." + " 2. If you complete the work yourself: leave a summary comment, then set status to 'review' as your last action. 'review' means there is actual completed work (code, artifact, result) ready for the owner to look at." + " 3. If you delegated work to colleagues and are waiting for their response: KEEP status as 'in_progress' and exit. This is expected — you will be woken up when they reply. Set 'review' only after all delegated work is confirmed complete." + " 4. NEVER set 'review' unless there is concrete completed work for the owner to review. Sending a plan to a colleague is NOT completed work." + " NEVER exit without doing at least one of: updating the status, or leaving a comment explaining what you did and what you're waiting for.";
@@ -23046,7 +23058,8 @@ function syncCommand() {
23046
23058
  process.exit(1);
23047
23059
  }
23048
23060
  } else {
23049
- content = opts.message ?? "";
23061
+ content = (opts.message ?? "").replace(/\\n/g, `
23062
+ `).replace(/\\t/g, "\t");
23050
23063
  }
23051
23064
  if (!content.trim()) {
23052
23065
  console.error("Error: --message or --message-file is required (and must not be empty)");
@@ -18310,6 +18310,7 @@ The CLI auto-detects your identity from the environment. No need to pass \`--age
18310
18310
  ### Command quick reference
18311
18311
  | Capability | Command |
18312
18312
  |---|---|
18313
+ | Send a message to the user | \`${cmdPrefix()} sync send-dm\` |
18313
18314
  | Schedule / list / edit tasks | \`${cmdPrefix()} calendar set\` (also list, show, update, delete) |
18314
18315
  | Upload a file for your owner | \`${cmdPrefix()} sync upload-artifact\` |
18315
18316
  | Recruit a colleague agent | \`${cmdPrefix()} agent recruit\` |
@@ -18400,11 +18401,22 @@ Upload files for your owner to review in the app.
18400
18401
  ### Talking to the user
18401
18402
  You're texting a colleague, not filing a report. The only thing the user sees is what you send with \`${cmdPrefix()} sync send-dm\` — your task output, reasoning, and tool calls are all off-screen. If you finish without sending, they got silence.
18402
18403
 
18404
+ \`${cmdPrefix()} sync send-dm\` sends a message to **the user** (your owner), not to a colleague agent. This is how you communicate with the human who gave you the task. Use email to talk to colleague agents.
18405
+
18403
18406
  Message at milestones, the way a person would: acknowledge when you pick something up, share a real step forward or a fork in the road, and deliver the result. A quick task is often one message; a long one is a few well-spaced check-ins. Trust your read of the moment — don't narrate every small step, and don't go dark for a long stretch on something they're waiting on.
18404
18407
 
18405
18408
  Say what a colleague would say, not a transcript — the answer in your own voice. (Email- and calendar-triggered tasks have no one watching the chat; use email there.)
18406
18409
 
18407
- \`${cmdPrefix()} sync send-dm --message "…"\` (or \`--message-file <path>\` for long/markdown). The conversation is in $ALOOK_CONVERSATION_ID, so you usually need no flags. You can send several times in one task.
18410
+ **A real person is waiting on the other end.** Send updates at every milestone of your work not just the final result. For any task longer than a minute:
18411
+ 1. **Before you start**: tell them your plan ("I'll research X, then modify Y and Z")
18412
+ 2. **During work**: update when you find something important, change direction, or hit a blocker ("Found the issue — it's in the auth module, fixing now")
18413
+ 3. **When done**: deliver the clear result
18414
+
18415
+ Don't bundle everything into one giant message at the end. The user shouldn't have to sit in silence wondering what's happening. A one-line progress update costs nothing and keeps the human in the loop. But don't send repetitive or near-identical messages — each update should carry new information, not just restate what you already said.
18416
+
18417
+ **If the user sends you a message while you're working** — especially questions like "are you there?", "what's the status?", or unrelated requests — **respond to them immediately**. Don't finish your current task first and then reply. The user reached out because they need your attention NOW. Acknowledge them right away, then resume your work.
18418
+
18419
+ \`${cmdPrefix()} sync send-dm --message "…"\` for short messages. For longer or markdown-rich messages, write to a file first and use \`--message-file <path>\` — this preserves formatting and avoids shell escaping issues. The conversation is in $ALOOK_CONVERSATION_ID, so you usually need no flags. You can send several times in one task.
18408
18420
 
18409
18421
  ### Attachments
18410
18422
  When your task includes attachments, their local paths are listed in the prompt JSON under "attachments".
@@ -18788,7 +18800,7 @@ function clearKillIntent(baseDir, taskId) {
18788
18800
  }
18789
18801
 
18790
18802
  // daemon/prompt.ts
18791
- var DM_RESPONSE_NOTICE = "Reply with `alook sync send-dm` — that's the only thing the user sees;" + " your task output and reasoning are not shown." + " Talk to them at milestones like a colleague would, and don't end your turn without sending what they need.";
18803
+ var DM_RESPONSE_NOTICE = "Reply with `alook sync send-dm` — that's the only thing the user sees; your task output and reasoning are not shown." + " Talk to them at milestones like a colleague would, and don't end your turn without sending what they need." + " If this task will take more than 30 seconds, send a quick ack first so the user knows you're on it.";
18792
18804
  var EMAIL_NOTICE = "This task was triggered automatically by an incoming email. There is no human in this session." + " If you need to communicate with a human, you MUST send an email using the email sending tool." + " If you need more information or confirmation from the human, send them an email asking for it and then exit." + " Do not wait — when the human replies, a new task will be triggered automatically and you will be woken up with their response.";
18793
18805
  var CALENDAR_NOTICE = "This task was triggered by a scheduled calendar event. There is no human in this session." + " If you need to communicate with a human, you MUST send an email using the email sending tool." + " If you need more information or confirmation, send an email asking for it and then exit." + " Do not wait — when the human replies, a new task will be triggered automatically and you will be woken up with their response.";
18794
18806
  var ISSUE_NOTICE = "This task was triggered by an assigned issue. The issue_id is provided in this message." + " Use `alook issue show --issue_id <issue_id>` to read full context." + " Use `alook issue update --issue_id <issue_id> --status <status>` to change status." + " Use `alook issue comment --issue_id <issue_id> --body <text>` to leave a comment." + " CRITICAL — You MUST manage the issue status correctly. This is NOT optional:" + " 1. Set status to 'in_progress' when you start working." + " 2. If you complete the work yourself: leave a summary comment, then set status to 'review' as your last action. 'review' means there is actual completed work (code, artifact, result) ready for the owner to look at." + " 3. If you delegated work to colleagues and are waiting for their response: KEEP status as 'in_progress' and exit. This is expected — you will be woken up when they reply. Set 'review' only after all delegated work is confirmed complete." + " 4. NEVER set 'review' unless there is concrete completed work for the owner to review. Sending a plan to a colleague is NOT completed work." + " NEVER exit without doing at least one of: updating the status, or leaving a comment explaining what you did and what you're waiting for.";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alook/app",
3
- "version": "0.0.118",
3
+ "version": "0.0.119",
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",
@@ -1,3 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,74348,e=>{"use strict";var t=e.i(368075),s=e.i(298699),r=e.i(222862),a=e.i(500324);let n=(0,s.createContext)(null);e.s(["FlagCountProvider",0,function({children:e}){let{workspaceId:l}=(0,a.useWorkspace)(),[i,o]=(0,s.useState)(0),c=(0,s.useCallback)(()=>{(0,r.getFlaggedCount)(l).then(e=>o(e.count)).catch(()=>{})},[l]),d=(0,s.useCallback)(()=>{o(e=>e+1)},[]),u=(0,s.useCallback)(()=>{o(e=>Math.max(0,e-1))},[]);return(0,s.useEffect)(()=>{c()},[c]),(0,t.jsx)(n.Provider,{value:{count:i,refresh:c,increment:d,decrement:u},children:e})},"useFlagCount",0,function(){let e=(0,s.useContext)(n);if(!e)throw Error("useFlagCount must be used within FlagCountProvider");return e}])},49879,618615,844010,e=>{"use strict";var t=e.i(368075),s=e.i(298699),r=e.i(208020),a=e.i(500324),n=e.i(186339),l=e.i(108281),i=e.i(140483),o=e.i(371522);let c={claude:"Claude Code",codex:"Codex",opencode:"OpenCode"},d="the agent runtime";function u({provider:e,message:r,onRetry:a,retrying:n}){let[m,f]=(0,s.useState)(!1),h=n??m,g=async()=>{if(a){f(!0);try{await a()}finally{f(!1)}}};return(0,t.jsxs)("div",{className:"rounded-md border border-destructive/30 bg-destructive/5 p-2 max-w-full overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("p",{className:"flex items-center gap-1.5 text-sm font-semibold text-destructive min-w-0",children:[(0,t.jsx)(l.AlertCircle,{className:"size-3.5 shrink-0"}),(0,t.jsxs)("span",{children:["Error from ",e?c[e]??d:d]})]}),a&&(0,t.jsxs)("button",{type:"button",onClick:g,disabled:h,className:"ml-auto shrink-0 text-xs text-muted-foreground hover:text-foreground transition-colors cursor-pointer disabled:opacity-50 flex items-center gap-1",children:[h?(0,t.jsx)(o.Loader2,{className:"size-3 animate-spin"}):(0,t.jsx)(i.RotateCw,{className:"size-3"}),"Retry"]})]}),(0,t.jsx)("p",{className:"mt-1.5 text-sm text-destructive/90 wrap-anywhere whitespace-pre-wrap",children:r}),(0,t.jsx)("p",{className:"mt-1.5 text-xs text-muted-foreground",children:"This came from the agent runtime on your machine, not from Alook."})]})}function m({task:e,messages:r,connectionLost:a,onRetry:n,provider:l}){let i=(0,s.useMemo)(()=>(function(e){let t=[];for(let s of e)"error"===s.type&&t.push({kind:"error",id:s.id||`seq-${s.seq}`,content:s.content||s.output});return t})(r),[r]);return 0!==i.length||"failed"===e.status&&e.error||a?(0,t.jsxs)("div",{className:"space-y-3 min-w-0 max-w-full",children:[i.length>0&&(0,t.jsx)("div",{className:"space-y-1 mt-1",children:i.map(e=>(0,t.jsx)(u,{provider:l,message:e.content},e.id))}),"failed"===e.status&&e.error&&(0,t.jsx)("div",{className:"mt-2",children:(0,t.jsx)(u,{provider:l,message:e.error,onRetry:n})}),a&&(0,t.jsx)("p",{className:"text-sm text-muted-foreground animate-pulse mt-1",children:"Connection lost — retrying..."})]}):null}var f=e.i(222862);function h(e){return e.slice().sort((e,t)=>{let s=e.created_at.localeCompare(t.created_at);return 0!==s?s:e.id.localeCompare(t.id)})}function g(e,t){let s=new Map;for(let t of e)s.set(t.id,t);for(let e of t)s.set(e.id,e);return h([...s.values()])}function p(e){if("artifact"===e.kind)return"agent";if("message"!==e.kind)return null;let t=e.data.role;return"user"===t?"user":"assistant"===t||"event"===t?"agent":null}function x(e){return e.data.created_at}function v(e){let t=(0,s.useRef)(e);return(0,s.useEffect)(()=>{t.current=e},[e]),t}var k=e.i(355578),b=e.i(875494),j=e.i(872937),y=e.i(880932),w=e.i(613349),N=e.i(728886),C=e.i(329686),_=e.i(36303),S=e.i(406963);let M=(0,S.default)("bed-double",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]);var I=e.i(872057),T=e.i(6131);let E=(0,S.default)("message-square-quote",[["path",{d:"M14 14a2 2 0 0 0 2-2V8h-2",key:"1r06pg"}],["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M8 14a2 2 0 0 0 2-2V8H8",key:"1jzu5j"}]]);var A=e.i(653216),R=e.i(554468),z=e.i(937091),$=e.i(550008),L=e.i(275351),D=e.i(74348);function P({skill:e,isSelected:s,onSelect:r}){return(0,t.jsxs)("button",{type:"button","data-slash-item":!0,className:(0,w.cn)("flex w-full flex-col gap-0.5 px-3 py-1.5 text-left text-sm transition-colors",s?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),r(e)},children:[(0,t.jsxs)("span",{className:"flex w-full items-center gap-2",children:[(0,t.jsxs)("span",{className:"min-w-0 flex-1 truncate font-medium",children:["/",e.name]}),e.isGlobal&&(0,t.jsx)("span",{className:"shrink-0 rounded px-1 py-0.5 text-[10px] font-medium bg-muted text-muted-foreground",children:"Global"})]}),e.description&&(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:e.description.slice(0,80)})]})}function F({isOpen:e,skills:r,selectedIndex:a,onSelect:n,anchorPos:l}){let i=(0,s.useRef)(null);if((0,s.useEffect)(()=>{if(!i.current)return;let e=i.current.querySelectorAll("[data-slash-item]")[a];e?.scrollIntoView({block:"nearest"})},[a]),!e||0===r.length)return null;let o=Math.max(8,window.innerWidth-280-8),c=Math.min(l.left,o);return(0,$.createPortal)((0,t.jsx)("div",{className:"fixed z-100 w-70 rounded-lg border border-border bg-popover text-popover-foreground shadow-md transition-opacity duration-150",style:{top:l.top-4,left:c,transform:"translateY(-100%)"},children:(0,t.jsx)("div",{ref:i,className:"max-h-60 overflow-y-auto py-1 thin-scrollbar",children:r.map((e,s)=>(0,t.jsx)(P,{skill:e,isSelected:s===a,onSelect:n},e.name))})}),document.body)}var q=e.i(944391),O=e.i(415708),B=e.i(842892),H=e.i(333556);function U(e,t){if(!t)return e;let s=t.toLowerCase(),r=[],a=[];for(let t of e){let e=t.name.toLowerCase();e.startsWith(s)?r.push(t):e.includes(s)&&a.push(t)}return[...r,...a]}var W=e.i(161767);function V(e){return e.replaceAll("&lt;","<").replaceAll("&gt;",">").replaceAll("&amp;","&")}e.i(954194);var K=e.i(439769);let Y={items:[],selectedIndex:0,command:null,rect:null};function X({state:e}){let r=(0,s.useRef)(null),{items:a,selectedIndex:n,command:l,rect:i}=e;if((0,s.useEffect)(()=>{if(!r.current)return;let e=r.current.children[n];e?.scrollIntoView({block:"nearest"})},[n]),!i||0===a.length||!l)return null;let o=Math.max(8,window.innerWidth-256-8),c=Math.min(i.left,o);return(0,$.createPortal)((0,t.jsx)("div",{className:"fixed z-100 w-64 rounded-lg border border-border bg-popover text-popover-foreground shadow-md",style:{top:i.top-4,left:c,transform:"translateY(-100%)"},children:(0,t.jsx)("div",{ref:r,className:"max-h-50 overflow-y-auto py-1 thin-scrollbar",children:a.map((e,s)=>(0,t.jsxs)("button",{type:"button",className:(0,w.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition-colors",s===n?"bg-accent text-accent-foreground":"hover:bg-accent/50"),onMouseDown:t=>{t.preventDefault(),l({id:e.id,label:e.name})},children:[(0,t.jsx)("span",{className:"truncate font-medium",children:e.name}),e.email_handle&&(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:(0,K.toAlookAddress)(e.email_handle)})]},e.id))})}),document.body)}function G({hint:e,animate:r}){let[a,n]=(0,s.useState)(e),[l,i]=(0,s.useState)(!0);return(0,s.useEffect)(()=>{if(!r){n(e),i(!0);return}if(e===a)return;i(!1);let t=setTimeout(()=>{n(e),i(!0)},200);return()=>clearTimeout(t)},[e,a,r]),(0,t.jsx)("div",{className:"chat-placeholder-overlay","aria-hidden":"true",children:(0,t.jsx)("span",{className:r?"chat-placeholder-fade":void 0,style:r?{opacity:+!!l}:void 0,children:a})})}let J=(0,s.forwardRef)(function({value:e,onChange:r,onEditorState:a,onSend:n,onFocus:l,onBlur:i,overlay:o,disabled:c,onMultiLineChange:d,onFiles:u,agents:m,agentLinks:f,currentAgentId:h,slashIsOpen:g,onSlashKeyDown:p},x){let[v,k]=(0,s.useState)(!1),[b,j]=(0,s.useState)(Y),y=(0,s.useRef)(b);(0,s.useEffect)(()=>{y.current=b},[b]);let w=(0,s.useRef)(m),N=(0,s.useRef)(f),C=(0,s.useRef)(h),_=(0,s.useRef)(n),S=(0,s.useRef)(a),M=(0,s.useRef)(r),I=(0,s.useRef)(u),T=(0,s.useRef)(l),E=(0,s.useRef)(i),A=(0,s.useRef)(g),R=(0,s.useRef)(p);(0,s.useEffect)(()=>{w.current=m},[m]),(0,s.useEffect)(()=>{N.current=f},[f]),(0,s.useEffect)(()=>{C.current=h},[h]),(0,s.useEffect)(()=>{_.current=n},[n]),(0,s.useEffect)(()=>{S.current=a},[a]),(0,s.useEffect)(()=>{M.current=r},[r]),(0,s.useEffect)(()=>{I.current=u},[u]),(0,s.useEffect)(()=>{T.current=l},[l]),(0,s.useEffect)(()=>{E.current=i},[i]),(0,s.useEffect)(()=>{A.current=g},[g]),(0,s.useEffect)(()=>{R.current=p},[p]);let z=e=>{S.current(e.getText(),e.state.selection.from-1)},[$]=(0,s.useState)(()=>W.default.extend({markdownName:"mention",renderMarkdown:e=>`@${e.attrs.label??e.attrs.id}`}).configure({HTMLAttributes:{class:"mention-highlight"},renderText:({node:e})=>`@${e.attrs.label??e.attrs.id}`,suggestion:{char:"@",items:({query:e})=>(function(e,t,s,r,a=20){let n=function(e,t){let s=new Set;for(let r of e)r.source_agent_id===t&&s.add(r.target_agent_id),r.target_agent_id===t&&s.add(r.source_agent_id);return s}(t,s),l=[],i=[];for(let t of e)n.has(t.id)?l.push(t):i.push(t);return[...U(l,r),...U(i,r)].slice(0,a)})(w.current,N.current,C.current,e),render:()=>({onStart:e=>{j({items:e.items??[],selectedIndex:0,command:e.command,rect:e.clientRect?.()??null})},onUpdate:e=>{j(t=>({items:e.items??[],selectedIndex:t.selectedIndex<(e.items?.length??0)?t.selectedIndex:0,command:e.command,rect:e.clientRect?.()??null}))},onKeyDown:({event:e})=>{if(e.isComposing)return!1;let t=y.current;if(0===t.items.length)return!1;if("ArrowDown"===e.key)return e.preventDefault(),j(e=>({...e,selectedIndex:(e.selectedIndex+1)%e.items.length})),!0;if("ArrowUp"===e.key)return e.preventDefault(),j(e=>({...e,selectedIndex:(e.selectedIndex-1+e.items.length)%e.items.length})),!0;if("Enter"===e.key){e.preventDefault();let s=t.items[t.selectedIndex];return s&&t.command&&t.command({id:s.id,label:s.name}),j(Y),!0}return"Escape"===e.key&&(j(Y),!0)},onExit:()=>j(Y)})}})),L=(0,q.useEditor)({immediatelyRender:!1,content:e?e.replaceAll("\n","<br>"):void 0,editable:!c,extensions:[O.default.configure({heading:!1,blockquote:!1,codeBlock:!1,horizontalRule:!1,bold:!1,italic:!1,strike:!1,code:!1,link:!1,bulletList:!1,orderedList:!1,listItem:!1,listKeymap:!1}),B.default.configure({placeholder:""}),H.Markdown,$],editorProps:{attributes:{class:"outline-none",enterkeyhint:"send"},handleKeyDown:(e,t)=>(!(y.current.items.length>0)||null===y.current.command)&&(!!(A.current&&R.current({key:t.key,isComposing:t.isComposing,preventDefault:()=>t.preventDefault()}))||"Enter"===t.key&&!t.shiftKey&&!t.isComposing&&!A.current&&(t.preventDefault(),_.current(),!0)),handlePaste:(e,t)=>{let s=t.clipboardData?.items;if(!s)return!1;let r=[];for(let e=0;e<s.length;e++)if("file"===s[e].kind){let t=s[e].getAsFile();t&&r.push(t)}if(r.length>0)return t.preventDefault(),I.current?.(r),!0;let a=t.clipboardData?.getData("text/plain");return!!a&&(t.preventDefault(),e.dispatch(e.state.tr.insertText(a)),!0)},handleDrop:()=>!1},onFocus:()=>{k(!0),T.current?.()},onBlur:()=>{k(!1),E.current?.()},onUpdate:({editor:e})=>{M.current(V(e.getMarkdown())),z(e)},onSelectionUpdate:({editor:e})=>{z(e)}});(0,s.useEffect)(()=>{L?.setEditable(!c)},[L,c]),(0,s.useEffect)(()=>{if(!L)return;let t=(e||"").trim();t!==V(L.getMarkdown()||"").trim()&&(t?L.commands.setContent((e||"").replaceAll("\n","<br>"),{emitUpdate:!1}):L.commands.clearContent(),S.current(L.getText(),L.state.selection.from-1))},[e,L]);let D=(0,s.useRef)(null);return(0,s.useEffect)(()=>{if(!L||!d)return;let e=D.current?.querySelector(".ProseMirror");if(!e)return;let t=()=>d(e.scrollHeight>32);t();let s=new ResizeObserver(t);return s.observe(e),()=>s.disconnect()},[L,d]),(0,s.useEffect)(()=>{let e=function(e,t){let s=navigator.virtualKeyboard;if(!s)return null;s.overlaysContent=!0;let r=e()?.closest("[data-keyboard-offset]");if(!r)return null;let a=()=>{if(!t){r.style.transform="",r.removeAttribute("data-keyboard-active");return}let{height:e}=s.boundingRect;e>0?(r.style.transform=`translateY(-${e}px)`,r.setAttribute("data-keyboard-active","")):(r.style.transform="",r.removeAttribute("data-keyboard-active"))};return s.addEventListener("geometrychange",a),()=>{s.removeEventListener("geometrychange",a),r.style.transform="",r.removeAttribute("data-keyboard-active"),s.overlaysContent=!1}}(()=>D.current,v);return e||(function(e,t){let s,r=window.visualViewport;if(!r)return null;let{handler:a,cleanup:n}={handler:()=>{t&&(clearTimeout(s),s=setTimeout(()=>{let t=e();if(!t)return;let s=window.visualViewport;if(!s)return void t.scrollIntoView({block:"end",behavior:"smooth"});let r=window.innerHeight-s.height,a=t.closest("[data-keyboard-offset]");if(a&&r>0){let e=a.getBoundingClientRect().bottom-s.height-s.offsetTop;e>0?(a.style.transform=`translateY(-${e}px)`,a.setAttribute("data-keyboard-active","")):(a.style.transform="",a.removeAttribute("data-keyboard-active"))}else a?(a.style.transform="",a.removeAttribute("data-keyboard-active")):t.scrollIntoView({block:"end",behavior:"smooth"})},150))},cleanup:()=>{clearTimeout(s);let t=e();if(!t)return;let r=t.closest("[data-keyboard-offset]");r&&(r.style.transform="",r.removeAttribute("data-keyboard-active"))}};return r.addEventListener("resize",a),r.addEventListener("scroll",a),()=>{r.removeEventListener("resize",a),r.removeEventListener("scroll",a),n()}}(()=>D.current,v)??void 0)},[D,v]),(0,s.useImperativeHandle)(x,()=>({focus:()=>L?.commands.focus(),clear:()=>L?.commands.clearContent(),isEmpty:()=>L?.isEmpty??!0,coordsAtTextIndex:e=>{if(!L)return null;try{let t=L.view.coordsAtPos(e+1);return{top:t.top,left:t.left}}catch{return null}}}),[L]),(0,t.jsxs)("div",{ref:D,className:"chat-composer relative",children:[(0,t.jsx)(q.EditorContent,{editor:L,className:"max-h-44 overflow-y-auto thin-scrollbar pr-2 text-base chat-input-line-height"}),o,(0,t.jsx)(X,{state:b})]})}),Q=["Email the team this week's launch update","Recruit a QA agent to review my PRs","Remind me to follow up with Acme on Thursday","What did we ship last week?","Fix the failing test in the checkout flow"];var Z=e.i(721387),ee=e.i(288329),et=e.i(332680),es=e.i(535991),er=e.i(940931);function ea({open:e,onOpenChange:r,emailId:a,workspaceId:l}){let[i,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(null),[m,h]=(0,s.useState)(!1),{width:g,onPointerDown:p,onPointerMove:x,onPointerUp:v}=(0,ee.useSheetResize)({defaultWidth:500,minWidth:320,maxWidthRatio:.8}),k=(0,s.useRef)(r);(0,s.useEffect)(()=>{k.current=r}),(0,s.useEffect)(()=>{e&&a&&(h(!0),c(null),u(null),Promise.all([(0,f.getEmail)(a,l),(0,f.getEmailBody)(a,l)]).then(([e,t])=>{c(e),u(t)}).catch(()=>{y.toast.error("Email not found"),k.current(!1)}).finally(()=>h(!1)))},[e,a,l]);let b=e=>{r(e),e||setTimeout(()=>{c(null),u(null)},300)};return(0,t.jsx)(et.Sheet,{open:e,onOpenChange:b,children:(0,t.jsxs)(et.SheetContent,{side:"right",showCloseButton:!1,style:{width:`min(${g}px, 100vw)`,maxWidth:"none"},className:"data-[side=right]:sm:inset-y-2 data-[side=right]:sm:right-2 data-[side=right]:sm:h-auto data-[side=right]:sm:rounded-xl data-[side=right]:sm:border",children:[(0,t.jsx)(ee.SheetResizeHandle,{onPointerDown:p,onPointerMove:x,onPointerUp:v}),(0,t.jsx)(et.SheetHeader,{children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(T.Mail,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,t.jsx)(et.SheetTitle,{className:"truncate flex-1",children:m?"Loading...":i?.subject||"Email"}),(0,t.jsx)(n.Button,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>b(!1),children:(0,t.jsx)(z.X,{className:"h-4 w-4"})})]})}),(0,t.jsx)(et.SheetBody,{className:"flex-1 overflow-y-auto thin-scrollbar",children:m?(0,t.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,t.jsx)(o.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}):i?(0,t.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"text-sm space-y-1 border-b pb-3",children:[(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"From:"}),(0,t.jsx)("span",{className:"truncate",children:i.from_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"To:"}),(0,t.jsx)("span",{className:"truncate",children:i.to_email})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:"Date:"}),(0,t.jsx)("span",{children:new Date(i.created_at).toLocaleString()})]})]}),d?.isHtml?(0,t.jsx)(er.EmailBodyFrame,{html:d.content,className:"max-w-full"}):(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:d?.content}),i.attachments&&i.attachments.length>0&&(0,t.jsxs)("div",{className:"border-t pt-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mb-2 text-xs text-muted-foreground",children:[(0,t.jsx)(R.Paperclip,{className:"size-3"}),i.attachments.length," attachment",i.attachments.length>1?"s":""]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5",children:i.attachments.map((e,s)=>(0,t.jsxs)("a",{href:`/api/email/${i.id}/attachment/${s}?workspace_id=${l}`,target:"_blank",rel:"noopener noreferrer",download:e.filename,className:"flex items-center gap-1.5 rounded-md border border-border/50 bg-muted/50 px-2.5 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,t.jsx)(es.File,{className:"size-3 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-45",children:e.filename}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:e.size<1024?`${e.size} B`:e.size<1048576?`${(e.size/1024).toFixed(1)} KB`:`${(e.size/1048576).toFixed(1)} MB`})]},e.key))})]})]}):null})]})})}var en=e.i(781360),el=e.i(169678),ei=e.i(364079),eo=e.i(219658);e.i(112946);var ec=e.i(164300),ed=e.i(418277),eu=e.i(72852);function em(e,t){if(t>=e.length)return!0;let s=e.charCodeAt(t);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}function ef(e,t){if(!e||0===t.length||!e.includes("@"))return e;let s=t.slice().sort((e,t)=>t.name.length-e.name.length),r=[];for(let t=0;t<e.length;t++){if("@"!==e[t]||!function(e,t){if(0===t)return!0;let s=e.charCodeAt(t-1);return(!(s>=48)||!(s<=57))&&(!(s>=65)||!(s<=90))&&(!(s>=97)||!(s<=122))&&95!==s}(e,t))continue;let a=t+1;for(let n of s){let s=a+n.name.length;if(s>e.length||e.slice(a,s).toLowerCase()!==n.name.toLowerCase())continue;let l=s,i=e.slice(s).match(/^ \([a-zA-Z0-9-]+@alook\.ai\)/);if(i&&(l=s+i[0].length),(i||em(e,s))&&(!i||em(e,l))){if(r.some(e=>t>=e.start&&t<e.end))break;r.push({start:t,end:s,name:n.name,agentId:n.id});break}}}let a=e;for(let e=r.length-1;e>=0;e--){let t=r[e],s=a.slice(t.start,t.end);a=a.slice(0,t.start)+`<mention data-agent-id="${t.agentId}">${s}</mention>`+a.slice(t.end)}return a}e.i(400175);var eh=e.i(819748),eg=e.i(983453),ep=e.i(251638);let ex=(0,S.default)("flag",[["path",{d:"M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528",key:"1jaruq"}]]);e.s(["Flag",0,ex],618615);var ev=e.i(89440),ek=e.i(541544),eb=e.i(64873);let ej={mention:["data-agent-id"]},ey=["mention"];function ew({icon:e,label:s,title:r,preview:a,trailing:n,onClick:l}){return(0,t.jsxs)("button",{type:"button",onClick:l,disabled:!l,className:(0,w.cn)("group/card w-[26rem] max-w-full h-[4.75rem] overflow-hidden text-left rounded-md border bg-card","flex items-center gap-3 px-3 py-2",l&&"cursor-pointer transition-all duration-150 hover:-translate-y-px hover:shadow-sm hover:border-foreground/15"),children:[(0,t.jsx)("span",{className:"flex size-9 shrink-0 items-center justify-center rounded-md bg-muted text-muted-foreground",children:(0,t.jsx)(e,{className:"size-4"})}),(0,t.jsxs)("span",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,t.jsx)("span",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground/70",children:s}),(0,t.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:r}),n]}),a?(0,t.jsx)("span",{className:"truncate text-xs text-muted-foreground",children:a}):null]}),l&&(0,t.jsx)(eb.ChevronRight,{className:"size-4 shrink-0 self-center text-muted-foreground/40 transition-colors duration-150 group-hover/card:text-muted-foreground"})]})}function eN({content:e,metadata:s,conversationType:r,onClick:a}){let n=function(e,t,s){if(e?.issueId)return"issue";if(e?.emailId)return"email";if(e?.calendarEventId)return"calendar";if("issue_event"===s)return"issue";if("email_notification"===s)return"email";if("calendar_event"===s)return"calendar";let r=t.toLowerCase();return r.startsWith("issue ")||r.startsWith("issue:")?"issue":r.includes("email")?"email":"calendar"}(s,e,r),l="issue"===n?ep.CircleDot:"email"===n?T.Mail:eg.Calendar,{label:i,title:o,preview:c}=function(e,t){if("email"===e){let e=/^Email sent to (.+?): ([\s\S]+)$/.exec(t);if(e)return{label:"EMAIL",title:e[2],preview:`to ${e[1]}`};let s=/^New email from (.+?): ([\s\S]+)$/.exec(t);if(s)return{label:"EMAIL",title:s[2],preview:`from ${s[1]}`};let r=t.indexOf(": ");return r>-1?{label:"EMAIL",title:t.slice(r+2)}:{label:"EMAIL",title:t}}if("issue"===e){let e=/^Issue status changed: ([\s\S]+?) -> ([\s\S]+)$/.exec(t);if(e)return{label:"ISSUE",title:"Status changed",preview:`Status: ${e[1]} → ${e[2]}`};let s=/^Issue (?:created|opened): ([\s\S]+)$/.exec(t);return s?{label:"ISSUE",title:s[1]}:{label:"ISSUE",title:t.replace(/^Issue:?\s*/i,"")}}return{label:"CALENDAR",title:t.replace(/^Calendar event:\s*/i,"")}}(n,e);return(0,t.jsx)(ew,{icon:l,label:i,title:o,preview:c,onClick:a})}function eC({attachmentIds:e,artifacts:s,onArtifactClick:r}){let a=e.map(e=>s.find(t=>t.id===e)).filter(e=>!!e);return 0===a.length?null:(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:a.map(e=>(0,t.jsxs)("button",{type:"button",onClick:t=>{t.stopPropagation(),r(e)},className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80 hover:bg-primary-foreground/20 transition-colors cursor-pointer",children:[(0,t.jsx)(I.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.filename})]},e.id))})}function e_({pendingFiles:e,messageId:s}){let r=e.get(s);return r&&0!==r.length?(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 mt-1.5",children:r.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md bg-primary-foreground/10 border border-primary-foreground/20 px-2 py-0.5 text-xs text-primary-foreground/80",children:[(0,t.jsx)(I.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-37.5",children:e.name})]},s))}):null}let eS={solo:"rounded-[1.05rem]",first:"rounded-[1.05rem] rounded-br-[0.35rem]",middle:"rounded-[1.05rem] rounded-tr-[0.35rem] rounded-br-[0.35rem]",last:"rounded-[1.05rem] rounded-tr-[0.35rem]"},eM={solo:"rounded-[1.05rem]",first:"rounded-[1.05rem] rounded-bl-[0.35rem]",middle:"rounded-[1.05rem] rounded-tl-[0.35rem] rounded-bl-[0.35rem]",last:"rounded-[1.05rem] rounded-tl-[0.35rem]"};function eI({groupPosition:e,agentName:s,config:r,forceSpacer:a=!1,children:n}){let l=!a&&("first"===e||"solo"===e);return(0,t.jsxs)("div",{className:"flex justify-start items-start gap-2 min-w-0",children:[(0,t.jsx)("div",{className:(0,w.cn)("w-[30px]","shrink-0"),"aria-hidden":!l,children:l&&r&&(0,t.jsx)(eh.AnimatedAvatar,{config:r,size:30,className:"rounded-md",isHovered:!1})}),(0,t.jsxs)("div",{className:"min-w-0 max-w-[86%] flex flex-col items-start gap-0.5",children:[l&&(0,t.jsx)("span",{className:"text-[0.85rem] font-semibold text-foreground leading-[1.15] pt-0.5 mb-1",children:s}),n]})]})}function eT({actions:e}){return 0===e.length?null:(0,t.jsx)("div",{className:(0,w.cn)("absolute -top-3 right-0 z-10 flex items-center gap-0.5 rounded-lg border bg-card p-0.5 shadow-sm","opacity-0 transition-opacity duration-150 group-hover/msg:opacity-100 focus-within:opacity-100"),children:e.map(e=>(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(n.Button,{variant:"ghost",size:"icon-xs","aria-label":e.label,onClick:t=>{t.stopPropagation(),e.onClick()},className:(0,w.cn)(e.active?"text-foreground":"text-muted-foreground")}),children:e.icon}),(0,t.jsx)(C.TooltipContent,{children:e.label})]},e.key))})}function eE({open:e,onOpenChange:s,actions:r}){return(0,t.jsx)(et.Sheet,{open:e,onOpenChange:s,children:(0,t.jsx)(et.SheetContent,{side:"bottom",showCloseButton:!1,className:"rounded-t-2xl p-2",children:(0,t.jsx)("div",{className:"flex flex-col",children:r.map(e=>(0,t.jsxs)("button",{type:"button",onClick:()=>{e.onClick(),s(!1)},className:(0,w.cn)("flex items-center gap-3 rounded-lg px-3 py-3 text-left text-[0.95rem] active:bg-muted",(e.active,"text-foreground")),children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e.icon}),e.label]},e.key))})})})}function eA(){return(0,t.jsx)("span",{"aria-hidden":!0,className:"absolute -left-1.5 -top-1.5 z-10 flex size-3.5 items-center justify-center rounded-full border-2 border-background bg-foreground text-background",children:(0,t.jsx)(ex,{className:"size-2 fill-current"})})}let eR=(0,s.memo)(function({msg:e,agents:r,artifacts:a,activeTask:n,activeTaskStreamMsgId:l,taskMessages:i,connectionLost:o,conversationType:c,pendingFilesByMessage:d,onArtifactClick:f,onEmailClick:h,onIssueClick:g,onCalendarEventClick:p,onRetry:x,mentionComponents:v,isFlagged:k,onToggleFlag:b,groupPosition:j="solo",provider:N,agentName:C,agentAvatarConfig:_,isSendFailed:S,onRetrySend:M}){var I;let T,E,A,R,z,$,L,{copy:D,copied:P}=function(e=2e3){let[t,r]=(0,s.useState)(!1),a=(0,s.useRef)(void 0),n=(0,s.useCallback)(async t=>{try{return await navigator.clipboard.writeText(t),r(!0),clearTimeout(a.current),a.current=setTimeout(()=>r(!1),e),!0}catch{return!1}},[e]);return(0,s.useEffect)(()=>()=>clearTimeout(a.current),[]),{copy:n,copied:t}}(),F=!!n&&"assistant"===e.role&&e.task_id===n.id&&e.conversation_id===n.conversation_id&&(null==l||e.id===l)&&i.length>0&&!["completed","cancelled","superseded"].includes(n.status),q=F&&(i.some(e=>"error"===e.type)||"failed"===n.status&&!!n.error||o),O=F&&n?.status==="failed",B="assistant"===e.role&&(e.metadata?.kind==="lifecycle"||"Task cancelled by you"===e.content||"Task cancelled by user"===e.content),H=function(){let[e,t]=s.useState(!0);return s.useEffect(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(hover: hover) and (pointer: fine)"),s=()=>t(e.matches);return s(),e.addEventListener("change",s),()=>e.removeEventListener("change",s)},[]),e}(),[U,W]=s.default.useState(!1),V=s.default.useCallback(async()=>{await D(e.content)?y.toast.success("Copied to clipboard"):y.toast.error("Failed to copy")},[D,e.content]),K="assistant"===e.role||"user"===e.role,Y=[];K&&Y.push({key:"copy",label:P?"Copied":"Copy",icon:P?(0,t.jsx)(ek.Check,{className:"size-3.5"}):(0,t.jsx)(ev.Copy,{className:"size-3.5"}),onClick:V}),"assistant"===e.role&&b&&Y.push({key:"flag",label:k?"Unflag":"Flag",icon:(0,t.jsx)(ex,{className:(0,w.cn)("size-3.5",k&&"fill-current")}),onClick:()=>b(e.id),active:k});let X=function(e,{delay:t=450,moveThreshold:r=10}={}){let a=s.useRef(null),n=s.useRef(null),l=s.useRef(!1),i=s.useRef(e);s.useEffect(()=>{i.current=e});let o=s.useCallback(()=>{a.current&&(clearTimeout(a.current),a.current=null),n.current=null},[]),c=s.useCallback(e=>{"mouse"!==e.pointerType&&(o(),l.current=!1,n.current={x:e.clientX,y:e.clientY},a.current=setTimeout(()=>{l.current=!0,n.current=null,a.current=null,i.current()},t))},[o,t]),d=s.useCallback(e=>{let t=n.current;if(!t)return;let s=Math.abs(e.clientX-t.x),a=Math.abs(e.clientY-t.y);(s>r||a>r)&&o()},[o,r]),u=s.useCallback(e=>{l.current&&(e.preventDefault(),e.stopPropagation(),l.current=!1)},[]);return s.useEffect(()=>o,[o]),{onPointerDown:c,onPointerMove:d,onPointerUp:o,onPointerCancel:o,onPointerLeave:o,onClick:u}}(()=>{Y.length>0&&W(!0)}),G=!H&&Y.length>0?X:{},J=!H&&Y.length>0?(0,t.jsx)(eE,{open:U,onOpenChange:W,actions:Y}):null,Q=H&&Y.length>0?(0,t.jsx)(eT,{actions:Y}):null;return(0,t.jsxs)(s.default.Fragment,{children:[F&&q&&(0,t.jsx)("div",{className:(0,w.cn)("group/msg",k&&"bg-muted/30 rounded-lg px-2 -mx-2"),...O?{"data-quote-source":!0}:{},children:(0,t.jsx)(eI,{groupPosition:j,agentName:C,config:_,children:(0,t.jsxs)("div",{className:"relative min-w-0 w-fit max-w-full",...O?G:{},children:[(0,t.jsx)(m,{task:n,messages:i,connectionLost:o,onRetry:x,provider:N}),O&&Q,O&&J]})})}),"user"===e.role?(T=e.content.match(/^\/(\S+)\s?([\s\S]*)$/),E=T?.[1]??null,A=T?T[2]||"":e.content,(0,t.jsxs)("div",{className:"group/msg flex flex-col items-end","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:[(0,t.jsxs)("div",{className:(0,w.cn)("max-w-[80%] px-3 py-1.5 bg-primary text-primary-foreground text-base relative",eS[j],S&&"opacity-60"),...G,children:[E&&(0,t.jsxs)("span",{className:"inline-flex items-center rounded px-1.5 py-0.5 text-xs font-medium bg-primary-foreground/15 text-primary-foreground mb-1",children:["/",E]}),A&&(0,t.jsx)("div",{className:"markdown markdown-user",children:(0,t.jsx)(ec.Streamdown,{plugins:{mermaid:ed.mermaid,cjk:eu.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!1,download:!1,fullscreen:!1}},linkSafety:{enabled:!1},allowedTags:ej,literalTagContent:ey,components:v,children:ef(A,r)})}),e.attachment_ids&&e.attachment_ids.length>0&&e.attachment_ids.some(e=>a.some(t=>t.id===e))?(0,t.jsx)(eC,{attachmentIds:e.attachment_ids,artifacts:a,onArtifactClick:f}):(0,t.jsx)(e_,{pendingFiles:d,messageId:e.id}),Q]}),J,S&&(0,t.jsx)("button",{type:"button",onClick:()=>M?.(e.id),className:"mt-1 px-1 text-xs text-destructive hover:underline",children:"Not delivered · tap to retry"})]})):"event"===e.role?(R=e.metadata?.emailId,z=e.metadata?.issueId,$=e.metadata?.calendarEventId,L=R?()=>h(R):z?()=>g(z):$?()=>p($):void 0,(0,t.jsx)("div",{"data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsx)(eI,{groupPosition:j,agentName:C,config:_,children:(0,t.jsx)(eN,{content:e.content,metadata:e.metadata,conversationType:c,onClick:L})})})):B&&e.metadata?.error_source!=="runtime"?(0,t.jsx)("div",{className:"flex justify-center","data-message-id":e.id,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsx)("span",{className:"text-xs text-muted-foreground/70 text-center px-2 py-1",children:e.content})}):(I={hasTaskStream:F,isRuntimeError:e.metadata?.error_source==="runtime"}).hasTaskStream&&I.isRuntimeError?null:(0,t.jsx)("div",{className:(0,w.cn)("group/msg overflow-x-clip",k&&e.metadata?.error_source==="runtime"&&"bg-muted/30 rounded-lg px-2 -mx-2"),"data-message-id":e.id,"data-quote-source":!0,...e.task_id?{"data-task-id":e.task_id}:{},children:(0,t.jsx)(eI,{groupPosition:j,agentName:C,config:_,children:e.metadata?.error_source==="runtime"?(0,t.jsxs)("div",{className:"relative min-w-0 w-fit max-w-full",...G,children:[(0,t.jsx)(u,{provider:e.metadata.provider??N,message:e.content}),Q,J]}):(0,t.jsxs)("div",{className:"relative min-w-0 w-fit max-w-full",...G,children:[(0,t.jsx)("div",{className:(0,w.cn)("markdown min-w-0 max-w-full px-3 py-1.5 bg-muted text-foreground text-base",eM[j],k&&"shadow-[inset_2px_0_0_var(--foreground)]"),children:(0,t.jsx)(ec.Streamdown,{plugins:{mermaid:ed.mermaid,cjk:eu.cjk},controls:{code:{copy:!0,download:!1},table:{copy:!0,download:!1,fullscreen:!0}},linkSafety:{enabled:!1},allowedTags:ej,literalTagContent:ey,components:v,children:ef(e.content,r)})}),k&&(0,t.jsx)(eA,{}),Q,J]})})})]})});function ez(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-0.5","aria-hidden":!0,children:[(0,t.jsx)("span",{className:"size-1 rounded-full bg-muted-foreground/60 motion-safe:animate-[typing-dot_1.2s_ease-in-out_infinite]"}),(0,t.jsx)("span",{className:"size-1 rounded-full bg-muted-foreground/60 motion-safe:animate-[typing-dot_1.2s_ease-in-out_0.2s_infinite]"}),(0,t.jsx)("span",{className:"size-1 rounded-full bg-muted-foreground/60 motion-safe:animate-[typing-dot_1.2s_ease-in-out_0.4s_infinite]"})]})}function e$({agentFirstName:e,taskStatus:s}){let r="running"===s?"typing":"queued"===s||"dispatched"===s?"reading":"idle";return(0,t.jsx)("div",{className:"h-5 px-1 mb-2 flex items-center","aria-live":"polite",children:(0,t.jsx)("span",{className:(0,w.cn)("inline-flex items-center gap-1.5 text-sm text-muted-foreground","idle"!==r&&"motion-safe:animate-[fade-up_200ms_ease-out_both]"),children:"idle"!==r&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:"reading"===r?`${e} is reading`:`${e} is typing`}),(0,t.jsx)(ez,{})]})},r)})}var eL=e.i(126366),eD=e.i(309475);function eP({agent:e,isOnline:r,activeTaskCount:a,variant:n="default",isHovered:l}){let[i,o]=(0,s.useState)(!1),c=e.email_handle?(0,K.toAlookAddress)(e.email_handle):null,d=(0,s.useCallback)(async()=>{if(c)try{await navigator.clipboard.writeText(c),o(!0),y.toast.success("Email copied to clipboard"),setTimeout(()=>o(!1),2e3)}catch{y.toast.error("Failed to copy email")}},[c]);if("compact"===n){let s;return(0,t.jsxs)("div",{className:"flex items-center gap-2 p-0",children:[(s=(0,eL.parseAvatarUrl)(e.avatar_url))?(0,t.jsx)(eh.AnimatedAvatar,{config:s,size:32,className:"shrink-0 rounded-xl",isHovered:l??!1,isWorking:!!r&&(a??0)>0}):(0,t.jsx)("div",{className:"flex items-center justify-center size-8 rounded-xl bg-secondary text-secondary-foreground text-xs font-medium shrink-0",children:e.name.charAt(0).toUpperCase()}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate max-w-35",children:e.name}),c&&(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:c})]}),void 0!==r&&(0,t.jsx)("div",{className:"pointer-events-none mt-0.5",children:(0,t.jsx)(eD.AgentStatusBadge,{isOnline:r,taskCount:a??0,agentId:e.id})})]})]})}return(0,t.jsxs)("div",{className:"flex flex-col gap-1.5 p-1",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:e.name}),(0,t.jsx)("span",{className:"flex-1"}),void 0!==r&&(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 text-[11px] text-muted-foreground",children:[(0,t.jsx)("span",{className:(0,w.cn)("size-1.5 rounded-full",r?"bg-status-online":"bg-status-offline")}),r?(a??0)>0?"Working":null:"Offline"]})]}),c&&(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:c}),(0,t.jsx)("button",{type:"button",onClick:e=>{e.stopPropagation(),d()},className:"shrink-0 p-0.5 rounded-sm text-muted-foreground/60 hover:text-foreground transition-colors cursor-pointer",children:i?(0,t.jsx)(ek.Check,{className:"size-3 text-green-500"}):(0,t.jsx)(ev.Copy,{className:"size-3"})})]}),e.description&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2",children:e.description})]})}e.s(["AgentPreviewCard",0,eP],844010);var eF=e.i(224950);let eq={mention:function(e){let{children:s,...r}=e,{agents:a}=(0,k.useAgentContext)(),n=r["data-agent-id"]??r.dataAgentId,l=n?a.find(e=>e.id===n):void 0;if(!l&&"string"==typeof s){let e=s.startsWith("@")?s.slice(1):s;l=a.find(t=>t.name.toLowerCase()===e.toLowerCase())}return l?(0,t.jsxs)(eF.Popover,{children:[(0,t.jsx)(eF.PopoverTrigger,{openOnHover:!0,delay:300,nativeButton:!1,render:(0,t.jsx)("span",{className:"mention-highlight cursor-pointer"}),children:s}),(0,t.jsx)(eF.PopoverContent,{side:"top",className:"w-fit max-w-80",children:(0,t.jsx)(eP,{agent:l})})]}):(0,t.jsx)("span",{className:"mention-highlight",children:s})},p:({children:e,node:s,...r})=>(0,t.jsx)("div",{"data-md-p":"",...r,children:e})};function eO({agentName:e}){return(0,t.jsxs)("div",{className:"flex items-center gap-3 py-4 select-none","aria-hidden":!0,children:[(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"}),(0,t.jsxs)("span",{className:"text-xs text-muted-foreground/60 whitespace-nowrap",children:[e," took a nap 💤"]}),(0,t.jsx)("div",{className:"flex-1 border-t border-border/40"})]})}function eB({artifact:e,version:s,hasDuplicates:r,onClick:a}){return(0,t.jsx)(ew,{icon:I.FileText,label:"FILE",title:e.filename,preview:(0,Z.formatSize)(e.size),trailing:r?(0,t.jsxs)("span",{className:"shrink-0 text-xs text-muted-foreground bg-muted rounded-full px-1.5 py-0.5 font-normal",children:["v",s]}):void 0,onClick:()=>a(e)})}e.s(["AgentChatView",0,function({agentId:e,targetConvId:l,scrollToTaskId:i,scrollToMessageId:c}){let d,u,S,P=(0,r.useParams)(),q=(0,r.useSearchParams)(),{workspaceId:O,slug:B}=(0,a.useWorkspace)(),{agents:H,runtimes:U,agentLinks:W,activeTaskCounts:V,subscribeWs:K,subscribeReconnect:Y}=(0,k.useAgentContext)(),{refresh:X}=(0,b.useInboxCount)(),{activeChannel:ee,loading:et,setAgentId:es}=(0,j.useChannel)(),er=e??P.id,ec=H.find(e=>e.id===er),ed=ec?.runtime_id?U.find(e=>e.id===ec.runtime_id):null,eu=ed?.provider??null,em=void 0!==i?i:q.get("task"),ef=void 0!==c?c:q.get("msg"),eh=void 0!==l?l:q.get("conv"),[eg,ep]=(0,s.useState)(()=>localStorage.getItem(`chat-draft:${er}:${eh??"default"}`)??""),[ex,ev]=(0,s.useState)(!1),{artifactSheetOpen:ek,setArtifactSheetOpen:eb,selectedArtifact:ej,setSelectedArtifact:ey,emailSheetOpen:ew,setEmailSheetOpen:eN,selectedEmailId:eC,setSelectedEmailId:e_,calendarEventSheetOpen:eS,setCalendarEventSheetOpen:eM,selectedCalendarEventId:eT,setSelectedCalendarEventId:eE,issueSheetOpen:eA,setIssueSheetOpen:ez,selectedIssueId:eD,setSelectedIssueId:eP,issueDetail:eH,setIssueDetail:eU,issueDetailLoading:eW,issueTraceTasks:eV,issueActiveTask:eK,setIssueActiveTask:eY,openIssue:eX,issueConvId:eG,issueTaskId:eJ}=function(e){let[t,r]=(0,s.useState)(!1),[a,n]=(0,s.useState)(null),[l,i]=(0,s.useState)(!1),[o,c]=(0,s.useState)(null),[d,u]=(0,s.useState)(!1),[m,h]=(0,s.useState)(null),[g,p]=(0,s.useState)(!1),[x,v]=(0,s.useState)(null),[k,b]=(0,s.useState)(null),[j,w]=(0,s.useState)(!1),[N,C]=(0,s.useState)(null),[_,S]=(0,s.useState)(null),M=(0,s.useCallback)(async t=>{v(t),p(!0),w(!0),C(null),S(null);try{let s=await (0,f.getIssue)(e,t);b(s),s.issue.latest_task_id&&(0,f.getTask)(s.issue.latest_task_id,e).then(e=>S(e)).catch(()=>S(null)),s.issue.trace_id&&(0,f.getTrace)(s.issue.trace_id,e).then(e=>C(e.tasks)).catch(()=>C(null))}catch(e){y.toast.error(e instanceof Error?e.message:"Failed to load issue"),p(!1)}finally{w(!1)}},[e]),I=k?.issue?.conversation_id??null,T=k?.issue?.latest_task_id??null;return{artifactSheetOpen:t,setArtifactSheetOpen:r,selectedArtifact:a,setSelectedArtifact:n,emailSheetOpen:l,setEmailSheetOpen:i,selectedEmailId:o,setSelectedEmailId:c,calendarEventSheetOpen:d,setCalendarEventSheetOpen:u,selectedCalendarEventId:m,setSelectedCalendarEventId:h,issueSheetOpen:g,setIssueSheetOpen:p,selectedIssueId:x,setSelectedIssueId:v,issueDetail:k,setIssueDetail:b,issueDetailLoading:j,issueTraceTasks:N,issueActiveTask:_,setIssueActiveTask:S,openIssue:M,issueConvId:I,issueTaskId:T}}(O),{pendingFiles:eQ,setPendingFiles:eZ,fileInputRef:e0,addPendingFiles:e1,handleFileSelect:e2,removePendingFile:e5,dragging:e3,handleDragEnter:e8,handleDragLeave:e4,handleDragOver:e6,handleDrop:e9}=function(){let[e,t]=(0,s.useState)([]),r=(0,s.useRef)(null),a=(0,s.useCallback)(e=>{let s=[];for(let t of e)t.size>0xa00000?y.toast.error(`"${t.name}" exceeds 10 MB limit`):s.push(t);s.length>0&&t(e=>[...e,...s])},[]),n=(0,s.useCallback)(e=>{let t=e.target.files;t&&(a(Array.from(t)),e.target.value="")},[a]),l=(0,s.useCallback)(e=>{t(t=>t.filter((t,s)=>s!==e))},[]),[i,o]=(0,s.useState)(!1),c=(0,s.useRef)(0),d=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),c.current++,e.dataTransfer.types.includes("Files")&&o(!0)},[]),u=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),c.current--,0===c.current&&o(!1)},[]),m=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation()},[]),f=(0,s.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),o(!1),c.current=0,a(Array.from(e.dataTransfer.files))},[a]);return{pendingFiles:e,setPendingFiles:t,fileInputRef:r,addPendingFiles:a,handleFileSelect:n,removePendingFile:l,dragging:i,handleDragEnter:d,handleDragLeave:u,handleDragOver:m,handleDrop:f}}(),[e7,te]=(0,s.useState)(null),[tt]=(0,s.useState)(()=>Date.now()),[ts,tr]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${er}:${eh??"default"}`)??"null");return e?.quote??null}catch{return null}}),[ta,tn]=(0,s.useState)(!1),{flaggedIds:tl,setFlaggedIds:ti,handleToggleFlag:to}=function(e){let[t,r]=(0,s.useState)(new Set),a=(0,s.useRef)(t);(0,s.useEffect)(()=>{a.current=t});let{increment:n,decrement:l,refresh:i}=(0,D.useFlagCount)(),o=(0,s.useCallback)(async t=>{let s=a.current.has(t);r(e=>{let r=new Set(e);return s?r.delete(t):r.add(t),r}),s?(l(),(0,f.unflagMessage)(e,t).then(()=>{i()}).catch(()=>{r(e=>new Set(e).add(t)),n()})):(n(),(0,f.flagMessage)(e,t).then(()=>{i()}).catch(()=>{r(e=>{let s=new Set(e);return s.delete(t),s}),l()}))},[e,n,l,i]);return{flaggedIds:t,setFlaggedIds:r,handleToggleFlag:o}}(O);(0,s.useEffect)(()=>{es(er)},[er,es]);let tc=(0,s.useRef)(!1),td=v(eg),tu=v(ts),tm=v(eQ),tf=(0,s.useRef)(null),th=(0,s.useRef)(null),{conversation:tg,messages:tp,sending:tx,activeTask:tv,taskMessages:tk,messagesLoading:tb,connectionLost:tj,loadingMore:ty,artifacts:tw,napping:tN,pendingFilesByMessage:tC,failedSends:t_,agentArtifacts:tS,agentName:tM,timeline:tI,groupPositions:tT,activeTaskStreamMsgId:tE,canLoadMore:tA,currentConvHasMessages:tR,scrollRef:tz,composerRef:t$,loadOlderMessages:tL,handleScroll:tD,handleSend:tP,handleRetrySend:tF,handleRetryTask:tq,handleNap:tO}=function(e,t){let{agentId:r,targetConvId:a,scrollToTaskId:n,scrollToMessageId:l,propTargetConvId:i,workspaceId:o,agents:c,activeChannel:d,channelLoading:u,subscribeWs:m,subscribeReconnect:k,refreshInboxCount:b}=e,{setFlaggedIds:j,setPendingFiles:w,setInput:N,setQuotedText:C,setActiveSkill:_,clearActiveSkill:S,inputRef:M,quotedTextRef:I,pendingFilesRef:T,activeSkillRef:E,draftMetaRestoredRef:A}=t,[R,z]=(0,s.useState)(null),[D,P]=(0,s.useState)([]),[F,q]=(0,s.useState)(!1),[O,B]=(0,s.useState)(null),[H,U]=(0,s.useState)([]),[W,V]=(0,s.useState)(!0),[K,Y]=(0,s.useState)(!1),[X,G]=(0,s.useState)(!1),[J,Q]=(0,s.useState)(!1),[Z,ee]=(0,s.useState)([]),[et,es]=(0,s.useState)([]),[er,ea]=(0,s.useState)(!1),[en,el]=(0,s.useState)([]),[ei,eo]=(0,s.useState)(()=>new Map),[ec,ed]=(0,s.useState)(()=>new Map),{writeToCache:eu}=function(e,t){let[r,a]=(0,s.useState)(null),[n,l]=(0,s.useState)(!1),i=(0,s.useRef)(e);return(0,s.useEffect)(()=>{if(i.current=e,!e||!t){a(null),l(!1);return}(0,L.openCacheDB)(t);let s=!1;return(0,L.getCachedMessages)(e,t).then(t=>{s||i.current!==e||(t&&t.length>0?(a(t),l(!0)):(a(null),l(!1)))}),()=>{s=!0}},[e,t]),{cachedMessages:r,isFromCache:n,writeToCache:(0,s.useCallback)(async(e,s,r)=>{i.current&&t&&await (0,L.mergeCachedMessages)(i.current,e,s,t,r)},[t])}}(a??null,o),em=(0,s.useRef)(eu);(0,s.useEffect)(()=>{em.current=eu},[eu]);let ef=(0,s.useMemo)(()=>Z.filter(e=>"agent"===e.source),[Z]),eh=(0,s.useMemo)(()=>(function(e,t,s,r){if(!r||0===s.length){let r=[...e.map(e=>({kind:"message",data:e})),...t.map(e=>({kind:"artifact",data:e})),...s.map(e=>({kind:"nap",data:e}))];return r.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);if(0!==s)return s;if("nap"===e.kind||"nap"===t.kind){if("nap"===e.kind&&"nap"!==t.kind)return 1;if("nap"!==e.kind&&"nap"===t.kind)return -1}return e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)}),r}let a=new Set(s.map(e=>e.id.replace(/^nap-/,""))),n=[...s].sort((e,t)=>e.created_at.localeCompare(t.created_at)),l=s=>[...e.filter(e=>e.conversation_id===s).map(e=>({kind:"message",data:e})),...t.filter(e=>e.conversation_id===s).map(e=>({kind:"artifact",data:e}))].sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)}),i=[];for(let e of n){let t=e.id.replace(/^nap-/,"");i.push(...l(t)),i.push({kind:"nap",data:e})}i.push(...l(r));let o=new Set([...a,r]),c=e.filter(e=>!o.has(e.conversation_id)),d=t.filter(e=>!o.has(e.conversation_id));if(c.length>0||d.length>0){let e=[...c.map(e=>({kind:"message",data:e})),...d.map(e=>({kind:"artifact",data:e}))];e.sort((e,t)=>{let s=e.data.created_at.localeCompare(t.data.created_at);return 0!==s?s:e.kind!==t.kind?"message"===e.kind?-1:1:e.data.id.localeCompare(t.data.id)});let t=i.findIndex(e=>"nap"===e.kind);t>=0?i.splice(t,0,...e):i.push(...e)}return i})(D,ef,en,R?.id),[D,ef,en,R?.id]),eg=(0,s.useMemo)(()=>(function(e){let t=Array(e.length).fill(null),s=(e,t)=>{if(!e||!t)return!1;let s=p(e),r=p(t);if(null===s||s!==r)return!1;let a=x(e),n=x(t);return!a||!n||6e4>Math.abs(new Date(a).getTime()-new Date(n).getTime())};for(let r=0;r<e.length;r++){let a=e[r];if(null===p(a))continue;let n=r>0?e[r-1]:null,l=r<e.length-1?e[r+1]:null,i=s(n,a),o=s(a,l);i&&o?t[r]="middle":i&&!o?t[r]="last":!i&&o?t[r]="first":t[r]="solo"}return t})(eh),[eh]),ep=(0,s.useMemo)(()=>{if(!O)return null;for(let e=D.length-1;e>=0;e--){let t=D[e];if("assistant"===t.role&&t.task_id===O.id)return t.id}return null},[D,O]),ex=(0,s.useRef)(null),ev=(0,s.useRef)(null),ek=(0,s.useRef)(null),eb=(0,s.useRef)(null),ej=(0,s.useRef)(0),ey=(0,s.useRef)(0),ew=(0,s.useRef)(!1),eN=(0,s.useRef)(!1),eC=(0,s.useRef)(!0),e_=(0,s.useRef)(!1),eS=(0,s.useRef)(null),eM=(0,s.useRef)(null),eI=(0,s.useRef)(0),eT=(0,s.useRef)(void 0),eE=(0,s.useRef)(null),eA=(0,s.useRef)({completedKey:null}),eR=(0,s.useRef)(null),ez=(0,s.useCallback)((e,t)=>{eE.current===e&&(0,L.getConvExtras)(e,o).then(s=>{if(s&&eE.current===e)return(0,L.setConvExtras)(e,{artifacts:t,conversation_type:s.conversation_type,conversation_title:s.conversation_title,conversation_channel:s.conversation_channel,conversation_created_at:s.conversation_created_at,hasMoreArtifacts:s.hasMoreArtifacts},o)}).catch(()=>{})},[o]),e$=(0,s.useCallback)(()=>{eC.current=!0,setTimeout(()=>{ex.current?.scrollTo({top:ex.current.scrollHeight,behavior:"smooth"})},50)},[]);(0,s.useEffect)(()=>{var e,t;if(!a&&u)return;let s=(e={workspaceId:o,agentId:r,targetConvId:a,scrollToTaskId:n}).targetConvId?`${e.workspaceId}::${e.agentId}::${e.targetConvId}::${e.scrollToTaskId??""}`:null;if(t=eA.current,s&&t.completedKey===s||(t.completedKey=null,0))return;ev.current&&clearInterval(ev.current),ev.current=null,eb.current=null,eE.current=null;let l=!1;V(!0),ew.current=!1,B(null),U([]),eo(new Map),ed(new Map),el([]),es([]),ea(!1),eM.current=null,N(localStorage.getItem(`chat-draft:${r}:${a??"default"}`)??"");let i=localStorage.getItem(`chat-draft-meta:${r}:${a??"default"}`);if(i)try{let e=JSON.parse(i);C(e.quote??null),_(e.skill?e.skill:null)}catch{C(null),_(null)}else C(null),_(null);async function c(e){let t=await (0,L.getCacheMeta)(e,o);if(t?.newestMessageId){let s=await (0,L.getCachedMessages)(e,o);if(l)return{painted:!1,cacheMeta:t};if(s&&s.length>0)return P(s),G(t.hasMore),V(!1),await m(e,s),{painted:!0,cacheMeta:t}}return{painted:!1,cacheMeta:t}}async function m(e,t){let s=await (0,L.getConvExtras)(e,o);if(l||!s)return;ee(s.artifacts);let a=s.conversation_created_at||t[0]?.created_at||t[t.length-1]?.created_at||"";z(t=>t&&t.id===e?t:{id:e,agent_id:r,title:s.conversation_title,type:s.conversation_type,channel:s.conversation_channel,created_at:a})}return A.current=!0,P([]),async function(){let e=!1;try{let t=null,s=null,i=null;if(a){t=a;let r=await c(t);if(l)return;s=r.cacheMeta,e=r.painted}else{let a=await (0,L.getLastOpenConversation)(r,d,o);if(l)return;if(a?.conversation_id&&a.serverMessageCount>0){let t=await c(a.conversation_id);if(l)return;t.painted&&(e=!0,i=a.conversation_id,s=t.cacheMeta)}try{let a=await (0,f.checkFreshness)({agentId:r,channel:d},o);if(l)return;if(t=a.conversation_id,i&&t!==i){ew.current=!1,eC.current=!0;let r=await c(t);if(l)return;s=r.cacheMeta,e=r.painted,r.painted||(P([]),V(!0),ee([]))}else if(!i){let r=await c(t);if(l)return;s=r.cacheMeta,e=r.painted}}catch{}}if(t){eE.current=t;let i=await (0,f.conversationInit)(t,o,{newestMessageId:s?.newestMessageId??void 0,messageCount:s?.serverMessageCount||void 0});if(l)return;if(z(i.conversation),ea(i.has_more_conversations),!i.cache_valid&&i.messages){let s=eC.current;P(e=>g(e,i.messages)),eE.current===t&&(0,L.mergeCachedMessages)(t,i.messages,i.has_more_messages,o,i.message_count).catch(()=>{}),G(i.has_more_messages),e&&ew.current&&s&&e$()}else s&&G(s.hasMore);if(eE.current===t&&!a){let e=await (0,L.getCacheMeta)(t,o);if(l)return;(0,L.setLastOpenConversation)(r,d,{conversation_id:t,newestMessageId:e?.newestMessageId??s?.newestMessageId??null,serverMessageCount:i.message_count},o).catch(()=>{})}if(ee(i.artifacts),eE.current===t&&(0,L.setConvExtras)(t,{artifacts:i.artifacts,conversation_type:i.conversation.type,conversation_title:i.conversation.title,conversation_channel:i.conversation.channel,conversation_created_at:i.conversation.created_at,hasMoreArtifacts:i.has_more_artifacts},o).catch(()=>{}),j(new Set(i.flagged_message_ids)),i.active_task&&(B(i.active_task),U(i.task_messages),i.task_messages.length>0&&(ej.current=Math.max(...i.task_messages.map(e=>e.seq))),eS.current?.(i.active_task.id,t,ej.current)),n){let e=await (0,f.getTask)(n,o).catch(()=>null);if(l)return;if(e&&!["completed","failed","cancelled","superseded"].includes(e.status)){B(e);let s=await (0,f.getTaskMessages)(n,o).catch(()=>[]);if(l)return;let r=s.filter(e=>"error"===e.type);U(r),s.length>0&&(ej.current=Math.max(...s.map(e=>e.seq))),eS.current?.(e.id,t,ej.current)}}}else{let t=await (0,f.chatInit)(r,o,d);if(l)return;eE.current=t.conversation.id,z(t.conversation);let s=eC.current;P(e=>e.length>0?g(e,t.messages):t.messages),G(t.has_more_messages),ee(t.artifacts),ea(t.has_more_conversations),(0,L.mergeCachedMessages)(t.conversation.id,t.messages,t.has_more_messages,o).catch(()=>{}),eE.current===t.conversation.id&&(0,L.setConvExtras)(t.conversation.id,{artifacts:t.artifacts,conversation_type:t.conversation.type,conversation_title:t.conversation.title,conversation_channel:t.conversation.channel,conversation_created_at:t.conversation.created_at,hasMoreArtifacts:t.has_more_artifacts},o).catch(()=>{}),(0,L.setLastOpenConversation)(r,d,{conversation_id:t.conversation.id,newestMessageId:t.messages.length>0?t.messages[t.messages.length-1].id:null,serverMessageCount:t.has_more_messages?0:t.messages.length},o).catch(()=>{}),e&&ew.current&&s&&e$(),(0,f.listFlaggedMessageIds)(o,t.conversation.id).then(e=>{l||j(new Set(e.message_ids))}).catch(()=>{}),t.active_task&&(B(t.active_task),t.task_messages.length>0&&(U(t.task_messages),ej.current=Math.max(...t.task_messages.map(e=>e.seq))),["completed","failed","cancelled","superseded"].includes(t.active_task.status)||eS.current?.(t.active_task.id,t.conversation.id,ej.current))}}catch{e?y.toast.error("Couldn't refresh conversation"):y.toast.error("Failed to load conversation")}finally{if(!l){var t;V(!1),t=eA.current,s&&(t.completedKey=s)}}}(),()=>{l=!0}},[r,o,a,n,d,u]);let eL=(0,s.useRef)(b);(0,s.useEffect)(()=>{eL.current=b},[b]);let eD=(0,s.useRef)(null);(0,s.useEffect)(()=>{if(!R?.id||!o||eD.current===R.id)return;eD.current=R.id;let e=setTimeout(()=>{(0,f.markInboxRead)(R.id,o).then(()=>eL.current()).catch(()=>{})},1e3);return()=>{eD.current=null,clearTimeout(e)}},[R?.id,o]),(0,s.useEffect)(()=>{W||!(D.length>0)||ew.current||(ew.current=!0,n||l?(eC.current=!1,ex.current?.scrollTo({top:ex.current.scrollHeight})):i?setTimeout(()=>{let e=ex.current?.querySelectorAll("[data-quote-source]");e&&e.length>0?e[e.length-1].scrollIntoView({behavior:"instant",block:"start"}):ex.current?.scrollTo({top:ex.current.scrollHeight})},50):setTimeout(()=>{ex.current?.scrollTo({top:ex.current.scrollHeight})},50))},[W,D.length,n,l,i]),(0,s.useEffect)(()=>{let e;if(!n||W||!R)return;eC.current=!1,e_.current=!0;let t=!1,s=()=>{if(t)return!1;let s=document.querySelector(`[data-task-id="${CSS.escape(n)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"center"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(e_.current=!1)},1500),!0)},r=setTimeout(async()=>{if(!t&&!s())try{let e=await (0,f.listMessagesAroundTask)(R.id,o,n);if(t)return;e.length>0?(P(t=>g(t,e)),requestAnimationFrame(()=>{setTimeout(()=>{s()||(e_.current=!1)},100)})):e_.current=!1}catch{t||(e_.current=!1)}},100);return()=>{t=!0,clearTimeout(r),e&&clearTimeout(e)}},[n,W,R,o]),(0,s.useEffect)(()=>{let e;if(!l||n||W||!R)return;eC.current=!1,e_.current=!0;let t=!1,s=setTimeout(()=>{!t&&((()=>{if(t)return!1;let s=document.querySelector(`[data-message-id="${CSS.escape(l)}"]`);return!!s&&(s.scrollIntoView({behavior:"smooth",block:"center"}),s.classList.add("task-highlight"),e=setTimeout(()=>{s.classList.remove("task-highlight"),t||(e_.current=!1)},1500),!0)})()||(ex.current?.scrollTo({top:ex.current.scrollHeight}),e_.current=!1))},100);return()=>{t=!0,clearTimeout(s),e&&clearTimeout(e)}},[l,n,W,R]);let eP=O?.status;(0,s.useEffect)(()=>{e_.current||("running"===eP||"queued"===eP)&&eC.current&&e$()},[H.length,eP,e$]),(0,s.useEffect)(()=>{e_.current||ew.current&&eC.current&&e$()},[Z.length,D.length,e$]);let eF=(0,s.useMemo)(()=>c.find(e=>e.id===r)?.name??"Agent",[c,r]),eq=v(D),eO=v(X),eB=v(et),eH=v(er),eU=v(eF),eW=v(d),eV=(0,s.useCallback)(async(e=!1)=>{if(!R||eN.current)return;eN.current=!0;let t=eq.current,s=eO.current,n=eH.current,l=eU.current,i=eW.current,c=!!a,d=t[0],u=eM.current?.id??R.id,m=s&&d,h=eB.current;if(!c&&!m&&0===h.length&&n){let e=eM.current??{id:R.id,created_at:R.created_at};try{let t=await (0,f.listPreviousConversations)(r,o,{exclude:R.id,before:e.created_at,channel:i});h=t.conversations,es(t.conversations),ea(t.has_more)}catch{ea(!1)}}let g=!c&&h.length>0;if(!m&&!g){eN.current=!1;return}Q(!0);let p=ex.current;p&&(p.style.overflowAnchor="none");let x=p?.scrollHeight??0;try{let t=[],s=[],a=20,g=!1,v=[],k=!1;if(m){let e=u===R.id?await (0,L.getCachedMessagesBefore)(u,d.created_at,d.id,20,o):null;if(e)t=e.messages,a-=e.messages.length,g=e.hasMore;else{let e=await (0,f.listMessages)(u,o,{limit:20,before:d.created_at,beforeId:d.id});t=e.messages,a-=e.messages.length,g=e.has_more}k=g}if(!c&&!g&&a>0){if(0===h.length&&n){let e=eM.current??{id:R.id,created_at:R.created_at};try{let t=await (0,f.listPreviousConversations)(r,o,{exclude:R.id,before:e.created_at,channel:i});h=t.conversations,es(t.conversations),ea(t.has_more)}catch{ea(!1)}}let e=0,t=0;for(;e<h.length&&a>0&&t<5;){let r=h[e];e++,t++;let n=await (0,f.listMessages)(r.id,o,{limit:a});if(0===n.messages.length){eM.current=r;continue}let i=eM.current?.created_at??R.created_at;v.push({agentName:l,created_at:i,id:`nap-${r.id}`}),s=[...n.messages,...s],a-=n.messages.length,g=n.has_more,eM.current=r}e>0&&es(t=>t.slice(e))}let b=[...s,...t];if((0,$.flushSync)(()=>{b.length>0?(v.length>0&&el(e=>{let t=new Set(e.map(e=>e.id)),s=v.filter(e=>!t.has(e.id));return[...e,...s]}),G(g),P(e=>{let t=new Set(e.map(e=>e.id));return[...b.filter(e=>!t.has(e.id)),...e]})):G(!1)}),b.length>0&&R){let e=b.filter(e=>e.conversation_id===R.id);e.length>0&&(0,L.mergeCachedMessages)(R.id,e,k,o).catch(()=>{})}if(eN.current=!1,(0,$.flushSync)(()=>Q(!1)),p)if(e)p.scrollTop=p.scrollHeight;else{let e=p.scrollHeight;p.scrollTop=e-x}}catch{y.toast.error("Failed to load older messages")}finally{eN.current=!1,Q(!1),ex.current&&(ex.current.style.overflowAnchor="")}},[R,o,r,a,eq,eO,eH,eU,eW,eB]),eK=a?X:X||et.length>0||er;(0,s.useEffect)(()=>{R?.id!==eT.current&&(eT.current=R?.id,eI.current=0)},[R?.id]),(0,s.useEffect)(()=>{W||!R||n||a||D.length>=10||!eK||J||eI.current>=3||(eI.current+=1,eV(!0))},[W,D.length,eK,J,R,eV,n,a]);let eY=(0,s.useCallback)(()=>{let e=ex.current;e&&(eC.current=e.scrollHeight-e.scrollTop-e.clientHeight<100)},[]),eX=(0,s.useCallback)((e,t,s)=>{ev.current&&clearInterval(ev.current),ej.current=s??0,ey.current=0,Y(!1),eb.current=e,ev.current=setInterval(async()=>{if(eb.current===e)try{let s=await (0,f.getTask)(e,o),r=eb.current!==e;if(ey.current=0,Y(!1),"completed"===s.status||"failed"===s.status||"cancelled"===s.status||"superseded"===s.status){if(r)return void(0,f.listMessages)(t,o).then(({messages:e})=>{P(t=>g(t,e)),(0,L.mergeCachedMessages)(t,e,null,o).catch(()=>{})}).catch(()=>{});ev.current&&clearInterval(ev.current),ev.current=null,ek.current&&clearTimeout(ek.current),ek.current=setTimeout(()=>{(0,f.markInboxRead)(t,o).then(()=>eL.current()).catch(()=>{})},1e3);let a=!e_.current&&eC.current;try{let[e,r]=await Promise.all([(0,f.listMessages)(t,o),(0,f.listArtifacts)(t,o).catch(()=>null)]);P(t=>g(t,e.messages)),(0,L.mergeCachedMessages)(t,e.messages,null,o).catch(()=>{}),r&&(ee(r),ez(t,r)),B(s)}catch{B(s),y.toast.error("Failed to refresh messages")}a&&requestAnimationFrame(()=>{ex.current?.scrollTo({top:ex.current.scrollHeight,behavior:"smooth"})}),setTimeout(async()=>{if(!ev.current)try{let s=await (0,f.getActiveTask)(t,o);if(s&&s.id!==e){let{messages:e}=await (0,f.listMessages)(t,o);P(t=>g(t,e)),(0,L.mergeCachedMessages)(t,e,null,o).catch(()=>{}),B(s),U([]),eS.current?.(s.id,t)}}catch{}},1e3)}else r||B(s)}catch{if(eb.current!==e)return;ey.current+=1,ey.current>=3&&Y(!0),ey.current>=10&&(ev.current&&clearInterval(ev.current),ev.current=null,y.toast.error("Lost connection to agent"))}},3e3)},[o]);(0,s.useEffect)(()=>{eS.current=eX},[eX]),(0,s.useEffect)(()=>()=>{ev.current&&clearInterval(ev.current),ek.current&&clearTimeout(ek.current)},[]);let eG=(0,s.useRef)(null);(0,s.useEffect)(()=>{eG.current=O?.id??null},[O]),(0,s.useEffect)(()=>m(e=>{if("task.messages"===e.type&&e.taskId===eG.current){let t=e.messages.filter(e=>e.seq>ej.current);if(t.length>0){let e=t.filter(e=>"error"===e.type);e.length>0&&U(t=>{let s=new Set(t.map(e=>e.seq)),r=e.filter(e=>!s.has(e.seq));return r.length>0?[...t,...r]:t}),ej.current=Math.max(...t.map(e=>e.seq),ej.current)}}if("task.created"===e.type&&e.conversationId===R?.id){(0,f.listMessages)(e.conversationId,o).then(({messages:t})=>{P(e=>g(e,t)),(0,L.mergeCachedMessages)(e.conversationId,t,null,o).catch(()=>{})}).catch(()=>{});let t=e.task;eG.current=t.id,B(t),U([]),ej.current=0,eS.current?.(t.id,e.conversationId)}if("task.created"===e.type){let t=e.task,s=eW.current;(0,L.getLastOpenConversation)(r,s,o).then(e=>{let a=function(e){let{task:t,agentId:s,activeChannel:r,currentPointerConvId:a}=e;return t.agent_id!==s||(t.channel??"default")!==r||t.conversation_id===a?null:t.conversation_id}({task:t,agentId:r,activeChannel:s,currentPointerConvId:e?.conversation_id??null});if(a)return(0,L.getCacheMeta)(a,o).then(e=>(0,L.setLastOpenConversation)(r,s,{conversation_id:a,newestMessageId:e?.newestMessageId??null,serverMessageCount:e?.messageCount??0},o))}).catch(()=>{})}"conversation.message"===e.type&&(e.conversationId===eE.current&&(0,L.appendCachedMessage)(e.conversationId,e.message,o).catch(()=>{}),e.conversationId===R?.id&&P(t=>{let s=new Date(e.message.created_at).getTime(),r=t.findIndex(t=>t.id.startsWith("temp-")&&t.role===e.message.role&&t.content===e.message.content&&2e3>Math.abs(new Date(t.created_at).getTime()-s));if(-1!==r){let s=t[r].id;eo(e=>{if(!e.has(s))return e;let t=new Map(e);return t.delete(s),t});let a=[...t];return a[r]=e.message,a}return g(t,[e.message])})),"task.updated"===e.type&&e.taskId===eG.current&&B(t=>t?{...t,status:e.status}:t),"artifact.uploaded"===e.type&&e.conversationId===R?.id&&ee(t=>{if(t.some(t=>t.id===e.artifact.id))return t;let s=[...t,e.artifact];return ez(e.conversationId,s),s})}),[m,R?.id,o,r,ez]),(0,s.useEffect)(()=>k(()=>{R?.id&&(0,L.getCacheMeta)(R.id,o).then(e=>{(0,f.conversationInit)(R.id,o,{newestMessageId:e?.newestMessageId??void 0,messageCount:e?.serverMessageCount??void 0}).then(e=>{!e.cache_valid&&e.messages&&(P(t=>g(t,e.messages)),em.current(e.messages,e.has_more_messages,e.message_count).catch(()=>{}))}).catch(()=>{})})}),[k,R?.id,o]);let eJ=async()=>{let e=M.current.trim();if(!e&&0===T.current.length||F||!R)return;if(!e)return void y.toast.error("Please type a message");let t=I.current?`> ${I.current.split("\n").join("\n> ")}
2
-
3
- ${e}`:e;E.current&&(t=`/${E.current.name} ${t}`);let s=[...T.current];N(""),w([]),C(null),S(),q(!0);let r=`temp-${Date.now()}`,a={id:r,conversation_id:R.id,role:"user",content:t,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};s.length>0&&eo(e=>{let t=new Map(e);return t.set(r,s),t}),P(e=>[...e,a]),e$();try{let{message:e,task:n}=await (0,f.sendMessage)(R.id,t,o,s.length>0?s:void 0);if(eo(e=>{if(!e.has(r))return e;let t=new Map(e);return t.delete(r),t}),P(t=>{if(!t.some(e=>e.id===a.id))return t.some(t=>t.id===e.id)?t:h([...t,e]);let s=t.filter(t=>t.id!==a.id&&t.id!==e.id);return h([...s,e])}),(0,L.appendCachedMessage)(R.id,e,o).catch(()=>{}),e.attachment_ids&&e.attachment_ids.length>0){let e=R.id;(0,f.listArtifacts)(e,o).then(t=>{ee(t),ez(e,t)}).catch(()=>{})}B(n),U([]),eX(n.id,R.id)}catch{ed(e=>{let a=new Map(e);return a.set(r,{content:t,files:s}),a})}finally{q(!1),eR.current?.focus()}},eQ=(0,s.useCallback)(e=>{let t=ec.get(e);if(!t||!R||F)return;ed(t=>{let s=new Map(t);return s.delete(e),s}),P(t=>t.filter(t=>t.id!==e)),eo(t=>{if(!t.has(e))return t;let s=new Map(t);return s.delete(e),s}),q(!0);let s=`temp-${Date.now()}`,r={id:s,conversation_id:R.id,role:"user",content:t.content,task_id:null,attachment_ids:null,created_at:new Date().toISOString()};t.files.length>0&&eo(e=>{let r=new Map(e);return r.set(s,t.files),r}),P(e=>[...e,r]),(0,f.sendMessage)(R.id,t.content,o,t.files.length>0?t.files:void 0).then(({message:e,task:t})=>{eo(e=>{if(!e.has(s))return e;let t=new Map(e);return t.delete(s),t}),P(t=>h([...t.filter(t=>t.id!==s&&t.id!==e.id),e])),(0,L.appendCachedMessage)(R.id,e,o).catch(()=>{}),B(t),U([]),eX(t.id,R.id)}).catch(()=>{ed(e=>{let r=new Map(e);return r.set(s,t),r})}).finally(()=>{q(!1)})},[ec,R,F,o,eX]),eZ=(0,s.useCallback)(async()=>{if(!O||!R)return;let e=await (0,f.retryTask)(O.id,o);B(e),U([]),eX(e.id,R.id)},[O,R,o,eX]),[e0,e1]=(0,s.useState)(!1),e2=(0,s.useMemo)(()=>!!R&&D.some(e=>e.conversation_id===R.id),[R,D]),e5=async()=>{if(R&&e2&&!e0){e1(!0);try{ev.current&&(clearInterval(ev.current),ev.current=null);let e=await (0,f.createConversation)(r,o,d);el(t=>[...t,{agentName:eF,created_at:e.created_at,id:`nap-${R.id}`}]),es(e=>[{id:R.id,created_at:R.created_at},...e]),z(e),B(null),U([]),ee([]),w([]),eo(new Map),ed(new Map),ej.current=0,Y(!1),G(!1),eM.current=null,e$()}catch{y.toast.error("Failed to start new conversation")}finally{e1(!1)}}};return{conversation:R,messages:D,sending:F,activeTask:O,taskMessages:H,messagesLoading:W,connectionLost:K,hasMore:X,loadingMore:J,artifacts:Z,previousConversations:et,hasMoreConversations:er,napMarkers:en,napping:e0,pendingFilesByMessage:ei,failedSends:ec,agentArtifacts:ef,agentName:eF,timeline:eh,groupPositions:eg,activeTaskStreamMsgId:ep,canLoadMore:eK,currentConvHasMessages:e2,scrollRef:ex,composerRef:eR,loadOlderMessages:eV,handleScroll:eY,handleSend:eJ,handleRetrySend:eQ,handleRetryTask:eZ,handleNap:e5,scrollToBottom:e$}}({agentId:er,targetConvId:eh,scrollToTaskId:em,scrollToMessageId:ef,propTargetConvId:l,workspaceId:O,agents:H,activeChannel:ee,channelLoading:et,subscribeWs:K,subscribeReconnect:Y,refreshInboxCount:X},{setFlaggedIds:ti,setPendingFiles:eZ,setInput:ep,setQuotedText:tr,setActiveSkill:e=>th.current?.setActiveSkill(e),clearActiveSkill:()=>th.current?.clearActiveSkill(),inputRef:td,quotedTextRef:tu,pendingFilesRef:tm,activeSkillRef:tf,draftMetaRestoredRef:tc}),{versionMap:tB,duplicateFilenames:tH}=(0,s.useMemo)(()=>(0,ei.computeArtifactVersions)(tS),[tS]),tU=(0,s.useMemo)(()=>(0,eL.parseAvatarUrl)(H.find(e=>e.id===er)?.avatar_url??null),[H,er]),tW=(0,s.useMemo)(()=>tM.split(/\s+/)[0]||tM,[tM]),tV=(0,s.useCallback)(e=>{(0,ei.isPreviewable)(e)?(ey(e),eb(!0)):window.open((0,ei.getArtifactUrl)(e.id,O,!0),"_blank")},[O]),tK=(0,s.useCallback)(e=>{(0,ei.isPreviewable)(e)?(ey(e),eb(!0)):window.open((0,ei.getArtifactUrl)(e.id,O,!0),"_blank")},[O]),[tY,tX]=(0,s.useState)(""),tG=(0,s.useMemo)(()=>H.filter(e=>e.id!==er),[H,er]),[tJ,tQ]=(0,s.useState)([]),tZ=(0,s.useRef)(!1);(0,s.useEffect)(()=>{tZ.current||(tZ.current=!0,(0,f.getAgentSkills)(er,O).then(e=>tQ(e.skills)).catch(()=>{}))},[er,O]);let[t0]=(0,s.useState)(()=>{try{let e=JSON.parse(localStorage.getItem(`chat-draft-meta:${er}:${eh??"default"}`)??"null");return e?.skill??null}catch{return null}}),t1=function({input:e,caretIndex:t,skills:r,onInputChange:a,initialActiveSkill:n,getAnchorPos:l,onAfterSelect:i}){let[o,c]=(0,s.useState)(!1),[d,u]=(0,s.useState)(""),[m,f]=(0,s.useState)(0),[h,g]=(0,s.useState)({top:0,left:0}),p=(0,s.useRef)(null),x=(0,s.useMemo)(()=>{if(!o)return[];if(!d)return r;let e=d.toLowerCase(),t=[],s=[];for(let a of r){let r=a.name.toLowerCase();r.startsWith(e)?t.push(a):r.includes(e)&&s.push(a)}return[...t,...s]},[o,d,r]);(0,s.useEffect)(()=>{f(0)},[x.length,d]);let[v,k]=(0,s.useState)(n??null);(0,s.useEffect)(()=>{if(v||null===t)return void c(!1);let s=function(e,t){if(!e.startsWith("/")||0===t)return null;let s=t-1;for(;s>=0&&t-s<=30;){let r=e.charCodeAt(s);if(47===r&&0===s)return{start:0,query:e.slice(1,t)};if(10===r||13===r||32===r)break;s--}return null}(e,t);if(s){p.current=s.start,u(s.query),c(!0);let e=l(s.start);e&&g(e)}else c(!1),p.current=null},[e,t,l,v]);let b=(0,s.useCallback)(e=>{k(e),a(""),c(!1),i?.()},[a,i]),j=(0,s.useCallback)(()=>{k(null)},[]),y=(0,s.useCallback)(e=>!!o&&0!==x.length&&!e.isComposing&&("ArrowDown"===e.key?(e.preventDefault(),f(e=>(e+1)%x.length),!0):"ArrowUp"===e.key?(e.preventDefault(),f(e=>(e-1+x.length)%x.length),!0):"Enter"===e.key||"Tab"===e.key?(e.preventDefault(),b(x[m]),!0):"Escape"===e.key&&(e.preventDefault(),c(!1),!0)),[o,x,m,b]);return{isOpen:o,query:d,selectedIndex:m,anchorPos:h,skills:x,activeSkill:v,handleSlashKeyDown:y,selectSkill:b,clearActiveSkill:j,setActiveSkill:k}}({input:tY,caretIndex:e7,skills:tJ,onInputChange:()=>t$.current?.clear(),initialActiveSkill:t0,getAnchorPos:(0,s.useCallback)(e=>t$.current?.coordsAtTextIndex(e)??null,[]),onAfterSelect:(0,s.useCallback)(()=>{requestAnimationFrame(()=>t$.current?.focus())},[])});(0,s.useLayoutEffect)(()=>{th.current=t1,tf.current=t1.activeSkill}),(0,s.useEffect)(()=>{0===tJ.length||!t1.activeSkill||tJ.some(e=>e.name===t1.activeSkill.name)||t1.setActiveSkill(null)},[tJ]),(0,s.useEffect)(()=>{let e=`chat-draft:${er}:${eh??"default"}`;eg?localStorage.setItem(e,eg):localStorage.removeItem(e)},[eg,er,eh]),(0,s.useEffect)(()=>{if(!tc.current)return;let e=`chat-draft-meta:${er}:${eh??"default"}`,t={};t1.activeSkill&&(t.skill={name:t1.activeSkill.name,description:t1.activeSkill.description}),ts&&(t.quote=ts),t.skill||t.quote?localStorage.setItem(e,JSON.stringify(t)):localStorage.removeItem(e)},[t1.activeSkill,ts,er,eh]),(0,s.useEffect)(()=>{tx||t$.current?.focus()},[tx]);let{selectionPopup:t2,setSelectionPopup:t5}=function(){let[e,t]=(0,s.useState)(null),r=(0,s.useCallback)(()=>{let e=window.getSelection();if(!e||e.isCollapsed||!e.rangeCount)return void t(null);let s=e.toString().trim();if(!s)return void t(null);let r=e.getRangeAt(0),a=r.commonAncestorContainer instanceof HTMLElement?r.commonAncestorContainer:r.commonAncestorContainer.parentElement;if(!a?.closest("[data-quote-source]"))return void t(null);let n=r.getClientRects(),l=n[n.length-1]||r.getBoundingClientRect();t({text:s,x:l.right,y:l.top-4})},[]);return(0,s.useEffect)(()=>(document.addEventListener("selectionchange",r),()=>document.removeEventListener("selectionchange",r)),[r]),{selectionPopup:e,setSelectionPopup:t}}(),t3=(0,s.useCallback)(()=>{t2&&(tr(t2.text),t5(null),window.getSelection()?.removeAllRanges(),t$.current?.focus())},[t2]);(0,s.useEffect)(()=>{if(eA&&eD)return K(e=>{if("task.updated"===e.type&&eJ&&e.taskId===eJ&&(0,f.getTask)(eJ,O).then(e=>eY(e)).catch(()=>{}),"conversation.message"===e.type&&eG&&e.conversationId===eG&&(eU(t=>!t||t.messages.some(t=>t.id===e.message.id)?t:{...t,messages:[...t.messages,e.message]}),"event"===e.message.role&&e.message.content.startsWith("Issue status changed:"))){let t=e.message.content.match(/-> (\w+)/);t&&eU(e=>e?{...e,issue:{...e.issue,status:t[1]}}:e)}"issue.comment"===e.type&&e.issueId===eD&&eU(t=>!t||t.comments.some(t=>t.id===e.comment.id)?t:{...t,comments:[...t.comments,e.comment]})})},[eA,eD,eG,eJ,O,K]);let[t8,t4]=(0,s.useState)(!1),t6=!!tv&&!["completed","failed","cancelled","superseded"].includes(tv.status),t9=function(e){var t;let r=function(){let[e,t]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{if(!window.matchMedia)return;let e=window.matchMedia("(prefers-reduced-motion: reduce)");t(e.matches);let s=e=>t(e.matches);return e.addEventListener("change",s),()=>e.removeEventListener("change",s)},[]),e}(),[a,n]=(0,s.useState)(()=>(function(e,t=Math.random){return e<=0?0:Math.floor(t()*e)%e})(Q.length)),l=(t={...e,reducedMotion:r}).isEmpty&&!t.isFocused&&!t.isTaskActive&&!t.reducedMotion,i=(0,s.useRef)(a);return i.current=a,(0,s.useEffect)(()=>{if(!l)return;let e=setInterval(()=>{var e,t;n((e=i.current,(t=Q.length)<=0?0:(e+1)%t))},6e3);return()=>clearInterval(e)},[l]),{hint:Q[a]??Q[0],isRotating:l}}({isEmpty:""===eg.trim(),isFocused:ex,isTaskActive:t6});return tb?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"flex-1 overflow-y-auto px-3 md:px-5",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl py-6 space-y-6 motion-safe:animate-[fade-up_200ms_ease-out_both]",children:[(0,t.jsxs)("div",{className:"flex justify-start items-start gap-2",children:[(0,t.jsx)(N.Skeleton,{className:"size-[30px] shrink-0 rounded-md"}),(0,t.jsxs)("div",{className:"flex flex-col items-start gap-1 max-w-[86%]",children:[(0,t.jsx)(N.Skeleton,{className:"h-3 w-20 rounded mb-0.5"}),(0,t.jsx)(N.Skeleton,{className:"h-9 w-64 rounded-[1.05rem]"}),(0,t.jsx)(N.Skeleton,{className:"h-9 w-48 rounded-[1.05rem]"})]})]}),(0,t.jsxs)("div",{className:"flex flex-col items-end gap-1",children:[(0,t.jsx)(N.Skeleton,{className:"h-9 w-44 rounded-[1.05rem]"}),(0,t.jsx)(N.Skeleton,{className:"h-9 w-32 rounded-[1.05rem]"})]}),(0,t.jsxs)("div",{className:"flex justify-start items-start gap-2",children:[(0,t.jsx)(N.Skeleton,{className:"size-[30px] shrink-0 rounded-md"}),(0,t.jsxs)("div",{className:"flex flex-col items-start gap-1 max-w-[86%]",children:[(0,t.jsx)(N.Skeleton,{className:"h-3 w-20 rounded mb-0.5"}),(0,t.jsx)(N.Skeleton,{className:"h-9 w-56 rounded-[1.05rem]"})]})]})]})}),(0,t.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl",children:[(0,t.jsx)("div",{className:"h-5 px-1 mb-2 flex items-center",children:(0,t.jsx)(N.Skeleton,{className:"h-3.5 w-28 rounded"})}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(N.Skeleton,{className:"size-8 shrink-0 rounded-full"}),(0,t.jsx)(N.Skeleton,{className:"h-10 flex-1 rounded-3xl"}),(0,t.jsx)(N.Skeleton,{className:"size-8 shrink-0 rounded-full"})]})]})})]}):tb||tg||0!==tp.length?(0,t.jsxs)(t.Fragment,{children:[t2&&(0,t.jsxs)("button",{type:"button",className:"fixed z-50 flex items-center gap-1 px-2 py-1 rounded-md bg-popover border shadow-md text-xs text-popover-foreground hover:bg-accent transition-colors",style:{left:t2.x,top:t2.y,transform:"translate(-100%, -100%)"},onMouseDown:e=>e.preventDefault(),onClick:t3,children:[(0,t.jsx)(E,{className:"size-3"}),"Quote"]}),(0,t.jsxs)("div",{className:"relative flex-1 min-h-0",children:[(0,t.jsx)("div",{className:"h-full overflow-y-auto overflow-x-hidden px-3 md:px-5 thin-scrollbar",ref:tz,onScroll:tD,onClick:e=>{e.target.closest('[data-streamdown="code-block-actions"] button')&&y.toast.success("Copied to clipboard")},children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl pt-6 pb-15 min-w-0",children:[tg&&tA&&!ty&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)("button",{onClick:()=>tL(),className:"text-xs text-muted-foreground hover:text-foreground transition-colors",children:"Load earlier messages"})}),ty&&(0,t.jsx)("div",{className:"flex justify-center py-2",children:(0,t.jsx)(o.Loader2,{className:"size-4 animate-spin text-muted-foreground"})}),0===tp.length&&!tv&&(d=H.find(e=>e.id===er),u=d?.created_at&&tt-new Date(d.created_at).getTime()<3e5,S=(V[er]??0)>0,u&&S&&"default"===ee?(0,t.jsxs)("div",{className:"flex flex-col items-center justify-center py-20 gap-3 animate-[fade-up_400ms_ease-out_both]",children:[(0,t.jsxs)("div",{className:"relative animate-bounce",children:[(0,t.jsx)(T.Mail,{className:"size-8 text-primary"}),(0,t.jsxs)("span",{className:"absolute -top-1 -right-1 flex size-3",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex size-full rounded-full bg-primary/60"}),(0,t.jsx)("span",{className:"relative inline-flex size-3 rounded-full bg-primary"})]})]}),(0,t.jsx)("p",{className:"text-sm text-muted-foreground text-center max-w-xs",children:"Your agent is sending you a welcome email."}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground/60 text-center max-w-xs",children:"Wait for the email task in the top-left to complete, then check your inbox. Or send a message below to start chatting."})]}):(0,t.jsxs)("p",{className:"text-center text-muted-foreground py-20 text-base animate-[fade-up_400ms_ease-out_both]",children:["Say hi to ",tW,"."]})),tI.map((e,s)=>{let r=tT[s],a="first"===r||"solo"===r||null===r,n=0===s?"":a?"mt-6":"mt-1.5";if("nap"===e.kind)return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eO,{agentName:tM})},e.data.id);if("artifact"===e.kind){let s=r??"solo",a="first"===s||"solo"===s;return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eI,{groupPosition:s,agentName:tM,config:tU,forceSpacer:!a,children:(0,t.jsx)(eB,{artifact:e.data,version:tB.get(e.data.id)??1,hasDuplicates:tH.has(e.data.filename),onClick:tV})})},`artifact-${e.data.id}`)}let l=e.data;return(0,t.jsx)("div",{className:n,children:(0,t.jsx)(eR,{msg:l,agents:H,artifacts:tw,activeTask:tv,activeTaskStreamMsgId:tE,taskMessages:tk,connectionLost:tj,conversationType:tg?.type,pendingFilesByMessage:tC,onArtifactClick:tV,onEmailClick:e=>{e_(e),eN(!0)},onCalendarEventClick:e=>{eE(e),eM(!0)},onIssueClick:e=>eX(e),onRetry:tq,mentionComponents:eq,isFlagged:tl.has(l.id),onToggleFlag:"assistant"===l.role?to:void 0,groupPosition:r??"solo",provider:eu,agentName:tM,agentAvatarConfig:tU,isSendFailed:t_.has(l.id),onRetrySend:tF})},l.id)}),tv&&tv.conversation_id===tg?.id&&null==tE&&!["completed","failed","cancelled","superseded"].includes(tv.status)&&(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(m,{task:tv,messages:tk,connectionLost:tj,provider:eu})})]})}),(0,t.jsx)(eo.ScrollToBottomButton,{scrollRef:tz})]}),(0,t.jsx)("div",{className:"relative z-10 px-3 md:px-5 pt-3 pb-5 md:pb-6",children:(0,t.jsxs)("div",{className:"mx-auto max-w-3xl relative",children:[tg&&(0,t.jsx)(e$,{agentFirstName:tW,taskStatus:t6?tv?.status:null}),(0,t.jsxs)("div",{className:"flex items-end gap-2",children:[!eh&&(0,t.jsxs)(eF.Popover,{open:t8,onOpenChange:t4,children:[(0,t.jsx)(eF.PopoverTrigger,{render:(0,t.jsx)(n.Button,{variant:"ghost",size:"icon-sm",className:"shrink-0 self-end mb-2.5 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(A.MoreHorizontal,{className:"size-4"})}),(0,t.jsx)(eF.PopoverContent,{side:"top",align:"start",className:"w-auto p-1.5 flex flex-col gap-0.5",children:(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:e=>(0,t.jsx)("span",{...e,className:(0,w.cn)("inline-flex",e.className),children:(0,t.jsxs)(n.Button,{variant:"ghost",size:"sm",onClick:()=>{t4(!1),tO()},disabled:tN||!tg||!tR||t6,className:"w-full justify-start gap-2 rounded-md text-muted-foreground hover:text-foreground",children:[tN?(0,t.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(M,{className:"size-3.5"}),(0,t.jsx)("span",{className:"text-xs",children:"Nap"})]})})}),(0,t.jsx)(C.TooltipContent,{side:"right",children:t6?"Wait for the task to finish":tR?"Take a nap and reset the current session":`${tM} is well-rested and ready to go`})]})})]}),(0,t.jsxs)("div",{className:(0,w.cn)("relative flex-1 min-w-0 flex flex-col rounded-3xl border border-border/50 bg-background/90 transition-[border-radius] duration-200","focus-within:border-ring focus-within:ring-3 focus-within:ring-ring/50",(ta||ts||t1.activeSkill)&&"rounded-2xl",tx&&"opacity-50",e3&&"border-ring ring-3 ring-ring/50"),onDragEnter:e8,onDragLeave:e4,onDragOver:e6,onDrop:e9,children:[e3&&(0,t.jsx)("div",{className:(0,w.cn)("absolute inset-0 z-10 flex items-center justify-center bg-background/80 border-2 border-dashed border-ring pointer-events-none",ta||ts||t1.activeSkill?"rounded-2xl":"rounded-3xl"),children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground font-medium",children:"Drop files here"})}),t1.activeSkill&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-center gap-2",children:[(0,t.jsxs)("span",{className:"shrink-0 text-xs font-medium text-primary",children:["/",t1.activeSkill.name]}),t1.activeSkill.isGlobal&&(0,t.jsx)("span",{className:"text-[10px] font-medium text-muted-foreground bg-muted rounded px-1 py-0.5",children:"Global"}),(0,t.jsx)("span",{className:"text-xs text-muted-foreground truncate",children:t1.activeSkill.description})]}),(0,t.jsx)("button",{type:"button",onClick:t1.clearActiveSkill,className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(z.X,{className:"size-3.5"})})]}),ts&&(0,t.jsxs)("div",{className:"flex items-center gap-2 px-3.5 pt-2.5 pb-1 border-b border-border/50",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex items-start gap-2",children:[(0,t.jsx)(E,{className:"size-3.5 shrink-0 mt-0.5 text-muted-foreground"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground truncate",children:[ts.slice(0,120),ts.length>120?"...":""]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>tr(null),className:"shrink-0 p-0.5 rounded-sm hover:bg-muted-foreground/20 transition-colors text-muted-foreground",children:(0,t.jsx)(z.X,{className:"size-3.5"})})]}),(0,t.jsx)(F,{isOpen:t1.isOpen,skills:t1.skills,selectedIndex:t1.selectedIndex,onSelect:t1.selectSkill,anchorPos:t1.anchorPos}),eQ.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1.5 px-3.5 pt-3 pb-0.5",children:eQ.map((e,s)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1.5 rounded-md bg-muted px-2 py-1 text-xs text-muted-foreground",children:[(0,t.jsx)(I.FileText,{className:"size-3 shrink-0"}),(0,t.jsx)("span",{className:"truncate max-w-30",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground/60",children:(0,Z.formatSize)(e.size)}),(0,t.jsx)("button",{type:"button",onClick:()=>e5(s),className:"ml-0.5 rounded-sm p-0.5 hover:bg-muted-foreground/20 transition-colors",children:(0,t.jsx)(z.X,{className:"size-3"})})]},`${e.name}-${s}`))}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{ref:e0,type:"file",multiple:!0,className:"hidden",onChange:e2}),(0,t.jsx)("div",{className:"px-13 py-3",children:(0,t.jsx)(J,{ref:t$,value:eg,onChange:ep,onEditorState:(e,t)=>{tX(e),te(t)},onSend:tP,onFocus:()=>ev(!0),onBlur:()=>ev(!1),overlay:""===eg.trim()?t6?(0,t.jsx)(G,{hint:`Message ${tW}`,animate:!1}):(0,t.jsx)(G,{hint:t9.hint,animate:t9.isRotating}):void 0,disabled:tx,onMultiLineChange:tn,onFiles:e1,agents:tG,agentLinks:W,currentAgentId:er,slashIsOpen:t1.isOpen,onSlashKeyDown:t1.handleSlashKeyDown})}),(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(n.Button,{variant:"ghost",size:"icon-sm",onPointerDown:e=>e.preventDefault(),onClick:()=>e0.current?.click(),disabled:tx,className:"absolute left-2 bottom-2 size-8 rounded-full text-muted-foreground/60 hover:text-foreground transition-colors duration-200"}),children:(0,t.jsx)(R.Paperclip,{className:"size-3.5"})}),(0,t.jsx)(C.TooltipContent,{side:"top",children:"Attach files"})]}),(0,t.jsxs)(C.Tooltip,{children:[(0,t.jsx)(C.TooltipTrigger,{render:(0,t.jsx)(n.Button,{size:"icon-sm",onClick:tP,disabled:!eg.trim()||tx,className:(0,w.cn)("absolute right-2 bottom-2 size-8 rounded-full bg-primary text-primary-foreground transition-opacity duration-200",!eg.trim()&&"opacity-30")}),children:tx?(0,t.jsx)(o.Loader2,{className:"size-3.5 animate-spin"}):(0,t.jsx)(_.ArrowUp,{className:"size-3.5"})}),(0,t.jsx)(C.TooltipContent,{side:"top",children:"Send"})]})]})]}),!eh&&(0,t.jsx)("div",{className:"shrink-0 self-end mb-2.5 size-8","aria-hidden":"true"})]})]})}),(0,t.jsx)(Z.ArtifactSheet,{open:ek,onOpenChange:e=>{eb(e),e||setTimeout(()=>{ey(null)},300)},artifacts:ej?[ej]:tS,workspaceId:O,initialArtifact:ej,versionMap:tB,duplicateFilenames:tH}),(0,t.jsx)(ea,{open:ew,onOpenChange:e=>{eN(e),e||setTimeout(()=>e_(null),300)},emailId:eC,workspaceId:O}),(0,t.jsx)(en.CalendarEventSheet,{readonly:!0,open:eS,onOpenChange:e=>{eM(e),e||setTimeout(()=>eE(null),300)},calendarEventId:eT,workspaceId:O}),(0,t.jsx)(el.IssueSheet,{open:eA,onOpenChange:e=>{ez(e),e||setTimeout(()=>{eP(null),eU(null),eY(null)},300)},agents:H,issue:eH?.issue??null,detail:eH?{messages:eH.messages,comments:eH.comments,artifacts:eH.artifacts,traceId:eH.issue.trace_id}:null,detailLoading:eW,activeTask:eK,traceTasks:eV,slug:B,workspaceId:O,onUpdate:async(e,t)=>{try{let s=await (0,f.updateIssue)(O,e,t);eU(r=>r&&r.issue.id===e?{...r,issue:{...r.issue,...t,updated_at:s.updated_at}}:r)}catch(e){y.toast.error(e instanceof Error?e.message:"Failed to update issue")}},onStatusChange:async(e,t)=>{try{await (0,f.updateIssue)(O,e,{status:t}),eU(s=>s&&s.issue.id===e?{...s,issue:{...s.issue,status:t}}:s)}catch(e){y.toast.error(e instanceof Error?e.message:"Failed to update status")}},onCommented:()=>{eD&&eX(eD)},onArtifactClick:tK})]}):(0,t.jsx)("div",{className:"flex flex-1 items-center justify-center text-sm text-muted-foreground",children:"Failed to load conversation"})}],49879)}]);