@seqyuan/ennote 0.2.0 → 0.2.2

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 (48) hide show
  1. package/bin/ennote.js +67 -4
  2. package/out/404.html +1 -1
  3. package/out/__next.__PAGE__.txt +3 -3
  4. package/out/__next._full.txt +14 -14
  5. package/out/__next._head.txt +4 -4
  6. package/out/__next._index.txt +8 -8
  7. package/out/__next._tree.txt +3 -3
  8. package/out/_next/static/chunks/0g-kg938ndquq.js +1 -0
  9. package/out/_next/static/chunks/0l-yuxi7.69...css +4 -0
  10. package/out/_next/static/chunks/0o9w-6e4gjnq-.js +5 -0
  11. package/out/_next/static/chunks/{0.wpvl571pzdr.js → 0pj391wb1h7.m.js} +1 -1
  12. package/out/_next/static/chunks/0ri8s9~7lcxyn.css +1 -0
  13. package/out/_next/static/chunks/{0oyu_2qstzqx..js → 0s_nb9cy-6day.js} +1 -1
  14. package/out/_next/static/chunks/{04p06dbbab3-j.js → 0twsdyb7~zp7n.js} +1 -1
  15. package/out/_not-found/__next._full.txt +13 -13
  16. package/out/_not-found/__next._head.txt +4 -4
  17. package/out/_not-found/__next._index.txt +8 -8
  18. package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
  19. package/out/_not-found/__next._not-found.txt +3 -3
  20. package/out/_not-found/__next._tree.txt +3 -3
  21. package/out/_not-found.html +1 -1
  22. package/out/_not-found.txt +13 -13
  23. package/out/graphs/__next._full.txt +14 -14
  24. package/out/graphs/__next._head.txt +4 -4
  25. package/out/graphs/__next._index.txt +8 -8
  26. package/out/graphs/__next._tree.txt +3 -3
  27. package/out/graphs/__next.graphs.__PAGE__.txt +3 -3
  28. package/out/graphs/__next.graphs.txt +3 -3
  29. package/out/graphs.html +1 -1
  30. package/out/graphs.txt +14 -14
  31. package/out/index.html +2 -2
  32. package/out/index.txt +14 -14
  33. package/out/roles/__next._full.txt +14 -14
  34. package/out/roles/__next._head.txt +4 -4
  35. package/out/roles/__next._index.txt +8 -8
  36. package/out/roles/__next._tree.txt +3 -3
  37. package/out/roles/__next.roles.__PAGE__.txt +3 -3
  38. package/out/roles/__next.roles.txt +3 -3
  39. package/out/roles.html +1 -1
  40. package/out/roles.txt +14 -14
  41. package/package.json +1 -1
  42. package/out/_next/static/chunks/0ombdwxw-jhba.js +0 -5
  43. package/out/_next/static/chunks/0xrv715wp_u0r.js +0 -1
  44. package/out/_next/static/chunks/13l74abld3yhh.css +0 -4
  45. package/out/_next/static/chunks/17ew~_kbp84gv.css +0 -1
  46. /package/out/_next/static/{OkDTUeyrr8mnrVgOvGEDk → kb2CQJ1qpgU_hvyLa8Eme}/_buildManifest.js +0 -0
  47. /package/out/_next/static/{OkDTUeyrr8mnrVgOvGEDk → kb2CQJ1qpgU_hvyLa8Eme}/_clientMiddlewareManifest.js +0 -0
  48. /package/out/_next/static/{OkDTUeyrr8mnrVgOvGEDk → kb2CQJ1qpgU_hvyLa8Eme}/_ssgManifest.js +0 -0
package/bin/ennote.js CHANGED
@@ -160,12 +160,18 @@ function createLogger(logFile, quiet) {
160
160
  };
161
161
  }
162
162
 
163
+ function requireHTTPS(url) {
164
+ if (!String(url).startsWith("https://")) {
165
+ throw new Error(`refusing non-HTTPS download: ${url}`);
166
+ }
167
+ }
168
+
163
169
  function downloadFile(url, destPath) {
164
170
  return new Promise((resolve, reject) => {
171
+ try { requireHTTPS(url); } catch (error) { return reject(error); }
165
172
  const file = fs.createWriteStream(destPath, { mode: 0o500 });
166
- const transport = url.startsWith("https") ? https : http;
167
- const request = transport.get(url, (response) => {
168
- if (response.statusCode === 302 || response.statusCode === 301) {
173
+ const request = https.get(url, (response) => {
174
+ if (response.statusCode === 302 || response.statusCode === 301 || response.statusCode === 307 || response.statusCode === 308) {
169
175
  file.close();
170
176
  fs.unlinkSync(destPath);
171
177
  return downloadFile(response.headers.location, destPath).then(resolve, reject);
@@ -196,6 +202,50 @@ function downloadFile(url, destPath) {
196
202
  });
197
203
  }
198
204
 
205
+ function parseSHA256SUMS(text, filename) {
206
+ const needle = filename.replace(/\\/g, "/");
207
+ for (const line of String(text).split(/\r?\n/)) {
208
+ const match = line.match(/^([a-fA-F0-9]{64})\s+\*?(\S+)\s*$/);
209
+ if (!match) continue;
210
+ const listed = match[2].replace(/^\.\//, "").split("/").pop();
211
+ if (listed === needle) return match[1].toLowerCase();
212
+ }
213
+ throw new Error(`SHA256SUMS has no entry for ${filename}`);
214
+ }
215
+
216
+ function fileSHA256(filePath) {
217
+ return crypto.createHash("sha256").update(fs.readFileSync(filePath)).digest("hex");
218
+ }
219
+
220
+ function verifyFileSHA256(filePath, expected) {
221
+ const actual = fileSHA256(filePath);
222
+ if (actual !== expected.toLowerCase()) {
223
+ throw new Error(`checksum mismatch for ${path.basename(filePath)}`);
224
+ }
225
+ }
226
+
227
+ function downloadText(url) {
228
+ return new Promise((resolve, reject) => {
229
+ try { requireHTTPS(url); } catch (error) { return reject(error); }
230
+ const request = https.get(url, (response) => {
231
+ if (response.statusCode === 302 || response.statusCode === 301 || response.statusCode === 307 || response.statusCode === 308) {
232
+ return downloadText(response.headers.location).then(resolve, reject);
233
+ }
234
+ if (response.statusCode !== 200) {
235
+ return reject(new Error(`HTTP ${response.statusCode} for ${url}`));
236
+ }
237
+ const chunks = [];
238
+ response.on("data", (chunk) => chunks.push(chunk));
239
+ response.on("end", () => resolve(Buffer.concat(chunks).toString("utf8")));
240
+ });
241
+ request.once("error", reject);
242
+ request.setTimeout(60_000, () => {
243
+ request.destroy();
244
+ reject(new Error(`Download timed out: ${url}`));
245
+ });
246
+ });
247
+ }
248
+
199
249
  async function ensureBinaries(home, pkg, log, platform = os.platform(), arch = os.arch()) {
200
250
  const suffix = platformSuffix(platform, arch);
201
251
  const version = pkg.version;
@@ -208,9 +258,19 @@ async function ensureBinaries(home, pkg, log, platform = os.platform(), arch = o
208
258
  if (!fs.existsSync(workerPath)) needed.push({ name: "ennoworker", path: workerPath });
209
259
  if (needed.length === 0) return;
210
260
  log(`Downloading ${needed.length} binary(s) for ${suffix}...`);
261
+ const sumsUrl = `${GITHUB_RELEASES_BASE}/v${version}/SHA256SUMS`;
262
+ const sumsText = await downloadText(sumsUrl);
211
263
  for (const { name, path: dest } of needed) {
212
- const url = `${GITHUB_RELEASES_BASE}/v${version}/${name}-${suffix}`;
264
+ const filename = `${name}-${suffix}`;
265
+ const expected = parseSHA256SUMS(sumsText, filename);
266
+ const url = `${GITHUB_RELEASES_BASE}/v${version}/${filename}`;
213
267
  await downloadFile(url, dest);
268
+ try {
269
+ verifyFileSHA256(dest, expected);
270
+ } catch (error) {
271
+ try { fs.unlinkSync(dest); } catch {}
272
+ throw error;
273
+ }
214
274
  }
215
275
  log("Binaries ready.");
216
276
  }
@@ -410,6 +470,9 @@ module.exports = {
410
470
  validateRuntime,
411
471
  healthCheck,
412
472
  isPidAlive,
473
+ parseSHA256SUMS,
474
+ fileSHA256,
475
+ verifyFileSHA256,
413
476
  ensureBinaries,
414
477
  startService,
415
478
  stopService,
package/out/404.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/17ew~_kbp84gv.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/13l74abld3yhh.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0j-yjan8jn-8-.js"/><script src="/_next/static/chunks/0398hkm93nbvg.js" async=""></script><script src="/_next/static/chunks/0-j.wjqnc6zff.js" async=""></script><script src="/_next/static/chunks/turbopack-0~_.ya0bk7q2w.js" async=""></script><script src="/_next/static/chunks/0xrv715wp_u0r.js" async=""></script><script src="/_next/static/chunks/0e~k9df0bajhc.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Ennote</title><meta name="description" content="AI-native bioinformatics agent workspace"/><link rel="icon" href="/icon.png?icon.0l6z533ta5iiy.png" sizes="64x64" type="image/png"/><script id="theme-init">(function(){try{var t=localStorage.getItem("ennote-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);document.documentElement.classList.toggle("dark",d);document.documentElement.dataset.theme=d?"dark":"light"}catch(e){}})();</script><script id="locale-init">(function(){try{var l=localStorage.getItem("ennote-locale");document.documentElement.lang=(l==="zh-CN")?"zh-CN":"en"}catch(e){}})();</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0j-yjan8jn-8-.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[26356,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"WorkerGenerationGuard\"]\n3:I[27437,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"LocaleProvider\"]\n4:I[85026,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"WorkspaceProvider\"]\n5:I[39756,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/17ew~_kbp84gv.css\",\"style\"]\n:HL[\"/_next/static/chunks/13l74abld3yhh.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/17ew~_kbp84gv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/13l74abld3yhh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0xrv715wp_u0r.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0e~k9df0bajhc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"id\":\"theme-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"ennote-theme\\\");var d=t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme:dark)\\\").matches);document.documentElement.classList.toggle(\\\"dark\\\",d);document.documentElement.dataset.theme=d?\\\"dark\\\":\\\"light\\\"}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"id\":\"locale-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var l=localStorage.getItem(\\\"ennote-locale\\\");document.documentElement.lang=(l===\\\"zh-CN\\\")?\\\"zh-CN\\\":\\\"en\\\"}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/17ew~_kbp84gv.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/13l74abld3yhh.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"OkDTUeyrr8mnrVgOvGEDk\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/0xrv715wp_u0r.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Ennote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics agent workspace\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.0l6z533ta5iiy.png\",\"sizes\":\"64x64\",\"type\":\"image/png\"}],[\"$\",\"$L11\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0ri8s9~7lcxyn.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0l-yuxi7.69...css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0j-yjan8jn-8-.js"/><script src="/_next/static/chunks/0398hkm93nbvg.js" async=""></script><script src="/_next/static/chunks/0-j.wjqnc6zff.js" async=""></script><script src="/_next/static/chunks/turbopack-0~_.ya0bk7q2w.js" async=""></script><script src="/_next/static/chunks/0g-kg938ndquq.js" async=""></script><script src="/_next/static/chunks/0e~k9df0bajhc.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Ennote</title><meta name="description" content="AI-native bioinformatics agent workspace"/><link rel="icon" href="/icon.png?icon.0l6z533ta5iiy.png" sizes="64x64" type="image/png"/><script id="theme-init">(function(){try{var t=localStorage.getItem("ennote-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);document.documentElement.classList.toggle("dark",d);document.documentElement.dataset.theme=d?"dark":"light"}catch(e){}})();</script><script id="locale-init">(function(){try{var l=localStorage.getItem("ennote-locale");document.documentElement.lang=(l==="zh-CN")?"zh-CN":"en"}catch(e){}})();</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/0j-yjan8jn-8-.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[26356,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"WorkerGenerationGuard\"]\n3:I[27437,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"LocaleProvider\"]\n4:I[85026,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"WorkspaceProvider\"]\n5:I[39756,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\"]\n7:I[97367,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0ri8s9~7lcxyn.css\",\"style\"]\n:HL[\"/_next/static/chunks/0l-yuxi7.69...css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ri8s9~7lcxyn.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0l-yuxi7.69...css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0g-kg938ndquq.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0e~k9df0bajhc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"id\":\"theme-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"ennote-theme\\\");var d=t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme:dark)\\\").matches);document.documentElement.classList.toggle(\\\"dark\\\",d);document.documentElement.dataset.theme=d?\\\"dark\\\":\\\"light\\\"}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"id\":\"locale-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var l=localStorage.getItem(\\\"ennote-locale\\\");document.documentElement.lang=(l===\\\"zh-CN\\\")?\\\"zh-CN\\\":\\\"en\\\"}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0ri8s9~7lcxyn.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0l-yuxi7.69...css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"kb2CQJ1qpgU_hvyLa8Eme\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[27201,[\"/_next/static/chunks/0g-kg938ndquq.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Ennote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics agent workspace\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.0l6z533ta5iiy.png\",\"sizes\":\"64x64\",\"type\":\"image/png\"}],[\"$\",\"$L11\",\"3\",{}]]\n"])</script></body></html>
@@ -1,6 +1,6 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:"$Sreact.suspense"
3
- 3:I[59665,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/04p06dbbab3-j.js","/_next/static/chunks/0ombdwxw-jhba.js"],"AppShell"]
4
- 4:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"OutletBoundary"]
5
- 0:{"rsc":["$","$1","c",{"children":[["$","$2",null,{"children":["$","$L3",null,{}]}],[["$","script","script-0",{"src":"/_next/static/chunks/04p06dbbab3-j.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0ombdwxw-jhba.js","async":true}]],["$","$L4",null,{"children":["$","$2",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"OkDTUeyrr8mnrVgOvGEDk"}
3
+ 3:I[59665,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0twsdyb7~zp7n.js","/_next/static/chunks/0o9w-6e4gjnq-.js"],"AppShell"]
4
+ 4:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"OutletBoundary"]
5
+ 0:{"rsc":["$","$1","c",{"children":[["$","$2",null,{"children":["$","$L3",null,{}]}],[["$","script","script-0",{"src":"/_next/static/chunks/0twsdyb7~zp7n.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0o9w-6e4gjnq-.js","async":true}]],["$","$L4",null,{"children":["$","$2",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kb2CQJ1qpgU_hvyLa8Eme"}
6
6
  5:null
@@ -1,19 +1,19 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[26356,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkerGenerationGuard"]
3
- 3:I[27437,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"LocaleProvider"]
4
- 4:I[85026,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkspaceProvider"]
5
- 5:I[39756,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
6
- 6:I[37457,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
2
+ 2:I[26356,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkerGenerationGuard"]
3
+ 3:I[27437,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"LocaleProvider"]
4
+ 4:I[85026,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkspaceProvider"]
5
+ 5:I[39756,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
6
+ 6:I[37457,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
7
7
  7:"$Sreact.suspense"
8
- 8:I[59665,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/04p06dbbab3-j.js","/_next/static/chunks/0ombdwxw-jhba.js"],"AppShell"]
9
- 9:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"OutletBoundary"]
10
- b:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"ViewportBoundary"]
11
- d:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"MetadataBoundary"]
12
- f:I[68027,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default",1]
13
- :HL["/_next/static/chunks/17ew~_kbp84gv.css","style"]
14
- :HL["/_next/static/chunks/13l74abld3yhh.css","style"]
15
- 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17ew~_kbp84gv.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/13l74abld3yhh.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0xrv715wp_u0r.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0e~k9df0bajhc.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"id":"theme-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"ennote-theme\");var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme:dark)\").matches);document.documentElement.classList.toggle(\"dark\",d);document.documentElement.dataset.theme=d?\"dark\":\"light\"}catch(e){}})();"}}],["$","script",null,{"id":"locale-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var l=localStorage.getItem(\"ennote-locale\");document.documentElement.lang=(l===\"zh-CN\")?\"zh-CN\":\"en\"}catch(e){}})();"}}]]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$7",null,{"children":["$","$L8",null,{}]}],[["$","script","script-0",{"src":"/_next/static/chunks/04p06dbbab3-j.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0ombdwxw-jhba.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17ew~_kbp84gv.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/13l74abld3yhh.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"OkDTUeyrr8mnrVgOvGEDk"}
8
+ 8:I[59665,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0twsdyb7~zp7n.js","/_next/static/chunks/0o9w-6e4gjnq-.js"],"AppShell"]
9
+ 9:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"OutletBoundary"]
10
+ b:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"ViewportBoundary"]
11
+ d:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"MetadataBoundary"]
12
+ f:I[68027,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default",1]
13
+ :HL["/_next/static/chunks/0ri8s9~7lcxyn.css","style"]
14
+ :HL["/_next/static/chunks/0l-yuxi7.69...css","style"]
15
+ 0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ri8s9~7lcxyn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l-yuxi7.69...css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0g-kg938ndquq.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0e~k9df0bajhc.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"id":"theme-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"ennote-theme\");var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme:dark)\").matches);document.documentElement.classList.toggle(\"dark\",d);document.documentElement.dataset.theme=d?\"dark\":\"light\"}catch(e){}})();"}}],["$","script",null,{"id":"locale-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var l=localStorage.getItem(\"ennote-locale\");document.documentElement.lang=(l===\"zh-CN\")?\"zh-CN\":\"en\"}catch(e){}})();"}}]]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$7",null,{"children":["$","$L8",null,{}]}],[["$","script","script-0",{"src":"/_next/static/chunks/0twsdyb7~zp7n.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0o9w-6e4gjnq-.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ri8s9~7lcxyn.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l-yuxi7.69...css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"kb2CQJ1qpgU_hvyLa8Eme"}
16
16
  c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
17
- 10:I[27201,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"IconMark"]
17
+ 10:I[27201,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"IconMark"]
18
18
  a:null
19
19
  e:[["$","title","0",{"children":"Ennote"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics agent workspace"}],["$","link","2",{"rel":"icon","href":"/icon.png?icon.0l6z533ta5iiy.png","sizes":"64x64","type":"image/png"}],["$","$L10","3",{}]]
@@ -1,6 +1,6 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"ViewportBoundary"]
3
- 3:I[97367,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"MetadataBoundary"]
2
+ 2:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"ViewportBoundary"]
3
+ 3:I[97367,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 5:I[27201,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Ennote"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics agent workspace"}],["$","link","2",{"rel":"icon","href":"/icon.png?icon.0l6z533ta5iiy.png","sizes":"64x64","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"OkDTUeyrr8mnrVgOvGEDk"}
5
+ 5:I[27201,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"IconMark"]
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Ennote"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics agent workspace"}],["$","link","2",{"rel":"icon","href":"/icon.png?icon.0l6z533ta5iiy.png","sizes":"64x64","type":"image/png"}],["$","$L5","3",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kb2CQJ1qpgU_hvyLa8Eme"}
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[26356,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkerGenerationGuard"]
3
- 3:I[27437,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"LocaleProvider"]
4
- 4:I[85026,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkspaceProvider"]
5
- 5:I[39756,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
6
- 6:I[37457,["/_next/static/chunks/0xrv715wp_u0r.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
7
- :HL["/_next/static/chunks/17ew~_kbp84gv.css","style"]
8
- :HL["/_next/static/chunks/13l74abld3yhh.css","style"]
9
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/17ew~_kbp84gv.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/13l74abld3yhh.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0xrv715wp_u0r.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0e~k9df0bajhc.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"id":"theme-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"ennote-theme\");var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme:dark)\").matches);document.documentElement.classList.toggle(\"dark\",d);document.documentElement.dataset.theme=d?\"dark\":\"light\"}catch(e){}})();"}}],["$","script",null,{"id":"locale-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var l=localStorage.getItem(\"ennote-locale\");document.documentElement.lang=(l===\"zh-CN\")?\"zh-CN\":\"en\"}catch(e){}})();"}}]]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"OkDTUeyrr8mnrVgOvGEDk"}
2
+ 2:I[26356,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkerGenerationGuard"]
3
+ 3:I[27437,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"LocaleProvider"]
4
+ 4:I[85026,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"WorkspaceProvider"]
5
+ 5:I[39756,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
6
+ 6:I[37457,["/_next/static/chunks/0g-kg938ndquq.js","/_next/static/chunks/0e~k9df0bajhc.js"],"default"]
7
+ :HL["/_next/static/chunks/0ri8s9~7lcxyn.css","style"]
8
+ :HL["/_next/static/chunks/0l-yuxi7.69...css","style"]
9
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0ri8s9~7lcxyn.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0l-yuxi7.69...css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/0g-kg938ndquq.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/0e~k9df0bajhc.js","async":true}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"id":"theme-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"ennote-theme\");var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme:dark)\").matches);document.documentElement.classList.toggle(\"dark\",d);document.documentElement.dataset.theme=d?\"dark\":\"light\"}catch(e){}})();"}}],["$","script",null,{"id":"locale-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var l=localStorage.getItem(\"ennote-locale\");document.documentElement.lang=(l===\"zh-CN\")?\"zh-CN\":\"en\"}catch(e){}})();"}}]]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","template":["$","$L6",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"kb2CQJ1qpgU_hvyLa8Eme"}
@@ -1,3 +1,3 @@
1
- :HL["/_next/static/chunks/17ew~_kbp84gv.css","style"]
2
- :HL["/_next/static/chunks/13l74abld3yhh.css","style"]
3
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"OkDTUeyrr8mnrVgOvGEDk"}
1
+ :HL["/_next/static/chunks/0ri8s9~7lcxyn.css","style"]
2
+ :HL["/_next/static/chunks/0l-yuxi7.69...css","style"]
3
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"kb2CQJ1qpgU_hvyLa8Eme"}
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,27437,18929,426,e=>{"use strict";var t=e.i(18050),s=e.i(71645);let o="ennote-locale";function r(){try{let e=window.localStorage.getItem(o);if("en"===e||"zh-CN"===e)return e}catch{}return"en"}function i(e){try{window.localStorage.setItem(o,e)}catch{}}function n(e){"u">typeof document&&(document.documentElement.lang=e)}e.s(["LOCALES",0,["en","zh-CN"],"applyLocaleAttribute",0,n,"readLocale",0,r,"writeLocale",0,i],18929);let a={en:{"general.title":"General","general.desc":"Appearance and workspace-level preferences.","general.appearance":"Appearance","general.permission":"Default permission","general.permission.desc":"Permission preset applied to newly created sessions.","general.language":"Language","language.en":"English","language.zh":"中文","sidebar.aria":"Projects and sessions","sidebar.newChat":"New Chat","sidebar.newChatAria":"New chat","sidebar.selectProjectFirst":"Select a project first","sidebar.roles":"Roles","sidebar.graphs":"Graphs","sidebar.searchSessions":"Search sessions","sidebar.search":"Search","sidebar.clearSearch":"Clear search","sidebar.sessions":"Sessions","sidebar.workspaces":"Workspaces","sidebar.refresh":"Refresh sessions","sidebar.loadingSessions":"Loading sessions…","sidebar.chooseProject":"Choose a project to start.","sidebar.newProject":"New Project","sidebar.settings":"Settings","sidebar.collapse":"Collapse sidebar","sidebar.expand":"Expand sidebar","sidebar.openNav":"Open navigation","sidebar.collapseNav":"Collapse navigation","sidebar.closeNav":"Close navigation","sidebar.selectProject":"Select project","sidebar.selectProjectEllipsis":"Select project…","sidebar.unknown":"Unknown","sidebar.noProjects":"No projects yet","sidebar.addProject":"Add project…","sidebar.addWorkspace":"Add workspace","sidebar.pin":"Pin project","sidebar.unpin":"Unpin project","sidebar.loading":"Loading…","sidebar.noSessions":"No sessions yet.","sidebar.noSessionsMatch":"No sessions match","sidebar.showArchived":"Show archived sessions","sidebar.hideArchived":"Hide archived sessions","sidebar.noArchived":"No archived sessions.","sidebar.chat":"chat","sidebar.chats":"chats","sidebar.rename":"Rename","sidebar.deleteProject":"Delete project","sidebar.renameProject":"Rename project","sidebar.renameSession":"Rename session","sidebar.newSession":"New session","sidebar.deleteProjectTitle":"Delete {name}?","sidebar.deleteProjectBody":"The project is removed from the sidebar. Its workspace folder and session data stay on disk.","sidebar.deleteProjectConfirm":"Delete","sidebar.cancel":"Cancel","sidebar.save":"Save","sidebar.archive":"Archive session","sidebar.restore":"Restore session","time.now":"now","time.minutes":"min","time.hours":"h","time.days":"d","time.months":"mo","time.years":"y","composer.dropFiles":"Drop images or text files","composer.attachedFiles":"Attached files","composer.removeImage":"Remove image","composer.remove":"Remove","composer.configureRun":"Configure run","composer.runConfiguration":"Run configuration","composer.target":"Target","composer.permission":"Permission","composer.attach":"Attach","composer.attachFiles":"Attach files","composer.attachImage":"Attach image","composer.compactContext":"Compact context","composer.placeholderCompacting":"Context compaction in progress","composer.placeholderSteer":"Steer the agent… (Enter)","composer.placeholderNoSession":"Choose a workspace to start","composer.placeholderHero":"Describe what you want to build… / commands, @ files or sessions","composer.placeholderDefault":"Type a message…","composer.messageAria":"Message the agent","composer.steerAria":"Steer the agent","composer.queueFollowUp":"Queue follow-up","composer.followUp":"Follow-up","composer.send":"Send","composer.stopRun":"Stop run","composer.modelSelect.triggerFallback":"Select model","composer.modelSelect.selectAria":"Select model","composer.modelSelect.aria":"Select model, current {model}","composer.modelSelect.ariaEffort":"Select model, current {model}, reasoning effort {effort}","composer.modelSelect.menu":"Model and reasoning effort","composer.modelSelect.model":"Model","composer.modelSelect.effort":"Effort","composer.modelSelect.emptyModels":"No models available.","composer.modelSelect.emptyEfforts":"This model provides no reasoning effort levels.","composer.permissionMode":"Permission mode","composer.roleTarget":"Role target","composer.frozenForRun":"is frozen for this run","composer.policyUnavailable":"Policy unavailable","composer.expanding":"Expanding prompt…","composer.queued":"Queued","composer.thinking.default":"Default","composer.thinking.low":"Low reasoning","composer.thinking.medium":"Medium reasoning","composer.thinking.high":"High reasoning","context.aria":"{percent} of context used","context.used":"of context used","context.system":"System prompt","context.tools":"Tools","context.messages":"Messages","stats.counts":"{turns} turns · {steps} steps","stats.llm":"LLM {duration}","stats.toolCall":"Tool call {duration}","stats.ttftAverage":"TTFT avg {duration}","stats.tokensPerSecond":"{throughput} tok/s","stats.cacheHit":"Cache hit {percent}%","stats.tokens":"Input {input} tok · Output {output} tok",copy:"Copy",copied:"Copied","message.branch":"Branch into a new conversation","message.branchUnavailable":"Available only on the last message of a completed turn","message.ranFor":"Ran for {duration}","message.ttft":"TTFT {seconds}s","message.tokensPerSecond":"{tps} tok/s","duration.seconds":"{seconds}s","duration.minutes":"{minutes}m{seconds}s","directory.title":"Select Workspace Directory","directory.home":"Home","directory.path":"Workspace directory path","directory.editPath":"Edit path","directory.newFolder":"New folder","directory.folderName":"Folder name","directory.createIn":'New folder in "{name}"',"directory.untitledFolder":"Untitled folder","directory.create":"Create","directory.cancel":"Cancel","directory.open":"Open","directory.opening":"Opening…","directory.loading":"Loading…","directory.truncated":"Too many folders to list; only the beginning is shown.","directory.showHidden":"Show hidden files","empty.project.title":"Choose a project to start","empty.project.body":"Sessions, files, and runs are scoped per project. Choose or create a project from the top-left.","empty.project.choose":"Choose project…","empty.session.title":"Start a new conversation","empty.session.body":"No session selected in this project. Start a new conversation or pick one from the sidebar.","empty.session.create":"New session","empty.session.hint":"or choose an existing session on the left","empty.noModel":"No model configured — open Settings to add a provider and model.","hero.headline":"Into the Unknown","hero.preview":"Preview","settings.models.title":"Models","settings.models.intro":"Enter your API keys to use models from the following providers.","settings.models.edit":"Edit","settings.models.editProvider":"Edit {provider}","settings.models.remove":"Delete","settings.models.removeProvider":"Delete {provider}","settings.models.deleteTitle":"Delete {provider}?","settings.models.deleteDescription":"Deleting {provider} removes its configuration. Any credential it uses is managed elsewhere and will be kept.","settings.models.deleteDescriptionWithCredential":"Deleting {provider} removes its configuration and stored API key.","settings.models.deleteConfirm":"Delete {provider}","settings.models.deleting":"Deleting {provider}…","settings.models.add":"Add provider","settings.models.provider":"Provider","settings.models.close":"Close","settings.models.cancel":"Cancel","settings.models.apply":"Apply","settings.models.applying":"Applying…","settings.models.savedProvider":"Saved {provider}.","settings.models.credentialConfigured":"API key configured","settings.models.credentialMissing":"API key missing","settings.models.readOnly":"The settings document is read-only in this deployment.","settings.models.loadFailed":"Loading the provider directory failed","settings.models.conflict":"Someone else changed these settings while this card was open. Close it and reopen to edit the current values.","settings.models.retry":"Retry","settings.models.keyInput":"API key","settings.models.keyPlaceholder":"Enter your API key","settings.models.keyPlaceholderNative":"Enter an API key, or leave blank to use environment authentication","settings.models.keyStored":"Configured — enter a new value to replace","settings.models.keyEnvLocked":"Provided by the launch environment (read-only)","settings.models.customized":"Customized settings","settings.models.baseUrl":"Base URL","settings.models.baseUrlDefault":"Provider default","settings.models.models":"Models","settings.models.modelsInherited":"Using the adapter defaults","settings.models.modelsCustomized":"Customized model catalog","settings.models.resetModels":"Restore defaults","settings.models.model":"Model","settings.models.modelId":"Model ID","settings.models.modelName":"Display name","settings.models.modelNamePlaceholder":"Uses the model ID when empty","settings.models.contextWindow":"Context window","settings.models.contextWindowPlaceholder":"Uses the provider default","settings.models.maxTokens":"Max output tokens","settings.models.maxTokensPlaceholder":"Uses the provider default","settings.models.modelAdvanced":"Capacities","settings.models.addModel":"Add model","settings.models.removeModel":"Delete model","settings.models.modelsEmpty":"No models will be shown in the selector. Unlisted IDs can still be sent directly.","settings.models.keyBlank":"Enter the API key, or leave the field empty to keep the stored one.","settings.models.keyBlankNew":"Enter the API key, or leave the field empty if this provider authenticates another way.","settings.models.keyIllegalCharacters":"This API key is not in a valid format. Please check it.","settings.models.modelIdRequired":"Model ID is required.","settings.models.modelIdDuplicate":"Model ID must be unique.","settings.models.modelNameInvalid":"Display name cannot be empty.","settings.models.modelContextInvalid":"Context window must be a positive count, like 131072, 256K, or 1M.","settings.models.modelMaxTokensInvalid":"Max output tokens must be a positive count, like 8192, 64K, or 1M.","settings.models.advancedHint":"Other fields live in models.json; edit that file directly.","settings.models.modelCapacityInvalid":"A capacity must be a number, optionally suffixed K or M.","settings.models.modelDuplicate":"Each model ID may appear once.","settings.models.modelContextWindow":"Context window","settings.models.modelMaxTokens":"Max output tokens","settings.models.fetchModels":"Fetch available models","settings.models.fetching":"Asking the provider…","settings.models.fetchNeedsBaseUrl":"Enter the base URL first, then fetch.","settings.models.fetchEmpty":"The provider listed no models. Add them by hand.","settings.models.fetchTitle":"Choose models to add","settings.models.fetchDescription":"These are the models this provider has available. Choose the ones to add.","settings.models.fetchAdopt":"Add selected","settings.models.fetchSelectAll":"Select all","settings.models.fetchDeselectAll":"Deselect all","settings.models.customAdd":"Add a custom provider","settings.models.customTitle":"Custom provider","settings.models.customTag":"Custom","settings.models.customRoute":"Provider ID","settings.models.customRouteHint":"Lowercase identifier, starting with a letter, that uniquely names this provider in requests and as its credential name.","settings.models.customRouteInvalid":"Start with a lowercase letter; then lowercase letters, digits, and dashes.","settings.models.customRouteTaken":"A provider already uses this ID.","settings.models.customDisplayName":"Display name","settings.models.customApi":"API protocol","settings.models.customApiUnset":"Not selected","settings.models.customNeedsBaseUrl":"A custom provider needs a base URL.","settings.models.customNeedsModels":"A custom provider needs at least one model.","settings.models.create":"Create provider","settings.models.creating":"Creating…"},"zh-CN":{"general.title":"通用","general.desc":"外观与工作区偏好设置。","general.appearance":"外观","general.permission":"默认权限","general.permission.desc":"应用于新建会话的权限预设。","general.language":"语言","language.en":"English","language.zh":"中文","sidebar.aria":"项目与会话","sidebar.newChat":"新对话","sidebar.newChatAria":"新对话","sidebar.selectProjectFirst":"请先选择项目","sidebar.roles":"角色","sidebar.graphs":"图谱","sidebar.searchSessions":"搜索会话","sidebar.search":"搜索","sidebar.clearSearch":"清除搜索","sidebar.sessions":"会话","sidebar.workspaces":"工作区","sidebar.refresh":"刷新会话","sidebar.loadingSessions":"加载会话中…","sidebar.chooseProject":"选择一个项目开始。","sidebar.newProject":"新建项目","sidebar.settings":"设置","sidebar.collapse":"收起侧边栏","sidebar.expand":"展开侧边栏","sidebar.openNav":"打开导航","sidebar.collapseNav":"收起导航","sidebar.closeNav":"关闭导航","sidebar.selectProject":"选择项目","sidebar.selectProjectEllipsis":"选择项目…","sidebar.unknown":"未知","sidebar.noProjects":"暂无项目","sidebar.addProject":"添加项目…","sidebar.addWorkspace":"添加工作区","sidebar.pin":"固定项目","sidebar.unpin":"取消固定","sidebar.loading":"加载中…","sidebar.noSessions":"暂无会话。","sidebar.noSessionsMatch":"没有匹配的会话","sidebar.showArchived":"显示已归档会话","sidebar.hideArchived":"隐藏已归档会话","sidebar.noArchived":"无已归档会话。","sidebar.chat":"个会话","sidebar.chats":"个会话","sidebar.rename":"重命名","sidebar.deleteProject":"删除项目","sidebar.renameProject":"重命名项目","sidebar.renameSession":"重命名会话","sidebar.newSession":"新建会话","sidebar.deleteProjectTitle":"删除 {name}?","sidebar.deleteProjectBody":"项目将从侧边栏移除。其工作区文件夹和会话数据仍保留在磁盘上。","sidebar.deleteProjectConfirm":"删除","sidebar.cancel":"取消","sidebar.save":"保存","sidebar.archive":"归档会话","sidebar.restore":"恢复会话","time.now":"刚刚","time.minutes":"分钟","time.hours":"小时","time.days":"天","time.months":"个月","time.years":"年","composer.dropFiles":"拖放图片或文本文件","composer.attachedFiles":"已附加文件","composer.removeImage":"移除图片","composer.remove":"移除","composer.configureRun":"配置运行","composer.runConfiguration":"运行配置","composer.target":"目标","composer.permission":"权限","composer.attach":"附加","composer.attachFiles":"附加文件","composer.attachImage":"附加图片","composer.compactContext":"压缩上下文","composer.placeholderCompacting":"正在压缩上下文","composer.placeholderSteer":"引导 Agent…(回车)","composer.placeholderNoSession":"选择一个工作区开始","composer.placeholderHero":"描述你想要构建的内容… / 调用指令 @ 文件或对话","composer.placeholderDefault":"输入消息…","composer.messageAria":"给 Agent 发消息","composer.steerAria":"引导 Agent","composer.queueFollowUp":"排队追问","composer.followUp":"追问","composer.send":"发送","composer.stopRun":"停止运行","composer.modelSelect.triggerFallback":"选择模型","composer.modelSelect.selectAria":"选择模型","composer.modelSelect.aria":"选择模型,当前 {model}","composer.modelSelect.ariaEffort":"选择模型,当前 {model},推理等级 {effort}","composer.modelSelect.menu":"模型与推理等级","composer.modelSelect.model":"模型","composer.modelSelect.effort":"推理等级","composer.modelSelect.emptyModels":"没有可用的模型。","composer.modelSelect.emptyEfforts":"当前模型未提供推理等级。","composer.permissionMode":"权限模式","composer.roleTarget":"角色目标","composer.frozenForRun":"已为本轮运行冻结","composer.policyUnavailable":"策略不可用","composer.expanding":"正在展开提示词…","composer.queued":"排队","composer.thinking.default":"默认","composer.thinking.low":"低强度推理","composer.thinking.medium":"中等推理","composer.thinking.high":"高强度推理","context.aria":"上下文已用 {percent}","context.used":"上下文已用","context.system":"系统提示词","context.tools":"工具","context.messages":"对话消息","stats.counts":"{turns} 轮 · {steps} 步","stats.llm":"LLM {duration}","stats.toolCall":"工具调用 {duration}","stats.ttftAverage":"首 token 平均 {duration}","stats.tokensPerSecond":"{throughput} tok/s","stats.cacheHit":"缓存命中 {percent}%","stats.tokens":"输入 {input} tok · 输出 {output} tok",copy:"复制",copied:"已复制","message.branch":"在新对话中分支","message.branchUnavailable":"仅可从已完成轮次的最后一条消息分支","message.ranFor":"用时 {duration}","message.ttft":"首 token {seconds}秒","message.tokensPerSecond":"{tps} tok/s","duration.seconds":"{seconds}秒","duration.minutes":"{minutes}分{seconds}秒","directory.title":"选择工作区目录","directory.home":"主目录","directory.path":"工作区目录路径","directory.editPath":"编辑路径","directory.newFolder":"新建文件夹","directory.folderName":"文件夹名称","directory.createIn":'在"{name}"中新建文件夹',"directory.untitledFolder":"未命名文件夹","directory.create":"创建","directory.cancel":"取消","directory.open":"打开","directory.opening":"正在打开…","directory.loading":"加载中…","directory.truncated":"文件夹过多,仅显示开头部分。","directory.showHidden":"显示隐藏文件","empty.project.title":"选择一个项目开始","empty.project.body":"会话、文件和运行记录都按项目隔离。从左上角选择或新建项目。","empty.project.choose":"选择项目…","empty.session.title":"开始一段新对话","empty.session.body":"当前项目下没有选中的会话。新建一个会话开始对话。","empty.session.create":"新建会话","empty.session.hint":"或从左侧选择已有会话","empty.noModel":"尚未配置模型 — 打开设置添加 provider 和模型。","hero.headline":"探索未至之境","hero.preview":"预览版","settings.models.title":"模型","settings.models.intro":"填入各提供方的 API 密钥即可使用其模型。","settings.models.edit":"编辑","settings.models.editProvider":"编辑 {provider}","settings.models.remove":"删除","settings.models.removeProvider":"删除 {provider}","settings.models.deleteTitle":"删除 {provider}?","settings.models.deleteDescription":"删除 {provider} 会移除其配置;其使用的凭证(如有)由其他位置管理,将会保留。","settings.models.deleteDescriptionWithCredential":"删除 {provider} 会移除其配置和存储的 API 密钥。","settings.models.deleteConfirm":"删除 {provider}","settings.models.deleting":"正在删除 {provider}…","settings.models.add":"添加提供方","settings.models.provider":"提供方","settings.models.close":"关闭","settings.models.cancel":"取消","settings.models.apply":"保存","settings.models.applying":"保存中…","settings.models.savedProvider":"已保存 {provider}。","settings.models.credentialConfigured":"API 密钥已配置","settings.models.credentialMissing":"API 密钥缺失","settings.models.readOnly":"当前部署的设置文档为只读。","settings.models.loadFailed":"加载提供方目录失败","settings.models.conflict":"这张卡片打开期间,这些设置已被其他地方改动。请关闭后重新打开,在当前值上编辑。","settings.models.retry":"重试","settings.models.keyInput":"API 密钥","settings.models.keyPlaceholder":"输入 API 密钥","settings.models.keyPlaceholderNative":"输入 API 密钥,或留空使用环境认证","settings.models.keyStored":"已配置——输入新值可替换","settings.models.keyEnvLocked":"由启动环境提供(只读)","settings.models.customized":"自定义设置","settings.models.baseUrl":"API 地址","settings.models.baseUrlDefault":"提供方默认","settings.models.models":"模型目录","settings.models.modelsInherited":"正在使用适配器默认模型","settings.models.modelsCustomized":"已自定义模型目录","settings.models.resetModels":"恢复默认模型","settings.models.model":"模型","settings.models.modelId":"模型 ID","settings.models.modelName":"显示名称","settings.models.modelNamePlaceholder":"留空时使用模型 ID","settings.models.contextWindow":"上下文窗口","settings.models.contextWindowPlaceholder":"使用提供方默认值","settings.models.maxTokens":"最大输出 token 数","settings.models.maxTokensPlaceholder":"使用提供方默认值","settings.models.modelAdvanced":"容量","settings.models.addModel":"添加模型","settings.models.removeModel":"删除模型","settings.models.modelsEmpty":"模型选择器中将不显示任何模型;目录外 ID 仍可直接发送。","settings.models.keyBlank":"请输入 API 密钥;留空则保持已存储的密钥。","settings.models.keyBlankNew":"请输入 API 密钥;若该提供方以其他方式鉴权,可以留空。","settings.models.keyIllegalCharacters":"该 API 密钥格式错误,请检查。","settings.models.modelIdRequired":"模型 ID 不能为空。","settings.models.modelIdDuplicate":"模型 ID 不能重复。","settings.models.modelNameInvalid":"显示名称不能为空。","settings.models.modelContextInvalid":"上下文窗口必须是正数,例如 131072、256K 或 1M。","settings.models.modelMaxTokensInvalid":"最大输出 token 数必须是正数,例如 8192、64K 或 1M。","settings.models.advancedHint":"其余字段位于 models.json 中,请直接编辑该文件。","settings.models.modelCapacityInvalid":"容量需为数字,可加 K 或 M 后缀。","settings.models.modelDuplicate":"每个模型 ID 只能出现一次。","settings.models.modelContextWindow":"上下文窗口","settings.models.modelMaxTokens":"最大输出 token","settings.models.fetchModels":"获取可用模型","settings.models.fetching":"正在询问提供方…","settings.models.fetchNeedsBaseUrl":"请先填写 API 地址,再获取。","settings.models.fetchEmpty":"该提供方没有列出任何模型,请手动添加。","settings.models.fetchTitle":"选择要添加的模型","settings.models.fetchDescription":"以下是模型提供方的可用模型,勾选要添加的模型。","settings.models.fetchAdopt":"添加所选","settings.models.fetchSelectAll":"全选","settings.models.fetchDeselectAll":"取消全选","settings.models.customAdd":"添加自定义提供方","settings.models.customTitle":"自定义提供方","settings.models.customTag":"自定义","settings.models.customRoute":"Provider ID","settings.models.customRouteHint":"以小写字母开头的标识,在请求中唯一标识该提供方,并用于派生凭据名。","settings.models.customRouteInvalid":"需以小写字母开头,之后可用小写字母、数字和短横线。","settings.models.customRouteTaken":"已有提供方使用了这个 ID。","settings.models.customDisplayName":"显示名称","settings.models.customApi":"API 协议","settings.models.customApiUnset":"未选择","settings.models.customNeedsBaseUrl":"自定义提供方需要填写 API 地址。","settings.models.customNeedsModels":"自定义提供方至少需要一个模型。","settings.models.create":"创建提供方","settings.models.creating":"创建中…"}};function d(e,t){return a[e]?.[t]??a.en[t]??t}e.s(["translate",0,d],426);let l=(0,s.createContext)({locale:"en",setLocale:()=>{}});function c(){return(0,s.useContext)(l)}e.s(["LocaleProvider",0,function({children:e}){let[o,a]=(0,s.useState)(()=>r()),d=(0,s.useCallback)(e=>{a(e),i(e),n(e)},[]);(0,s.useEffect)(()=>{n(o)},[o]);let c=(0,s.useMemo)(()=>({locale:o,setLocale:d}),[o,d]);return(0,t.jsx)(l.Provider,{value:c,children:e})},"useLocale",0,c,"useT",0,function(){let{locale:e}=c();return t=>d(e,t)}],27437)},9323,e=>{"use strict";let t="ennote:worker-generation-changed",s=null,o=0,r=new Set;class i extends Error{constructor(){super("Worker restarted; discarding data from the previous connection"),this.name="WorkerGenerationChangedError"}}function n(e){return e.startsWith("/api/worker/")?e:`/api/worker${e}`}async function a(e,a){let d=o,l=await fetch(n(e),a);return function(e,n){let a=e.headers.get("X-Ennote-Worker-Instance");if(a){if(null===s)s=a;else if(s!==a)throw r.has(a)||(r.add(s),s=a,o+=1,window.dispatchEvent(new CustomEvent(t,{detail:{instanceId:a,generation:o}}))),new i}if(n!==o)throw new i}(l,d),l}async function d(e,t){let s=await a(e,t),o=await s.json().catch(()=>({}));if(!s.ok||o.error)throw Error(o.error?.message??`HTTP ${s.status}`);return o.data}async function l(e,t,s){let o,r,i=new Headers(s?.headers);i.has("Accept")||i.set("Accept","text/event-stream");let n=await a(e,{...s,headers:i});if(!n.ok)throw Error(await c(n));let d=n.body?.getReader();if(!d)throw Error("Worker event stream has no response body");let l=new TextDecoder,m="",p=[],g=e=>{let s=e.endsWith("\r")?e.slice(0,-1):e;if(s.startsWith("id:"))o=s.slice(3).trim();else if(s.startsWith("event:"))r=s.slice(6).trim();else if(s.startsWith("data:"))p.push(s.slice(5).trimStart());else if(""===s){if(p.length>0)try{t({id:o,event:r,data:JSON.parse(p.join("\n"))})}catch{}o=void 0,r=void 0,p=[]}};try{for(;;){let{done:e,value:t}=await d.read();if(e)break;let s=(m+=l.decode(t,{stream:!0})).split("\n");for(let e of(m=s.pop()??"",s))g(e)}(m+=l.decode())&&g(m),p.length>0&&g("")}finally{d.releaseLock()}}async function c(e){let t=await e.json().catch(()=>({}));return t.error?.message??`HTTP ${e.status}`}e.s(["WORKER_GENERATION_CHANGED_EVENT",0,t,"WorkerGenerationChangedError",0,i,"apiEventStream",0,l,"apiFetch",0,d,"apiResponse",0,a,"workerAPIPath",0,n])},85026,19172,51761,e=>{"use strict";var t=e.i(18050),s=e.i(71645),o=e.i(9323);function r(e){return null!=e&&!e.activeLeafMessageId}e.s(["isBlankSession",0,r],19172);let i="ennote-selected-project";function n(e){try{let t=localStorage.getItem(e);return t&&t.length>0?t:null}catch{return null}}function a(e,t){try{t?localStorage.setItem(e,t):localStorage.removeItem(e)}catch{}}function d(e){if(0===e.length)return;let t=e[0],s=Date.parse(t.updatedAt)||Date.parse(t.createdAt)||0;for(let o of e.slice(1)){let e=Date.parse(o.updatedAt)||Date.parse(o.createdAt)||0;e>s&&(t=o,s=e)}return t.id}async function l(e,t){let s=(t.some(t=>t.projectId===e)?t.filter(t=>t.projectId===e):await (0,o.apiFetch)(`/v1/projects/${encodeURIComponent(e)}/sessions?status=active`)).find(r);if(s)return s;let i=await (0,o.apiFetch)(`/v1/projects/${encodeURIComponent(e)}/sessions`,{method:"POST",body:JSON.stringify({title:"New Chat"})});if(!i?.id)throw Error("Failed to create session");return i}e.s(["SELECTED_PROJECT_KEY",0,i,"SELECTED_SESSION_KEY",0,"ennote-selected-session","readStoredId",0,n,"recentProjectId",0,d,"reuseOrCreateBlankSession",0,l,"writeStoredId",0,a],51761);let c="ennote-pinned-projects",m=(0,s.createContext)(null);e.s(["WorkspaceProvider",0,function({children:e}){let[r,l]=(0,s.useState)([]),[p,g]=(0,s.useState)(!1),[u,h]=(0,s.useState)(null),[f,y]=(0,s.useState)(!1),[v,b]=(0,s.useState)(void 0),[w,k]=(0,s.useState)(!1),[S,P]=(0,s.useState)(!1),[C,A]=(0,s.useState)(new Map),[I,E]=(0,s.useState)(()=>{try{let e=localStorage.getItem(c),t=e?JSON.parse(e):[];return Array.isArray(t)?t.filter(e=>"string"==typeof e):[]}catch{return[]}});(0,s.useEffect)(()=>{(0,o.apiFetch)("/v1/projects").then(e=>{l(e),h(t=>{let s,o=t&&e.some(e=>e.id===t)?t:(s=n(i))&&e.some(e=>e.id===s)?s:d(e)??null;return a(i,o),o})}).catch(()=>{}).finally(()=>g(!0))},[]);let j=(0,s.useCallback)(e=>{y(!1),h(e),a(i,e)},[]),N=(0,s.useCallback)(e=>{b(e),y(!0)},[]),D=(0,s.useCallback)(()=>{y(!1),b(void 0)},[]),T=(0,s.useCallback)(()=>{P(!1),k(!0)},[]),x=(0,s.useCallback)(async(e,t)=>{P(!0);try{let s=await (0,o.apiFetch)("/v1/projects",{method:"POST",body:JSON.stringify({name:e,hostPath:t})});k(!1),s.workspace&&A(e=>new Map(e).set(s.project.id,s.workspace)),l(await (0,o.apiFetch)("/v1/projects")),j(s.project.id)}finally{P(!1)}},[j]),M=(0,s.useCallback)(()=>{S||k(!1)},[S]),R=(0,s.useCallback)(e=>{E(t=>{let s=t.includes(e)?t.filter(t=>t!==e):[...t,e];try{localStorage.setItem(c,JSON.stringify(s))}catch{}return s})},[]),F=(0,s.useCallback)(async(e,t)=>{let s=await (0,o.apiFetch)(`/v1/projects/${encodeURIComponent(e)}`,{method:"PATCH",body:JSON.stringify({name:t})});l(t=>t.map(t=>t.id===e?s:t))},[]),U=(0,s.useCallback)(async e=>{await (0,o.apiFetch)(`/v1/projects/${encodeURIComponent(e)}`,{method:"DELETE"}),l(t=>t.filter(t=>t.id!==e)),A(t=>{let s=new Map(t);return s.delete(e),s}),E(t=>t.filter(t=>t!==e)),h(t=>t!==e?t:(a(i,null),null))},[]),L=(0,s.useCallback)(e=>C.get(e),[C]);return(0,t.jsx)(m.Provider,{value:{projects:r,projectsReady:p,selectedProject:u,switchProject:j,createProjectOpen:w,openCreateProject:T,confirmCreateProject:x,cancelCreateProject:M,createProjectBusy:S,settingsOpen:f,settingsTab:v,openSettings:N,closeSettings:D,pinnedProjectIds:I,togglePinProject:R,renameProject:F,deleteProject:U,workspaceFor:L},children:e})},"pinnedProjectsStorageKey",0,c,"useWorkspace",0,function(){let e=(0,s.useContext)(m);if(!e)throw Error("useWorkspace must be used inside <WorkspaceProvider>");return e}],85026)},26356,e=>{"use strict";var t=e.i(71645),s=e.i(9323);e.s(["WorkerGenerationGuard",0,function({children:e}){return(0,t.useEffect)(()=>{let e=()=>window.location.reload();return window.addEventListener(s.WORKER_GENERATION_CHANGED_EVENT,e),()=>window.removeEventListener(s.WORKER_GENERATION_CHANGED_EVENT,e)},[]),e}])}]);
@@ -0,0 +1,4 @@
1
+ .sidebar-container,.workspace-nav-container{--sb-fill:#f9fafb;--sb-text-primary:#0f1115;--sb-text-secondary:#61666b;--sb-text-tertiary:#81858c;--sb-border-l1:#0000000a;--sb-border-l2:#0000001a;--sb-hover:#2631480f;--sb-active:#ebeef2;--sb-active-accent:#e4edfd;--sb-button-fill:#fff;--sb-button-hover:#f1f3f5;--sb-brand:#4176e6;--sb-radius:12px;--sb-radius-row:8px;--sb-pad-x:12px;--sb-caption:#adb2b8;--sb-scrollbar-thumb:#e5e5e5;--sb-scrollbar-thumb-hover:#545557;--sb-scrollbar-width:8px;--sb-scrollbar-offset:2px;background:var(--sb-fill);border-right:1px solid var(--sb-border-l1)}html.dark .sidebar-container,html.dark .workspace-nav-container{--sb-fill:#1b1b1c;--sb-text-primary:#f9fafb;--sb-text-secondary:#cfd3d6;--sb-text-tertiary:#979da6;--sb-border-l1:#ffffff0f;--sb-border-l2:#ffffff1f;--sb-hover:#ffffff14;--sb-active:#2c2c2e;--sb-active-accent:#353638;--sb-button-fill:#2c2c2e;--sb-button-hover:#353638;--sb-brand:#679efe;--sb-caption:#adb2b8;--sb-scrollbar-thumb:#545557;--sb-scrollbar-thumb-hover:#979da6}.sidebar{box-sizing:border-box;width:100%;height:100%;padding:6px var(--sb-pad-x);color:var(--sb-text-primary);flex-direction:column;font-size:14px;display:flex;overflow:hidden}.sidebar.quiet-bars{--sb-scrollbar-thumb:transparent;--sb-scrollbar-thumb-hover:transparent}.sidebar-logo-row{box-sizing:border-box;flex:none;justify-content:flex-end;align-items:center;gap:8px;height:60px;margin-bottom:8px;padding:8px 0 8px 4px;display:flex;overflow:hidden}.sidebar-brand{min-width:0;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;flex:1;align-items:center;padding:0;display:inline-flex;overflow:hidden}.sidebar-brand:hover,.sidebar-brand:disabled{background:0 0}.sidebar-brand:disabled{cursor:default}.sidebar-brand-identity{align-items:center;gap:8px;min-width:0;height:24px;display:inline-flex}.sidebar-brand-name{white-space:nowrap;letter-spacing:.04em;min-width:0;font-size:18px;font-weight:600;line-height:24px;overflow:hidden}.brand-mark{width:24px;height:24px;color:inherit;background:0 0;border:none;border-radius:0;flex:none;justify-content:center;align-items:center;font:700 16px/24px inherit;display:inline-flex}.sidebar-collapse-toggle{width:28px;height:28px;color:var(--sb-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sidebar-collapse-toggle:hover{background:var(--sb-hover)}.sidebar-close-nav{width:28px;height:28px;color:var(--sb-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;margin-left:auto;display:none}.sidebar-close-nav:hover{background:var(--sb-hover);color:var(--sb-text-primary)}@media (max-width:640px){.sidebar-close-nav{display:grid}.sidebar-collapse-toggle{display:none}}.sidebar-new-session{box-sizing:border-box;border:1px solid var(--sb-border-l2);border-radius:var(--sb-radius);background:var(--sb-button-fill);height:38px;color:var(--sb-text-primary);cursor:pointer;flex:none;justify-content:center;align-items:center;gap:6px;margin:0 2px 8px;padding:8px 16px;font-size:14px;font-weight:500;line-height:22px;display:flex}.sidebar-new-session:hover:not(:disabled){background:var(--sb-button-hover)}.sidebar-new-session:disabled{opacity:.5;cursor:not-allowed}.sidebar-nav{flex-direction:column;flex:none;gap:2px;padding:0 0 8px;display:flex}.sidebar-nav-item{box-sizing:border-box;border-radius:var(--sb-radius-row);width:100%;height:32px;color:var(--sb-text-primary);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0 8px;font-family:inherit;font-size:14px;font-weight:500;line-height:20px;text-decoration:none;display:flex}.sidebar-nav-item:hover{background:var(--sb-hover);color:var(--sb-text-primary)}.sidebar-nav-item.active{background:var(--sb-hover);color:var(--sb-text-primary);font-weight:500}.sidebar-nav-item .nav-icon{color:var(--sb-text-secondary)}.sidebar-nav-item.active .nav-icon{color:var(--sb-brand)}.sidebar-workspace-head{box-sizing:border-box;height:36px;color:var(--sb-text-tertiary);border-radius:12px;flex:none;justify-content:flex-end;align-items:center;gap:4px;margin:2px -4px 4px 0;padding-left:4px;display:flex}.workspace-label{white-space:nowrap;opacity:1;visibility:visible;flex:none;min-width:0;max-width:45%;font-size:14px;line-height:20px;transition:max-width .18s,margin-right .18s,opacity .12s,transform .18s,visibility linear;overflow:hidden}.workspace-search-slot{flex:1;align-items:center;min-width:0;max-width:28px;margin-left:auto;transition:max-width .18s;display:flex}.workspace-search{box-sizing:border-box;width:100%;height:28px;color:var(--sb-text-secondary);background:0 0;border:none;border-radius:50%;flex:none;align-items:center;padding:0;transition:width .18s,padding .18s,border-color .18s,border-radius .18s;display:flex;overflow:hidden}.workspace-action-button,.workspace-search-clear{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.workspace-action-button:hover,.workspace-search-clear:hover{background:var(--sb-hover)}.workspace-search input{width:0;min-width:0;color:var(--sb-text-primary);opacity:0;pointer-events:none;background:0 0;border:none;outline:none;flex:1;font-size:13px;line-height:18px;transition:opacity .12s}.workspace-search input::placeholder{color:var(--sb-text-tertiary)}.workspace-search-clear{width:24px;height:24px;color:var(--sb-text-secondary)}.workspace-head-actions{opacity:1;visibility:visible;flex:none;align-items:center;max-width:28px;transition:max-width .18s,opacity .12s,transform .18s,visibility linear;display:flex;overflow:hidden}.sidebar-workspace-head.search-expanded .workspace-label{opacity:0;visibility:hidden;max-width:0;margin-right:-4px;transition-delay:0s,0s,0s,0s,.18s;transform:translate(-4px)}.sidebar-workspace-head.search-expanded .workspace-search-slot{max-width:100%}.sidebar-workspace-head.search-expanded .workspace-search{border:1px solid var(--sb-border-l2);width:calc(100% + 4px);height:30px;color:var(--sb-text-tertiary);border-radius:10px;margin-inline:-2px;padding:0 4px 0 0}.sidebar-workspace-head.search-expanded .workspace-search-button{width:28px;height:30px}.sidebar-workspace-head.search-expanded .workspace-search-button:hover{background:0 0}.sidebar-workspace-head.search-expanded .workspace-search input{opacity:1;pointer-events:auto;margin-left:-2px}.sidebar-workspace-head.search-expanded .workspace-head-actions{opacity:0;visibility:hidden;pointer-events:none;max-width:0;transition-delay:0s,0s,0s,.18s;transform:translate(4px)}.sidebar-project-selector{margin-top:0;margin-bottom:4px}.sidebar .sidebar-sessions{min-height:0;margin-left:-4px;margin-right:calc(-1 * var(--sb-pad-x));flex-direction:column;flex:auto;padding:0 0 0 4px;display:flex;overflow:hidden}.sidebar-tree-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.sidebar-session-list{min-height:0;margin-right:var(--sb-scrollbar-offset);padding-right:calc(var(--sb-pad-x) - var(--sb-scrollbar-width) - var(--sb-scrollbar-offset));scrollbar-gutter:stable;flex:1;padding-bottom:16px;overflow-y:auto}.sidebar-session-list::-webkit-scrollbar{width:var(--sb-scrollbar-width)}.sidebar-session-list::-webkit-scrollbar-track{background:0 0}.sidebar-session-list::-webkit-scrollbar-thumb{background:var(--sb-scrollbar-thumb);border-radius:4px}.sidebar-session-list::-webkit-scrollbar-thumb:hover{background:var(--sb-scrollbar-thumb-hover)}@supports not selector(::-webkit-scrollbar){.sidebar-session-list{scrollbar-width:thin;scrollbar-color:var(--sb-scrollbar-thumb) transparent}}.sidebar-list-fade{left:0;right:var(--sb-pad-x);background:linear-gradient(to bottom, transparent, var(--sb-fill));pointer-events:none;height:24px;position:absolute;bottom:0}.sidebar-empty-project{text-align:center;color:var(--sb-text-tertiary);flex:auto;justify-content:center;align-items:center;padding:18px;font-size:12px;display:flex}.sidebar .sidebar-settings{flex:none;margin-top:auto;padding:0}.sidebar-settings-trigger{box-sizing:border-box;width:calc(100% + 4px);height:42px;color:var(--sb-text-primary);cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;margin:4px -2px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.sidebar-settings-trigger:hover,.sidebar-settings-trigger.active{background:var(--sb-hover)}.sidebar .sidebar-item{border-radius:var(--sb-radius-row);color:var(--sb-text-secondary);padding:6px 10px;font-size:13px}.sidebar .sidebar-item:hover{background:var(--sb-hover);color:var(--sb-text-primary)}.sidebar .sidebar-item.active{background:var(--sb-active);color:var(--sb-text-primary);font-weight:600}.sidebar .session-action-trigger,.sidebar .sidebar-icon-btn{color:var(--sb-text-tertiary)}.sidebar .session-action-trigger:hover,.sidebar .sidebar-icon-btn:hover{background:var(--sb-hover);color:var(--sb-text-secondary)}.sidebar .sidebar-archived-toggle{width:100%;height:28px;color:var(--sb-text-tertiary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;margin:0;padding:0 12px 0 28px;font-size:12px;font-weight:400;line-height:20px}.sidebar .sidebar-archived-toggle:hover{color:var(--sb-text-secondary);background:0 0}.sidebar .sidebar-project-group{margin-bottom:0}.sidebar .sidebar-project-group+.sidebar-project-group{margin-top:4px}.sidebar .sidebar-project-group [role=button]{border-radius:var(--sb-radius-row)}@media (min-width:641px){.topbar-sidebar-toggle{display:none!important}}.workspace-nav{padding:6px var(--sb-pad-x);color:var(--sb-text-primary);background:0 0;font-size:14px}.workspace-nav .workspace-nav-brand{border-bottom:none;gap:8px;height:60px;min-height:0;margin-bottom:8px;padding:8px 0 8px 4px}.workspace-nav nav{flex-direction:column;gap:2px;padding:0 0 8px;display:flex}.workspace-nav nav a{border-radius:var(--sb-radius-row);height:auto;min-height:0;color:var(--sb-text-secondary);padding:7px 10px;font-size:13px;font-weight:500;text-decoration:none}.workspace-nav nav a:hover{background:var(--sb-hover);color:var(--sb-text-primary)}.workspace-nav nav a.active{background:var(--sb-active);color:var(--sb-text-primary);box-shadow:none;font-weight:600}.workspace-nav nav a.active svg{color:var(--sb-brand)}.workspace-nav .workspace-nav-foot{padding:13px 4px max(13px, env(safe-area-inset-bottom));border-top:1px solid var(--sb-border-l1);color:var(--sb-text-tertiary)}.sb-project-row,.sb-session-row{border-radius:var(--sb-radius-row);cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--sb-text-primary);align-items:center;gap:6px;padding:0 8px;display:flex}.sb-project-row:hover,.sb-session-row:hover,.sb-session-row.sb-selected{background:var(--sb-hover)}.sb-project-row{box-sizing:border-box;height:34px}.sb-row-slot{width:16px;height:20px;color:var(--sb-text-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.sb-project-row .sb-chevron{color:var(--sb-caption);display:none}.sb-project-row:hover .sb-chevron{display:inline-flex}.sb-project-row:hover .sb-folder{display:none}.sb-folder-active{color:var(--sb-brand)}.sb-project-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;line-height:20px;overflow:hidden}.sb-session-row{box-sizing:border-box;gap:0;height:32px;animation:.15s sb-row-in}@keyframes sb-row-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.sb-session-row{animation:none}}.sb-session-row .sb-session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0 6px 0 4px;font-size:14px;line-height:20px;overflow:hidden}.sb-session-time{color:var(--sb-text-tertiary);flex:none;font-size:12px;line-height:20px}.sb-running-dot{background:#22c55e;border-radius:50%;flex:none;width:7px;height:7px}.sb-row-actions{flex:none;align-items:center;gap:12px;display:none}.sb-project-row:hover .sb-row-actions,.sb-session-row:hover .sb-row-actions,.sb-project-row.sb-menu-open .sb-row-actions,.sb-session-row.sb-menu-open .sb-row-actions{display:inline-flex}.sb-session-row:hover .sb-session-time,.sb-session-row.sb-menu-open .sb-session-time{display:none}.sb-project-row.sb-menu-open,.sb-session-row.sb-menu-open{background:var(--sb-hover)}.sb-row-icon-btn{cursor:pointer;width:16px;height:16px;color:var(--sb-text-tertiary);background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.sb-row-icon-btn:hover{color:var(--sb-text-primary)}.sb-pin-star{cursor:pointer;color:#ca8a04;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;width:16px;height:16px;padding:0;display:inline-flex}.sb-pin-star.is-unpinned{color:var(--sb-text-tertiary)}.sb-row-menu{z-index:60;border:1px solid var(--sb-border-l1);background:var(--sb-button-fill);border-radius:8px;width:160px;padding:4px;position:absolute;top:calc(100% - 4px);right:8px;box-shadow:0 6px 20px #0000001f}.sb-row-menu button{width:100%;min-height:30px;color:var(--sb-text-primary);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:5px;align-items:center;gap:8px;padding:5px 8px;font-size:12px;display:flex}.sb-row-menu button:hover:not(:disabled){background:var(--sb-hover)}.sb-row-menu button.is-danger{color:#e5484d}.sb-dialog-overlay{z-index:400;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000005c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sb-dialog{border:1px solid var(--sb-border-l1);background:var(--sb-button-fill);border-radius:16px;width:min(360px,100vw - 48px);padding:20px;box-shadow:0 12px 40px #0000002e}.sb-dialog h3{color:var(--sb-text-primary);margin:0 0 4px;font-size:15px;font-weight:600}.sb-dialog p{color:var(--sb-text-secondary);margin:0 0 14px;font-size:12px;line-height:1.6}.sb-dialog-input{box-sizing:border-box;border:1px solid var(--sb-border-l2);width:100%;height:44px;color:var(--sb-text-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;line-height:22px}.sb-dialog-input:focus{border-color:var(--sb-brand)}.sb-dialog-error{color:#e5484d;margin-top:8px;font-size:12px;line-height:18px}.sb-dialog-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.sb-dialog-actions button{border:1px solid var(--sb-border-l2);height:34px;color:var(--sb-text-primary);cursor:pointer;background:0 0;border-radius:8px;padding:0 16px;font-size:13px;font-weight:500}.sb-dialog-actions button:hover{background:var(--sb-hover)}.sb-dialog-actions button.sb-primary{background:var(--sb-brand);border-color:var(--sb-brand);color:#fff}.sb-dialog-actions button.sb-danger{color:#fff;background:#e5484d;border-color:#e5484d}.sb-dialog-actions button:disabled{opacity:.5;cursor:default}.sb-session-body{flex:1;align-items:center;min-width:0;height:100%;display:flex}.sb-session-row>.sb-session-body{gap:0}.sb-session-row .sb-session-status{flex:none;width:16px;height:20px}.sb-project-children{margin:0 4px}.sb-project-children .session-list{padding:0 0 2px}
2
+ .composer-shell,.composer-seat{--cmp-text-primary:#1a1a1a;--cmp-text-secondary:#6b7280;--cmp-text-tertiary:#9ca3af;--cmp-hover:#2631480f;--cmp-border:#0000001a;--cmp-fill:#fff;--cmp-fill-hover:#f1f3f5;--cmp-selector-fill:#f5f6f7;--cmp-brand:#4176e6;--cmp-brand-hover:#5686fe;--cmp-shadow:0 4px 12px 0 #00000005, 0 2px 8px 0 #0000000a;--cmp-shadow-menu:0 0 1px 0 #0003, 0 0 4px 0 #00000005, 0 12px 32px 0 #00000014}html.dark .composer-shell,html.dark .composer-seat{--cmp-text-primary:#e8e8e8;--cmp-text-secondary:#9ca3af;--cmp-text-tertiary:#6b7280;--cmp-hover:#ffffff14;--cmp-border:#ffffff0f;--cmp-fill:#2c2c2e;--cmp-fill-hover:#353638;--cmp-selector-fill:#353638;--cmp-brand:#679efe;--cmp-brand-hover:#7aacff;--cmp-shadow:0 4px 12px 0 #0000003d, 0 2px 8px 0 #00000047;--cmp-shadow-menu:0 0 1px 0 #ffffff1f, 0 0 4px 0 #0000003d, 0 12px 32px 0 #00000061}.composer-shell{box-sizing:border-box;background:0 0;flex:none;width:100%;padding:0 16px 8px;position:relative}.chat-area[data-phase=hero] .composer-shell{padding:0 16px}.composer{flex-direction:column;align-items:stretch;gap:0;width:100%;max-width:min(952px,100%);margin:0 auto;padding:0;display:flex}.composer-editor{box-sizing:border-box;border:1px solid var(--cmp-border);background:var(--cmp-fill);width:100%;box-shadow:var(--cmp-shadow);border-radius:22px;flex-direction:column;align-items:stretch;gap:12px;padding-top:10px;font-size:14px;line-height:24px;display:flex;position:relative}.composer-editor:focus-within{border-color:var(--cmp-border);box-shadow:var(--cmp-shadow)}.composer-editor.composer-no-session{cursor:pointer;border-color:#0000}.composer-editor.composer-no-session:after{content:"";pointer-events:none;background:#00000029;border-radius:22px;transition:background-color .1s;position:absolute;inset:-1px;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' fill='none' rx='22' ry='22' stroke='black' stroke-width='2' stroke-dasharray='4 4'/%3E%3C/svg%3E")}html.dark .composer-editor.composer-no-session:after{background:#fff3}.composer-editor.composer-no-session:hover:after{background:var(--cmp-brand)}.composer-editor.composer-no-session :disabled,.composer-editor.composer-no-session .composer-toolbar-row{pointer-events:none}.composer textarea{box-sizing:border-box;resize:none;width:100%;min-width:0;min-height:0;max-height:336px;color:var(--cmp-text-primary);font-size:inherit;line-height:inherit;caret-color:var(--cmp-brand);background:0 0;border:0;outline:0;padding:4px 12px 0 16px;overflow-y:auto}.chat-area[data-phase=hero] .composer textarea{min-height:52px}.composer textarea::placeholder{color:var(--cmp-text-tertiary)}.composer-no-session textarea{cursor:pointer}.composer-toolbar-row{width:100%;min-width:0;color:var(--cmp-text-secondary);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:2px 8px 6px;display:flex;container-type:inline-size}.composer-trailing{flex:none;align-items:center;gap:12px;margin-left:auto;display:flex}.composer-tools{align-items:center;gap:16px;min-width:0;display:flex}.composer-modes{align-items:center;gap:12px;min-width:0;display:flex}.composer-tag{height:28px;color:var(--cmp-brand);white-space:nowrap;background:0 0;border:none;border-radius:24px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.composer-plus{background:var(--cmp-selector-fill);width:28px;height:28px;color:var(--cmp-text-primary);cursor:pointer;border:none;border-radius:999px;flex:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:relative}.composer-plus:hover:not(:disabled),.composer-plus[aria-expanded=true]{background:var(--cmp-fill-hover)}.composer-plus:disabled{opacity:.5;cursor:not-allowed}.composer-plus-dot{border:1.5px solid var(--cmp-fill);background:var(--cmp-brand);border-radius:50%;width:6px;height:6px;position:absolute;top:1px;right:1px}.composer-primary{background:var(--cmp-brand);color:#fff;cursor:pointer;border:none;border-radius:999px;flex:none;place-items:center;width:34px;height:34px;padding:0;transition:background-color .1s;display:grid;transform:translateY(-2px)}.composer-primary:hover:not(:disabled){background:var(--cmp-brand-hover)}.composer-primary:disabled{opacity:.4;cursor:default}.composer-followup{height:28px;color:var(--cmp-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:5px;padding:0 8px;font-size:13px;font-weight:500;display:inline-flex}.composer-followup:hover:not(:disabled){background:var(--cmp-hover);color:var(--cmp-text-primary)}.composer-followup:disabled{opacity:.5;cursor:not-allowed}.model-select{min-width:0;position:relative}.model-select-trigger{min-width:0;max-width:min(360px,45cqw);height:28px;color:var(--cmp-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:flex}.model-select-trigger:hover:not(:disabled){background:var(--cmp-hover)}.model-select-trigger:focus-visible{box-shadow:0 0 0 2px var(--cmp-brand)}.model-select-trigger:disabled{color:var(--cmp-text-tertiary);cursor:default}.model-select-trigger-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.model-select-trigger-effort{color:var(--cmp-text-tertiary);flex:none}.model-select-chevron{color:var(--cmp-text-tertiary);flex:none;transition:transform .12s}.model-select-chevron.open{transform:rotate(180deg)}.model-select-menu{z-index:20;border:1px solid var(--cmp-border);background:var(--cmp-fill);width:max-content;min-width:min(240px,100vw - 32px);max-width:min(420px,100vw - 32px);max-height:min(360px,100vh - 96px);box-shadow:var(--cmp-shadow-menu);color:var(--cmp-text-primary);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 8px);right:0;overflow:hidden}.model-select-empty{color:var(--cmp-text-tertiary);padding:10px;font-size:13px;line-height:20px}.model-select-cell{box-sizing:border-box;width:auto;min-width:100%;height:40px;color:var(--cmp-text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:0 10px;font-size:14px;line-height:22px;display:flex}.model-select-cell:hover{background:var(--cmp-hover)}.model-select-cell-label{white-space:nowrap;flex:none}.model-select-cell-value{text-overflow:ellipsis;white-space:nowrap;text-align:right;min-width:0;color:var(--cmp-text-tertiary);flex:auto;overflow:hidden}.model-select-cell-chevron{color:var(--cmp-text-tertiary);flex:none}.model-select-groups{min-height:0;overflow-y:auto}.model-select-group+.model-select-group{margin-top:4px}.model-select-group-title{z-index:1;background:var(--cmp-fill);color:var(--cmp-text-tertiary);padding:5px 8px 3px;font-size:12px;font-weight:500;line-height:18px;position:sticky;top:0}.model-select-option{box-sizing:border-box;width:auto;min-width:100%;min-height:38px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;outline:none;align-items:center;gap:8px;padding:6px 8px;display:flex}.model-select-option:hover:not(:disabled),.model-select-option:focus-visible{background:var(--cmp-hover)}.model-select-option.selected{background:0 0}.model-select-option:disabled{color:var(--cmp-text-tertiary);cursor:default}.model-select-option-copy{flex-direction:column;flex:1;min-width:0;display:flex}.model-select-option-name{color:inherit;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:20px;overflow:hidden}.model-select-check{color:var(--cmp-text-primary);flex:0 0 18px;place-items:center;display:grid}.context-meter{display:inline-flex;position:relative}.context-meter-trigger{width:28px;height:28px;color:var(--cmp-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;place-items:center;display:grid}.context-meter-trigger:hover{background:var(--cmp-hover)}.context-meter-track{fill:none;stroke:var(--cmp-border);stroke-width:2px}.context-meter-fill{fill:none;stroke:var(--cmp-text-tertiary);stroke-width:2px;stroke-linecap:round}.context-meter-panel{z-index:100;box-sizing:border-box;border:1px solid var(--cmp-border);background:var(--cmp-fill);width:264px;color:var(--cmp-text-secondary);cursor:default;border-radius:12px;padding:12px;font-size:12px;line-height:20px;position:absolute;bottom:calc(100% + 8px);right:0;box-shadow:0 12px 40px #0000002e}.context-meter-header{align-items:center;gap:6px;display:flex}.context-meter-figures{font-variant-numeric:tabular-nums;color:var(--cmp-text-primary);margin-left:auto;font-weight:500}.context-meter-percent{color:var(--cmp-text-primary);font-weight:500}.context-meter-headline{color:var(--cmp-text-tertiary)}.context-meter-headline:empty{display:none}.context-meter-bar{background:var(--cmp-hover);border-radius:999px;gap:1px;height:4px;margin:10px 0 12px;display:flex;overflow:hidden}.context-meter-segment{background:var(--meter-tint,var(--cmp-text-tertiary));border-radius:1px;flex:none;min-width:2px;height:100%}.context-meter-swatch{background:var(--meter-tint);vertical-align:baseline;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.cm-color-system{--meter-tint:#94a3b8}.cm-color-tools{--meter-tint:#a78bfa}.cm-color-messages{--meter-tint:var(--cmp-brand,#4176e6)}.context-meter-rows{margin:6px 0 0}.context-meter-row{justify-content:space-between;align-items:center;gap:12px;padding:2px 0;display:flex}.context-meter-row dt{color:var(--cmp-text-secondary)}.context-meter-row dd{font-variant-numeric:tabular-nums;color:var(--cmp-text-primary);margin:0}.stats-line{text-align:center;box-sizing:border-box;width:min(100%,952px);color:var(--cmp-text-tertiary);white-space:nowrap;text-overflow:ellipsis;margin:0 auto;padding:4px 0 0;font-size:12px;line-height:20px;display:block;overflow:hidden}.composer-status-line{flex-direction:column;align-items:center;gap:4px;width:min(100%,952px);margin:0 auto;padding:6px 0 0;display:flex}.permission-chip{min-width:0;position:relative}.permission-chip-trigger{min-width:0;max-width:220px;height:28px;color:var(--cmp-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:24px;outline:none;align-items:center;gap:4px;padding:0 4px 0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.permission-chip-trigger:hover:not(:disabled){background:var(--cmp-hover)}.permission-chip-trigger:focus-visible{box-shadow:0 0 0 2px var(--cmp-brand)}.permission-chip-trigger:disabled{color:var(--cmp-text-tertiary);cursor:default}.permission-chip-icon{flex:none;display:inline-flex}.permission-chip-icon svg{width:14px;height:14px}.permission-chip-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.permission-chip-chevron{color:var(--cmp-text-tertiary);flex:none;transition:transform .12s;display:inline-flex}.permission-chip-chevron.open{transform:rotate(180deg)}@container (max-width:460px){.permission-chip-trigger:has(.permission-chip-icon) .permission-chip-label{display:none}}.permission-chip-menu{z-index:20;box-sizing:border-box;border:1px solid var(--cmp-border);background:var(--cmp-fill);min-width:218px;max-width:360px;box-shadow:var(--cmp-shadow-menu);color:var(--cmp-text-primary);border-radius:12px;flex-direction:column;padding:4px;display:flex;position:absolute;bottom:calc(100% + 4px);left:0}.permission-chip-option{width:100%;min-height:40px;color:var(--cmp-text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;font-size:14px;line-height:22px;display:flex}.permission-chip-option:hover{background:var(--cmp-hover)}.permission-chip-option-icon{width:16px;height:16px;color:var(--cmp-text-tertiary);flex:none;display:inline-flex}.permission-chip-option-label{flex:1;min-width:0}.permission-chip-check{width:16px;color:var(--cmp-text-primary);flex:none;place-items:center;display:grid}.composer-config-panel{z-index:60;box-sizing:border-box;border:1px solid var(--cmp-border);background:var(--cmp-fill);width:min(280px,100vw - 24px);box-shadow:var(--cmp-shadow-menu);border-radius:12px;flex-direction:column;gap:0;padding:4px;animation:none;display:flex;position:absolute;bottom:calc(100% + 8px);left:0}.composer-config-row{border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:8px 10px;display:flex}.composer-config-label{color:var(--cmp-text-tertiary);letter-spacing:0;text-transform:none;flex:none;font-size:12px;font-weight:500}.composer-config-tools{align-items:center;gap:6px;display:flex}.composer-config-tools .icon-command{width:28px;height:28px}.composer-config-hint{color:var(--warning);font-size:12px}.composer-config-hint.is-danger{color:var(--danger)}.composer-seat{--dsh-composer-text-max-height:336px;flex-direction:column;flex:none;display:flex}.chat-area[data-phase=active] .composer-seat{background:linear-gradient(180deg, color-mix(in srgb, var(--bg) 0%, transparent) 0px, var(--bg) 36px)}.composer-stack{flex-direction:column;gap:6px;display:flex}.composer-stack.composer-hero{z-index:1;align-self:center;gap:8px;width:min(984px,100%);padding-bottom:32px;position:relative}.chat-area[data-phase=hero] .composer-seat{flex:1;justify-content:center;min-height:0}.composer-hero-glow{z-index:-1;aspect-ratio:1051/468;pointer-events:none;width:135.438%;position:absolute;bottom:92px;left:50%;transform:translate(-50%,50%)}.empty-hero{box-sizing:border-box;justify-content:center;align-items:center;width:100%;margin:0;padding:0 16px;display:flex}.empty-hero-headline{color:var(--cmp-text-primary);grid-template-columns:34px auto auto;justify-content:center;align-items:center;column-gap:10px;font-size:26px;font-weight:500;line-height:32px;display:grid}.empty-hero-mark{width:34px;height:34px;color:var(--cmp-text-primary);transform-origin:50% 60%;grid-area:1/1;justify-content:center;align-items:center;font-size:20px;font-weight:600;display:inline-flex}@keyframes hero-fish-swim{0%,to{transform:translate(0)rotate(0)}35%{transform:translate(-1px,-1px)rotate(-5deg)}70%{transform:translate(1px)rotate(3deg)}}@media (hover:hover) and (prefers-reduced-motion:no-preference){.empty-hero-mark:hover{animation:.7s ease-in-out hero-fish-swim}}.empty-hero-title{grid-area:1/2;margin:0;font-size:26px;font-weight:500;line-height:32px}.empty-hero-preview{border:1px solid var(--cmp-hover);background:color-mix(in srgb, var(--cmp-brand) 12%, transparent);color:var(--cmp-brand);font-family:var(--font-mono);white-space:nowrap;border-radius:24px;grid-area:1/3;align-self:start;margin-top:2px;margin-left:-3px;padding:1px 7px 0;font-size:12px;font-weight:500;line-height:18px}.empty-hero-settings{color:var(--cmp-text-tertiary);cursor:pointer;background:0 0;border:none;grid-column:1/-1;justify-self:center;margin-top:8px;padding:0;font-size:12px;text-decoration:underline}.hero-workspace-row{box-sizing:border-box;z-index:10;flex-shrink:0;align-items:center;width:100%;margin:4px 0 0;padding:0 0 0 20px;display:flex}.hero-project-chip-wrap{z-index:10;position:relative}.hero-project-chip{max-width:min(100%,360px);min-height:28px;color:var(--cmp-text-primary);cursor:pointer;background:0 0;border:none;border-radius:16px;align-items:center;gap:4px;padding:0 8px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.hero-project-chip:hover,.hero-project-chip[aria-expanded=true]{background:var(--cmp-hover)}.hero-project-chip svg{flex:none}.hero-project-chip .hero-chip-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hero-project-chip .hero-chip-chevron{color:var(--cmp-text-tertiary);flex:none}.composer-attachments{box-sizing:border-box;width:min(100%,952px);margin:0 auto;padding:6px 0 2px}.composer-followup-queue{width:100%;color:var(--cmp-text-secondary);align-items:center;gap:6px;padding:4px 0 0;font-size:12px;display:flex}.composer-followup-queue span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.composer-drop-zone{border-radius:22px}.stats-line-sep{color:var(--cmp-text-tertiary);margin:0 10px}
3
+ .settings-dialog-backdrop{--stg-text-primary:#1a1a1a;--stg-text-secondary:#6b7280;--stg-text-tertiary:#9ca3af;--stg-hover:#2631480f;--stg-nav-hover:#f1f3f5;--stg-nav-active:#ebeef2;--stg-border-l2:#0000001a;--stg-border-l3:#0000001f;--stg-fill:#fff;--stg-input-fill:#fff;--stg-module:#f5f5f5;--stg-brand:#4176e6;--stg-shadow:0 16px 48px #0003;--stg-danger:#b33b32}html.dark .settings-dialog-backdrop{--stg-text-primary:#e8e8e8;--stg-text-secondary:#9ca3af;--stg-text-tertiary:#6b7280;--stg-hover:#ffffff14;--stg-nav-hover:#353638;--stg-nav-active:#2c2c2e;--stg-border-l2:#ffffff1f;--stg-border-l3:#ffffff29;--stg-fill:#1b1b1c;--stg-input-fill:#2c2c2e;--stg-module:#353638;--stg-brand:#679efe;--stg-shadow:0 24px 60px #00000080;--stg-danger:#ed8178}.settings-dialog-shell{background:var(--stg-fill);width:800px;max-width:calc(100vw - 48px);height:min(800px,100vh - 48px);box-shadow:var(--stg-shadow);border:none;border-radius:24px;overflow:hidden}.settings-dialog-body{height:100%;display:flex;overflow:hidden}.settings-dialog-tabs{box-sizing:border-box;background:0 0;border-right:none;flex-direction:column;flex:none;gap:18px;width:188px;padding:22px 12px 0;display:flex}.settings-dialog-navtitle{color:var(--stg-text-primary);padding:0 12px;font-size:16px;font-weight:500;line-height:24px}.settings-dialog-tab{height:40px;color:var(--stg-text-primary);cursor:pointer;border-radius:12px;gap:8px;padding:9px 16px 9px 12px;font-size:14px;font-weight:400;line-height:22px}.settings-dialog-tab:hover{background:var(--stg-nav-hover)}.settings-dialog-tab.active{background:var(--stg-nav-active)}.settings-dialog-tab .settings-tab-icon{color:var(--stg-text-secondary)}.settings-dialog-tab.active .settings-tab-icon{color:var(--stg-brand)}.settings-dialog-tab .settings-tab-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.settings-dialog-content{flex-direction:column;flex:1;min-width:0;display:flex}.settings-dialog-header{box-sizing:border-box;flex:none;justify-content:space-between;align-items:flex-start;gap:8px;height:54px;padding:20px 14px 8px 10px;display:flex}.settings-dialog-actions{justify-content:flex-end;align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex}.settings-dialog-header .settings-dialog-current{display:none}.settings-dialog-close{cursor:pointer;width:28px;height:28px;color:var(--stg-text-primary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.settings-dialog-close:hover{background:var(--stg-nav-hover)}.settings-dialog-panel{background:0 0;flex:1;min-width:0;min-height:0;overflow-y:auto}.settings-dialog-shell .settings-tab-section{max-width:720px;padding:20px 24px 24px}.settings-dialog-shell .settings-tab-section>header h2{font-size:16px;font-weight:500;line-height:24px}.settings-dialog-shell .settings-tab-section>header p{color:var(--stg-text-tertiary);font-size:14px;line-height:22px}.settings-dialog-shell .settings-form{align-items:stretch;gap:12px;max-width:720px}.settings-dialog-shell .settings-form label{color:var(--stg-text-secondary);gap:6px;font-size:12px;font-weight:500;line-height:18px}.settings-dialog-shell .settings-form input,.settings-dialog-shell .settings-form select,.settings-dialog-shell .settings-form textarea{border:1px solid var(--stg-border-l2);background:var(--stg-input-fill);height:32px;color:var(--stg-text-primary);font:14px/22px var(--font-sans);border-radius:8px;padding:0 10px}.settings-dialog-shell .settings-form textarea{height:68px;padding:8px 10px}.settings-dialog-shell .settings-form input:focus,.settings-dialog-shell .settings-form select:focus,.settings-dialog-shell .settings-form textarea:focus{border-color:var(--stg-brand);outline:none}.settings-dialog-shell .settings-form button{background:var(--stg-brand);color:#fff;cursor:pointer;border:none;border-radius:18px;min-height:36px;padding:0 14px;font-weight:500}.settings-dialog-shell .secondary-btn{border:1px solid var(--stg-border-l2);min-height:36px;color:var(--stg-text-primary);background:0 0;border-radius:18px;padding:0 14px;font-weight:400}.settings-dialog-shell .secondary-btn:hover:not(:disabled){background:var(--stg-hover)}.settings-dialog-shell .settings-list{max-width:720px}.settings-dialog-shell .compaction-model-policies{border-top:1px solid var(--stg-border-l2);flex-direction:column;gap:8px;padding:10px 0 0;display:flex}.settings-dialog-shell .compaction-model-policies header h4{color:var(--stg-text-primary);margin:0;font-size:12px;font-weight:500;line-height:18px}.settings-dialog-shell .compaction-model-policies header p{color:var(--stg-text-tertiary);margin:0;font-size:11px;line-height:16px}.settings-dialog-shell .model-policy-row{grid-template-columns:minmax(140px,1.5fr) repeat(3,minmax(90px,1fr)) auto;align-items:center;gap:6px;display:grid}.settings-dialog-shell .model-policy-row .secondary-btn{border-radius:15px;height:30px;min-height:30px;padding:0 10px}.settings-dialog-shell .appearance-group,.settings-dialog-shell .permission-group,.settings-dialog-shell .language-group{flex-direction:column;gap:8px;padding:14px 0;display:flex}.settings-dialog-shell .settings-note{color:var(--stg-text-tertiary);margin:0;font-size:12px;line-height:18px}.settings-dialog-shell .appearance-title{color:var(--stg-text-primary);font-size:14px;font-weight:500;line-height:22px}.settings-dialog-shell .appearance-cubes{gap:8px;display:flex}.settings-dialog-shell .appearance-cube{border:1px solid var(--stg-border-l2);height:32px;color:var(--stg-text-secondary);cursor:pointer;background:0 0;border-radius:9px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.settings-dialog-shell .appearance-cube:hover{background:var(--stg-hover)}.settings-dialog-shell .appearance-cube.selected{background:var(--stg-nav-active);border-color:var(--stg-border-l3);color:var(--stg-text-primary)}.settings-dialog-shell .appearance-cube.selected svg{color:var(--stg-brand)}.settings-models-saved{color:#2f9e44;margin:0;font-size:12px;line-height:18px}.settings-models-rows{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.settings-models-rowcard{border:1px solid var(--stg-border-l2);border-radius:12px;flex-direction:column;gap:12px;padding:12px 14px;display:flex}.settings-models-rowhead{align-items:center;gap:10px;display:flex}.settings-models-rowidentity{align-items:center;gap:6px;min-width:0;display:inline-flex}.settings-models-rowname{color:var(--stg-text-primary);font-size:14px;font-weight:500;line-height:22px}.settings-models-rowtag{border:1px solid var(--stg-border-l3);color:var(--stg-text-secondary);border-radius:4px;flex:none;padding:1px 6px;font-size:11px;line-height:16px}.settings-models-rowactions{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.settings-models-btn{box-sizing:border-box;border:1px solid var(--stg-border-l2);height:28px;color:var(--stg-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:14px;justify-content:center;align-items:center;gap:4px;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}.settings-models-btn:hover:not(:disabled){background:var(--stg-hover)}.settings-models-danger{color:var(--stg-danger);border-color:#0000}.settings-models-danger:hover:not(:disabled){color:var(--stg-danger);background:#b33b3214}.settings-models-btn:disabled{opacity:.4;cursor:default}.settings-models-setupcard,.settings-models-addcard{background:var(--stg-module);border-radius:12px;flex-direction:column;gap:14px;padding:14px 16px;list-style:none;display:flex}.settings-models-addblock{flex-direction:column;gap:12px;margin-top:12px;display:flex}.settings-models-addactions{flex-wrap:wrap;gap:10px;display:flex}.settings-models-addbutton{box-sizing:border-box;border:1px dashed var(--stg-border-l3);min-width:180px;height:44px;color:var(--stg-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:12px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;font-size:14px;line-height:22px;display:inline-flex}.settings-models-addbutton:hover:not(:disabled){background:var(--stg-hover)}.settings-models-addbutton:disabled{opacity:.4;cursor:default}.settings-models-field{flex-direction:column;gap:6px;display:flex}.settings-models-fieldlabel{color:var(--stg-text-secondary);align-items:center;gap:10px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}.settings-models-input{box-sizing:border-box;border:1px solid var(--stg-border-l2);width:100%;height:32px;font:inherit;background:var(--stg-input-fill);color:var(--stg-text-primary);border-radius:8px;padding:0 10px;font-size:14px;line-height:22px}.settings-models-input:focus{border-color:var(--stg-brand);outline:none}.settings-models-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px 12px;max-width:240px;padding-right:32px}.settings-models-input::placeholder{color:var(--stg-text-tertiary)}.settings-models-input:disabled{opacity:.6;cursor:default}.settings-dialog-shell .settings-tab-section:has(#settings-models-heading)>header{margin-bottom:0}.settings-models-dot{box-sizing:border-box;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.settings-models-dot-ok{background:#2f9e44}.settings-models-dot-missing{background:var(--stg-danger)}.settings-models-editor{flex-direction:column;gap:14px;display:flex}.settings-models-editor-header{align-items:baseline;gap:8px;display:flex}.settings-models-editor-title{color:var(--stg-text-primary);font-size:14px;font-weight:500;line-height:22px}.settings-models-editor-route{color:var(--stg-text-tertiary);font-size:12px;line-height:18px}.settings-models-error{color:var(--stg-danger);margin:0;font-size:12px;line-height:18px}.settings-models-hint{color:var(--stg-text-tertiary);margin:0;font-size:12px;line-height:18px}.settings-models-editor-actions{justify-content:flex-end;gap:8px;display:flex}.settings-models-primary{box-sizing:border-box;background:var(--stg-brand);color:#fff;height:36px;font:inherit;cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;font-weight:500;line-height:22px;display:inline-flex}.settings-models-primary:hover:not(:disabled){filter:brightness(1.05)}.settings-models-primary:disabled{opacity:.4;cursor:default}.settings-models-link{box-sizing:border-box;height:28px;color:var(--stg-text-tertiary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:14px;align-items:center;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}.settings-models-link:hover:not(:disabled){background:var(--stg-hover);color:var(--stg-text-secondary)}.settings-models-link:disabled{opacity:.4;cursor:default}.settings-models-customized{border-top:1px solid var(--stg-border-l2);padding-top:10px}.settings-models-customized-summary{cursor:pointer;width:fit-content;color:var(--stg-text-secondary);border-radius:6px;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:flex}.settings-models-customized-summary::-webkit-details-marker{display:none}.settings-models-customized-summary:before{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transition:transform .12s;transform:rotate(-45deg)translate(-1px,-1px)}.settings-models-customized[open]>.settings-models-customized-summary:before{transform:rotate(45deg)translate(-1px,-1px)}.settings-models-customized-summary:hover{color:var(--stg-text-primary)}.settings-models-customized-body{flex-direction:column;gap:12px;padding-top:12px;display:flex}.settings-models-catalog{border-top:1px solid var(--stg-border-l2);flex-direction:column;gap:10px;padding-top:12px;display:flex}.settings-models-list-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.settings-models-catalog-heading{flex-direction:column;gap:2px;display:flex}.settings-models-catalog-title{color:var(--stg-text-secondary);font-size:12px;font-weight:500;line-height:18px}.settings-models-catalog-meta,.settings-models-catalog-empty{color:var(--stg-text-tertiary);margin:0;font-size:12px;line-height:18px}.settings-models-catalog-empty{border:1px dashed var(--stg-border-l3);text-align:center;border-radius:8px;padding:12px}.settings-models-entry{border:1px solid var(--stg-border-l2);border-radius:8px;padding:6px}.settings-models-entry-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto auto;align-items:center;gap:6px;display:grid}.settings-models-entry-advanced{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;padding:8px 4px 2px;display:grid}.settings-models-entry-field{flex-direction:column;gap:4px;display:flex}.settings-models-entry-field-label{color:var(--stg-text-tertiary);font-size:12px;line-height:18px}.settings-models-icon{box-sizing:border-box;width:28px;height:28px;color:var(--stg-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.settings-models-icon:hover:not(:disabled){background:var(--stg-hover);color:var(--stg-text-primary)}.settings-models-icon:disabled{cursor:default;opacity:.4}.settings-models-icon-danger:hover:not(:disabled){color:var(--stg-danger);background:#b33b3214}.settings-models-add-model{box-sizing:border-box;border:1px solid var(--stg-border-l2);height:28px;color:var(--stg-text-primary);font:inherit;cursor:pointer;background:0 0;border-radius:14px;align-self:flex-start;align-items:center;gap:4px;padding:0 10px;font-size:12px;line-height:18px;display:inline-flex}.settings-models-add-model:hover:not(:disabled){background:var(--stg-hover)}.settings-models-add-model:disabled{opacity:.4;cursor:default}.settings-models-secret{align-items:center;gap:4px;min-width:0;display:flex}.settings-models-secret input{box-sizing:border-box;border:1px solid var(--stg-border-l2);min-width:0;height:32px;font:inherit;background:var(--stg-input-fill);color:var(--stg-text-primary);border-radius:8px;flex:1;padding:0 10px;font-size:14px;line-height:22px}.settings-models-secret input:focus{border-color:var(--stg-brand);outline:none}.settings-models-secret-toggle{box-sizing:border-box;width:28px;height:28px;color:var(--stg-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.settings-models-secret-toggle:hover{background:var(--stg-hover);color:var(--stg-text-primary)}.settings-models-fetch{width:min(520px,100%)}.settings-models-fetch-actions{justify-content:flex-end;margin-bottom:6px;display:flex}.settings-models-candidates{flex-direction:column;gap:2px;max-height:320px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.settings-models-candidate{border-radius:6px}.settings-models-candidate-label{cursor:pointer;align-items:center;gap:8px;padding:6px 8px;display:flex}.settings-models-candidate-id{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);overflow-wrap:anywhere;flex:auto;font-size:13px}@media (prefers-reduced-motion:reduce){.settings-models-customized-summary:before{transition:none}}.settings-dialog-shell .settings-models-rowcard>.provider-settings-row{background:var(--stg-module);border:none;border-radius:12px;min-height:0;padding:14px 16px}.settings-dialog-shell .settings-models-setupcard>.provider-settings-row,.settings-dialog-shell .settings-models-addcard>.provider-settings-row{background:0 0;border:none;border-radius:0;min-height:0;padding:0}@media (max-width:640px){.settings-dialog-backdrop{justify-content:stretch;align-items:stretch;padding:0}.settings-dialog-shell{border:none;border-radius:0;width:100%;max-width:none;height:100dvh;min-height:0}.settings-dialog-body{flex-direction:column}.settings-dialog-content{flex:1;order:1;min-height:0}.settings-dialog-header{height:auto;min-height:52px;padding:max(8px, env(safe-area-inset-top)) 12px 6px 16px;border-bottom:1px solid var(--stg-border-l2);align-items:center}.settings-dialog-actions{justify-content:flex-start;margin-left:0}.settings-dialog-header .settings-dialog-current{color:var(--stg-text-primary);text-transform:none;font-size:16px;font-weight:500;line-height:24px;display:block}.settings-dialog-close{width:40px;height:40px}.settings-dialog-tabs{width:auto;padding:8px max(10px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));border-bottom:none;border-right:none;border-top:1px solid var(--stg-border-l2);background:var(--stg-fill);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-direction:row;flex:none;order:2;gap:6px;overflow:auto hidden}.settings-dialog-tabs::-webkit-scrollbar{display:none}.settings-dialog-navtitle{display:none}.settings-dialog-tab{border-radius:20px;flex:none;width:auto;height:40px;margin:0;padding:0 14px}.settings-dialog-tab.active{background:color-mix(in srgb, var(--stg-brand) 12%, transparent);color:var(--stg-brand)}.settings-dialog-tab.active .settings-tab-icon{color:var(--stg-brand)}.settings-dialog-panel{flex:1}.settings-dialog-shell .settings-tab-section{padding:18px 16px 24px}.settings-dialog-shell .model-policy-row{grid-template-columns:1fr}.settings-view-back{justify-content:center;min-width:44px;min-height:44px}}
4
+ .project-picker-overlay{--picker-text-primary:var(--text);--picker-text-secondary:var(--text-muted);--picker-text-tertiary:var(--text-dim);--picker-border-l2:color-mix(in srgb, var(--text) 14%, transparent);--picker-border-l3:color-mix(in srgb, var(--text) 9%, transparent);--picker-hover:color-mix(in srgb, var(--text) 6%, transparent);--picker-active:color-mix(in srgb, var(--text) 9%, transparent);z-index:300;background:#00000059;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.project-picker-dialog{border:1px solid var(--picker-border-l2);background:var(--bg);width:min(680px,100%);height:min(500px,100dvh - 32px);min-height:0;color:var(--picker-text-primary);border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 12px 40px #0000002e}.project-picker-header{border-bottom:1px solid var(--picker-border-l3);flex-direction:column;flex:none;gap:8px;padding:16px 14px 8px 24px;display:flex}.project-picker-header h2{align-items:flex-end;min-height:28px;margin:0;font-size:16px;font-weight:500;line-height:24px;display:flex}.project-picker-crumb-bar{box-sizing:border-box;border:1px solid #0000;border-radius:8px;align-items:center;gap:4px;min-height:24px;margin-left:-9px;padding:0 8px;display:flex}.project-picker-crumb-bar:hover,.project-picker-crumb-bar:focus-within,.project-picker-crumb-bar.editing{border-color:var(--picker-border-l2)}.project-picker-crumbs{scrollbar-width:none;align-items:center;gap:4px;min-width:0;display:flex;overflow-x:auto}.project-picker-crumbs span{min-width:0;color:var(--picker-text-tertiary);flex:none;align-items:center;gap:4px;display:inline-flex}.project-picker-crumbs button{max-width:160px;color:var(--picker-text-tertiary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;padding:0;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}.project-picker-crumbs button:hover{color:var(--picker-text-primary)}.project-picker-edit-path{min-width:34px;height:22px;color:var(--picker-text-tertiary);cursor:text;background:0 0;border:none;flex:1 0 34px;justify-content:flex-end;align-items:center;padding:0;display:flex}.project-picker-edit-path:hover{color:var(--picker-text-primary)}.project-picker-crumb-bar>input{min-width:0;height:22px;color:var(--picker-text-primary);background:0 0;border:none;outline:none;flex:1;padding:0;font-size:13px;line-height:20px}.project-picker-content{flex-direction:column;flex:1 1 0;min-height:0;padding:16px 16px 16px 24px;display:flex;position:relative}.project-picker-miller-row{scrollbar-width:none;flex:1 1 0;align-items:stretch;gap:12px;min-height:0;display:flex;overflow-x:auto}.project-picker-column{flex-direction:column;flex:1 1 0;gap:2px;min-width:256px;padding-right:8px;display:flex;overflow-y:auto}.project-picker-divider{background:var(--picker-border-l3);flex:none;width:1px}.project-picker-row-seat{flex:none;display:flex}.project-picker-row{width:100%;height:28px;color:var(--picker-text-primary);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:6px;flex:none;align-items:center;gap:4px;padding:4px;display:flex}.project-picker-row:hover{background:var(--picker-hover)}.project-picker-row.selected,.project-picker-row.selected:hover{background:var(--picker-active)}.project-picker-folder{color:var(--picker-text-secondary);flex:none}.project-picker-folder.selected{color:var(--accent)}.project-picker-row>span{min-width:0;color:var(--picker-text-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}.project-picker-row-chevron{color:var(--picker-text-tertiary);flex:none}.project-picker-loading{background:var(--bg-panel);color:var(--picker-text-secondary);padding:2px 8px;font-size:12px;line-height:18px;position:absolute;bottom:8px;right:16px}.project-picker-status,.project-picker-error{padding:4px 120px 4px 4px;font-size:12px;line-height:18px}.project-picker-status{color:var(--picker-text-secondary)}.project-picker-error{color:var(--danger,#e11d48)}.project-picker-footer{border-top:1px solid var(--picker-border-l3);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:16px 24px;display:flex}.project-picker-button{cursor:pointer;border-radius:16px;justify-content:center;align-items:center;gap:6px;min-width:72px;height:32px;padding:0 14px;font-size:13px;font-weight:500;display:inline-flex}.project-picker-button.outline{border:1px solid var(--picker-border-l2);color:var(--picker-text-primary);background:0 0}.project-picker-button.outline:hover:not(:disabled){background:var(--picker-hover)}.project-picker-button.primary{border:1px solid var(--accent);background:var(--accent);color:#fff}.project-picker-button.primary:hover:not(:disabled){background:var(--accent-hover)}.project-picker-button:disabled{opacity:.45;cursor:default}.project-picker-button.new-folder{min-width:0}.project-picker-show-hidden{color:var(--picker-text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}.project-picker-show-hidden:hover,.project-picker-show-hidden.active{color:var(--picker-text-primary)}.project-picker-footer-gap{flex:1 1 0}.project-picker-nested-overlay{z-index:320;background:#00000047;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.project-picker-create-dialog{border:1px solid var(--picker-border-l2);background:var(--bg);width:min(380px,100%);color:var(--picker-text-primary);border-radius:12px;flex-direction:column;gap:12px;padding:22px 24px 20px;display:flex}.project-picker-create-dialog h3{margin:0;font-size:16px;font-weight:500;line-height:24px}.project-picker-create-dialog p{margin:0;font-size:14px;line-height:22px}.project-picker-create-dialog input{box-sizing:border-box;border:1px solid var(--picker-border-l2);width:100%;height:44px;color:var(--picker-text-primary);background:0 0;border-radius:22px;outline:none;padding:7px 14px;font-size:14px;line-height:22px}.project-picker-create-dialog input:focus{border-color:var(--accent)}.project-picker-create-dialog input::placeholder{color:var(--picker-text-tertiary)}.project-picker-create-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;display:flex}@media (max-width:640px){.project-picker-overlay{padding:8px}.project-picker-dialog{width:100%;height:min(500px,100dvh - 16px)}.project-picker-header{padding-left:16px}.project-picker-content{padding-left:16px;padding-right:8px}.project-picker-footer{padding:12px 16px}.project-picker-show-hidden{order:3}.project-picker-footer-gap{display:none}.project-picker-button.new-folder{margin-right:auto}}