@seqyuan/annovibe 0.8.142 → 0.8.143

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 (72) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -11
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/react-loadable-manifest.json +16 -16
  6. package/.next/required-server-files.js +1 -1
  7. package/.next/required-server-files.json +1 -1
  8. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/_global-error.html +1 -1
  10. package/.next/server/app/_global-error.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/api/agent/runtime/route.js +1 -1
  21. package/.next/server/app/api/internal/runtime/route.js +1 -1
  22. package/.next/server/app/api/version/route.js +1 -1
  23. package/.next/server/app/index.html +1 -1
  24. package/.next/server/app/index.rsc +4 -4
  25. package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
  26. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  27. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  28. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/login.html +1 -1
  30. package/.next/server/app/login.rsc +1 -1
  31. package/.next/server/app/login.segments/_full.segment.rsc +1 -1
  32. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  33. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/page.js +13 -13
  35. package/.next/server/app/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/smoke/session-stream/page.js +1 -1
  38. package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/smoke/session-stream.html +1 -1
  40. package/.next/server/app/smoke/session-stream.rsc +4 -4
  41. package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +4 -4
  42. package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +4 -4
  44. package/.next/server/app/smoke.html +2 -2
  45. package/.next/server/app/smoke.rsc +1 -1
  46. package/.next/server/app/smoke.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
  48. package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +1 -1
  49. package/.next/server/app-paths-manifest.json +11 -11
  50. package/.next/server/chunks/7699.js +22 -0
  51. package/.next/server/chunks/8305.js +2 -2
  52. package/.next/server/middleware-build-manifest.js +1 -1
  53. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  54. package/.next/server/middleware.js +4 -4
  55. package/.next/server/pages/404.html +1 -1
  56. package/.next/server/pages/500.html +1 -1
  57. package/.next/server/preview-props.json +3 -3
  58. package/.next/server/server-reference-manifest.json +1 -1
  59. package/.next/static/chunks/1230-d71557da20554f50.js +22 -0
  60. package/.next/static/chunks/3309.581b04bacfeed701.js +1 -0
  61. package/.next/static/chunks/{3309.d0c34b5ef504a551.js → 5690.332f301b9df6f2dd.js} +1 -1
  62. package/.next/static/chunks/{6586.775a449050e0e9cc.js → 6586.5969468a897d9e00.js} +1 -1
  63. package/.next/static/chunks/{8863.2ae457485a63aa22.js → 8863.d853f8eb221377ed.js} +1 -1
  64. package/.next/static/chunks/app/{page-2e0bf200ed41d4f6.js → page-bdd2e6fc471b822f.js} +8 -8
  65. package/.next/static/chunks/app/smoke/session-stream/{page-ce422d02fbbe900d.js → page-f0f45a804e43fece.js} +2 -2
  66. package/.next/static/chunks/{webpack-19f3f7824a602f3b.js → webpack-a60990aaf3b13e7a.js} +1 -1
  67. package/package.json +1 -1
  68. package/.next/server/chunks/658.js +0 -22
  69. package/.next/static/chunks/3824-6bb3afa7d2fc5f09.js +0 -22
  70. package/.next/static/chunks/5690.64d843d3db8e1b4b.js +0 -1
  71. /package/.next/static/{ZpLecbnV0af9eeGcGwT88 → 993-z3SwOS_AuLBpkiyRr}/_buildManifest.js +0 -0
  72. /package/.next/static/{ZpLecbnV0af9eeGcGwT88 → 993-z3SwOS_AuLBpkiyRr}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- <!DOCTYPE html><html lang="en" class="__variable_9e44ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/9bcd6051db4f8890.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/d68ecb6695873888.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-19f3f7824a602f3b.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-a8a207cb34d209aa.js" async=""></script><script src="/_next/static/chunks/app/layout-31265427e43f6876.js" async=""></script><script src="/_next/static/chunks/app/error-6309e3e4cdf79d40.js" async=""></script><script src="/_next/static/chunks/d3ac728e-7964f816a1ca64e5.js" async=""></script><script src="/_next/static/chunks/73972abe-9ff83c7d1a6ea9f7.js" async=""></script><script src="/_next/static/chunks/0b9a0da7-373b544740862358.js" async=""></script><script src="/_next/static/chunks/363642f4-a09fcaca7af039e5.js" async=""></script><script src="/_next/static/chunks/2693-421c2e9d9c92a666.js" async=""></script><script src="/_next/static/chunks/2254-db22997b60e1dc27.js" async=""></script><script src="/_next/static/chunks/9867-1b73c62e8b604095.js" async=""></script><script src="/_next/static/chunks/5618-db41ee0c172d3add.js" async=""></script><script src="/_next/static/chunks/app/smoke/page-82db33b4fdd2e0b4.js" async=""></script><script src="/_next/static/chunks/app/global-error-7595c826cec2c048.js" async=""></script><title>AnnoVibe</title><meta name="description" content="AI-native bioinformatics workspace by Annoroad"/><link rel="shortcut icon" href="/icon.svg" type="image/svg+xml"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();","id":"theme-init"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><main style="min-height:100vh;background:var(--bg);color:var(--text);padding:24px 20px 56px"><div style="max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:20px"><div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap"><div><h1 style="margin:0;font-size:22px;line-height:1.2">Generative UI Smoke</h1><div style="margin-top:6px;color:var(--text-muted);font-size:13px">Fixed fixture for Streamdown, Shiki, widgets, mermaid, ANSI, and folding behavior.</div></div><div style="display:flex;align-items:center;gap:8px;flex-wrap:wrap"><button type="button" data-smoke-control="streaming-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Streaming On</button><button type="button" data-smoke-control="theme-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Light</button><button type="button" data-smoke-control="reduced-motion-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Reduced Motion Off</button></div></div><section style="display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:12px"><div data-smoke="text-shimmer" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Text Shimmer</div><div><span style="display:inline-block;background-image:linear-gradient(90deg, var(--text-dim) 25%, var(--text-muted) 50%, var(--text-dim) 75%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:text-shimmer 2s linear infinite">Thinking</span></div></div><div data-smoke="surface-shimmer" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Surface Shimmer</div><div><div style="border-radius:6px;background:var(--bg-panel);overflow:hidden;height:56px"><div style="width:100%;height:100%;background:linear-gradient(90deg, transparent 0%, var(--bg-hover) 50%, transparent 100%);background-size:200% 100%;animation:surface-shimmer 1.5s ease-in-out infinite"></div></div></div></div><div data-smoke="status-badges" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Status Badge</div><div><div style="display:flex;gap:8px;flex-wrap:wrap"><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #f59e0b 35%, transparent);background:color-mix(in srgb, #f59e0b 10%, transparent);color:#f59e0b;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Running"><span style="width:6px;height:6px;border-radius:999px;background:#f59e0b;animation:pulse 1.2s ease-in-out infinite"></span><span>Running</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #16a34a 35%, transparent);background:color-mix(in srgb, #16a34a 10%, transparent);color:#16a34a;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Done"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg><span>Done</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #f87171 35%, transparent);background:color-mix(in srgb, #f87171 10%, transparent);color:#f87171;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Error"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m18 6-12 12"></path><path d="m6 6 12 12"></path></svg><span>Error</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, var(--text-dim) 35%, transparent);background:color-mix(in srgb, var(--text-dim) 10%, transparent);color:var(--text-dim);font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Unknown"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"></circle><path d="M12 8v5"></path><path d="M12 16h.01"></path></svg><span>Unknown</span></span></div></div></div></section><section data-smoke="assistant-markdown" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);overflow:hidden"><div style="padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-panel);font-size:12px;color:var(--text-muted);font-weight:600">Assistant Markdown</div><div style="padding:14px"><div class="markdown-body"><div class="space-y-4 whitespace-normal [&amp;&gt;*:first-child]:mt-0 [&amp;&gt;*:last-child]:mb-0"><h1 class="mt-6 mb-2 font-semibold text-3xl" data-streamdown="heading-1">Generative UI Smoke</h1><p>Inline code: <code style="background:var(--bg-selected);padding:1px 4px;border-radius:3px;font-family:var(--font-mono);font-size:0.9em">const answer = 42</code></p><p>Inline math: $E=mc^2$</p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msubsup><mo>∫</mo><mn>0</mn><mn>1</mn></msubsup><msup><mi>x</mi><mn>2</mn></msup><mtext> </mtext><mi>d</mi><mi>x</mi><mo>=</mo><mfrac><mn>1</mn><mn>3</mn></mfrac></mrow><annotation encoding="application/x-tex">\int_0^1 x^2 \, dx = \frac{1}{3}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.476em;vertical-align:-0.9119em"></span><span class="mop"><span class="mop op-symbol large-op" style="margin-right:0.4445em;position:relative;top:-0.0011em">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.564em"><span style="top:-1.7881em;margin-left:-0.4445em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span><span style="top:-3.8129em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.9119em"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em"><span style="top:-3.113em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em"></span><span class="mord mathnormal">d</span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2778em"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em"></span></span><span class="base"><span class="strut" style="height:2.0074em;vertical-align:-0.686em"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3214em"><span style="top:-2.314em"><span class="pstrut" style="height:3em"></span><span class="mord"><span class="mord">3</span></span></span><span style="top:-3.23em"><span class="pstrut" style="height:3em"></span><span class="frac-line" style="border-bottom-width:0.04em"></span></span><span style="top:-3.677em"><span class="pstrut" style="height:3em"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span><h2 class="mt-6 mb-2 font-semibold text-2xl" data-streamdown="heading-2">JavaScript</h2><div class="markdown-code-block markdown-code-block-chat" style="border-radius:6px;overflow:hidden;border:1px solid var(--border);margin-top:4px;margin-bottom:4px"><div style="padding:3px 10px;background:var(--bg-panel);border-bottom:1px solid var(--border);font-size:11px;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;gap:8px"><span>js</span><div style="display:flex;gap:8px;align-items:center"><button type="button" title="Copy as Markdown fence" aria-label="Copy as Markdown fence" style="background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px">markdown</button><button type="button" aria-label="Copy code" style="background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px">copy</button></div></div><pre data-highlight-source="raw" data-highlight-language="js" style="margin:0;padding:10px 12px;font-size:12.5px;line-height:1.6;overflow:auto;background:var(--bg);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;color:var(--text)"><code>export function sum(a, b) {
1
+ <!DOCTYPE html><html lang="en" class="__variable_9e44ca"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/7deddc85b7ffd1dc-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/ec14413c594b3356-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/9bcd6051db4f8890.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/d68ecb6695873888.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a60990aaf3b13e7a.js"/><script src="/_next/static/chunks/4bd1b696-8cd12253b448cc13.js" async=""></script><script src="/_next/static/chunks/3794-fba3f76785a3c234.js" async=""></script><script src="/_next/static/chunks/main-app-a8a207cb34d209aa.js" async=""></script><script src="/_next/static/chunks/app/layout-31265427e43f6876.js" async=""></script><script src="/_next/static/chunks/app/error-6309e3e4cdf79d40.js" async=""></script><script src="/_next/static/chunks/d3ac728e-7964f816a1ca64e5.js" async=""></script><script src="/_next/static/chunks/73972abe-9ff83c7d1a6ea9f7.js" async=""></script><script src="/_next/static/chunks/0b9a0da7-373b544740862358.js" async=""></script><script src="/_next/static/chunks/363642f4-a09fcaca7af039e5.js" async=""></script><script src="/_next/static/chunks/2693-421c2e9d9c92a666.js" async=""></script><script src="/_next/static/chunks/2254-db22997b60e1dc27.js" async=""></script><script src="/_next/static/chunks/9867-1b73c62e8b604095.js" async=""></script><script src="/_next/static/chunks/5618-db41ee0c172d3add.js" async=""></script><script src="/_next/static/chunks/app/smoke/page-82db33b4fdd2e0b4.js" async=""></script><script src="/_next/static/chunks/app/global-error-7595c826cec2c048.js" async=""></script><title>AnnoVibe</title><meta name="description" content="AI-native bioinformatics workspace by Annoroad"/><link rel="shortcut icon" href="/icon.svg" type="image/svg+xml"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><meta name="next-size-adjust" content=""/><script>(self.__next_s=self.__next_s||[]).push([0,{"children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();","id":"theme-init"}])</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><main style="min-height:100vh;background:var(--bg);color:var(--text);padding:24px 20px 56px"><div style="max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:20px"><div style="display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap"><div><h1 style="margin:0;font-size:22px;line-height:1.2">Generative UI Smoke</h1><div style="margin-top:6px;color:var(--text-muted);font-size:13px">Fixed fixture for Streamdown, Shiki, widgets, mermaid, ANSI, and folding behavior.</div></div><div style="display:flex;align-items:center;gap:8px;flex-wrap:wrap"><button type="button" data-smoke-control="streaming-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Streaming On</button><button type="button" data-smoke-control="theme-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Light</button><button type="button" data-smoke-control="reduced-motion-toggle" style="min-height:32px;padding:0 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-panel);color:var(--text);cursor:pointer">Reduced Motion Off</button></div></div><section style="display:grid;grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));gap:12px"><div data-smoke="text-shimmer" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Text Shimmer</div><div><span style="display:inline-block;background-image:linear-gradient(90deg, var(--text-dim) 25%, var(--text-muted) 50%, var(--text-dim) 75%);background-size:200% 100%;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;color:transparent;animation:text-shimmer 2s linear infinite">Thinking</span></div></div><div data-smoke="surface-shimmer" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Surface Shimmer</div><div><div style="border-radius:6px;background:var(--bg-panel);overflow:hidden;height:56px"><div style="width:100%;height:100%;background:linear-gradient(90deg, transparent 0%, var(--bg-hover) 50%, transparent 100%);background-size:200% 100%;animation:surface-shimmer 1.5s ease-in-out infinite"></div></div></div></div><div data-smoke="status-badges" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);padding:12px;display:flex;flex-direction:column;gap:10px;min-height:92px"><div style="font-size:12px;color:var(--text-muted);font-weight:600">Status Badge</div><div><div style="display:flex;gap:8px;flex-wrap:wrap"><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #f59e0b 35%, transparent);background:color-mix(in srgb, #f59e0b 10%, transparent);color:#f59e0b;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Running"><span style="width:6px;height:6px;border-radius:999px;background:#f59e0b;animation:pulse 1.2s ease-in-out infinite"></span><span>Running</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #16a34a 35%, transparent);background:color-mix(in srgb, #16a34a 10%, transparent);color:#16a34a;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Done"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="20 6 9 17 4 12"></polyline></svg><span>Done</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, #f87171 35%, transparent);background:color-mix(in srgb, #f87171 10%, transparent);color:#f87171;font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Error"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m18 6-12 12"></path><path d="m6 6 12 12"></path></svg><span>Error</span></span><span style="display:inline-flex;align-items:center;gap:5px;min-height:18px;padding:0 6px;border-radius:999px;border:1px solid color-mix(in srgb, var(--text-dim) 35%, transparent);background:color-mix(in srgb, var(--text-dim) 10%, transparent);color:var(--text-dim);font-size:10px;font-weight:600;white-space:nowrap;flex-shrink:0" title="Unknown"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"></circle><path d="M12 8v5"></path><path d="M12 16h.01"></path></svg><span>Unknown</span></span></div></div></div></section><section data-smoke="assistant-markdown" style="border:1px solid var(--border);border-radius:8px;background:var(--assistant-bg);overflow:hidden"><div style="padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-panel);font-size:12px;color:var(--text-muted);font-weight:600">Assistant Markdown</div><div style="padding:14px"><div class="markdown-body"><div class="space-y-4 whitespace-normal [&amp;&gt;*:first-child]:mt-0 [&amp;&gt;*:last-child]:mb-0"><h1 class="mt-6 mb-2 font-semibold text-3xl" data-streamdown="heading-1">Generative UI Smoke</h1><p>Inline code: <code style="background:var(--bg-selected);padding:1px 4px;border-radius:3px;font-family:var(--font-mono);font-size:0.9em">const answer = 42</code></p><p>Inline math: $E=mc^2$</p><span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><msubsup><mo>∫</mo><mn>0</mn><mn>1</mn></msubsup><msup><mi>x</mi><mn>2</mn></msup><mtext> </mtext><mi>d</mi><mi>x</mi><mo>=</mo><mfrac><mn>1</mn><mn>3</mn></mfrac></mrow><annotation encoding="application/x-tex">\int_0^1 x^2 \, dx = \frac{1}{3}</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:2.476em;vertical-align:-0.9119em"></span><span class="mop"><span class="mop op-symbol large-op" style="margin-right:0.4445em;position:relative;top:-0.0011em">∫</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.564em"><span style="top:-1.7881em;margin-left:-0.4445em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">0</span></span></span><span style="top:-3.8129em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.9119em"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8641em"><span style="top:-3.113em;margin-right:0.05em"><span class="pstrut" style="height:2.7em"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.1667em"></span><span class="mord mathnormal">d</span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2778em"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em"></span></span><span class="base"><span class="strut" style="height:2.0074em;vertical-align:-0.686em"></span><span class="mord"><span class="mopen nulldelimiter"></span><span class="mfrac"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:1.3214em"><span style="top:-2.314em"><span class="pstrut" style="height:3em"></span><span class="mord"><span class="mord">3</span></span></span><span style="top:-3.23em"><span class="pstrut" style="height:3em"></span><span class="frac-line" style="border-bottom-width:0.04em"></span></span><span style="top:-3.677em"><span class="pstrut" style="height:3em"></span><span class="mord"><span class="mord">1</span></span></span></span><span class="vlist-s">​</span></span><span class="vlist-r"><span class="vlist" style="height:0.686em"><span></span></span></span></span></span><span class="mclose nulldelimiter"></span></span></span></span></span></span><h2 class="mt-6 mb-2 font-semibold text-2xl" data-streamdown="heading-2">JavaScript</h2><div class="markdown-code-block markdown-code-block-chat" style="border-radius:6px;overflow:hidden;border:1px solid var(--border);margin-top:4px;margin-bottom:4px"><div style="padding:3px 10px;background:var(--bg-panel);border-bottom:1px solid var(--border);font-size:11px;color:var(--text-dim);display:flex;justify-content:space-between;align-items:center;gap:8px"><span>js</span><div style="display:flex;gap:8px;align-items:center"><button type="button" title="Copy as Markdown fence" aria-label="Copy as Markdown fence" style="background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px">markdown</button><button type="button" aria-label="Copy code" style="background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px">copy</button></div></div><pre data-highlight-source="raw" data-highlight-language="js" style="margin:0;padding:10px 12px;font-size:12.5px;line-height:1.6;overflow:auto;background:var(--bg);font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;color:var(--text)"><code>export function sum(a, b) {
2
2
  return a + b;
3
3
  }
4
4
 
@@ -1467,4 +1467,4 @@ line 28 = 28
1467
1467
  line 29 = 29
1468
1468
  line 30 = 30
1469
1469
  line 31 = 31
1470
- line 32 = 32</span></code></div><div style="position:absolute;inset-inline:0;bottom:0;height:3.5rem;background:linear-gradient(to top, var(--bg) 0%, transparent 100%);pointer-events:none"></div></div><button type="button" aria-expanded="false" style="display:flex;align-items:center;gap:4px;width:100%;min-height:28px;padding:4px 8px;justify-content:center;background:var(--bg);border:none;border-top:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:11px">Show all 35 lines</button></div></div></div></section></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-19f3f7824a602f3b.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:\"static/chunks/app/layout-31265427e43f6876.js\"\n3:I[42593,[\"7177\",\"$2\"],\"\"]\n4:I[57121,[],\"\"]\n5:\"static/chunks/app/error-6309e3e4cdf79d40.js\"\n6:I[87460,[\"8039\",\"$5\"],\"default\"]\n7:I[74581,[],\"\"]\nb:I[61304,[],\"ClientPageRoot\"]\nc:\"static/chunks/d3ac728e-7964f816a1ca64e5.js\"\nd:\"static/chunks/73972abe-9ff83c7d1a6ea9f7.js\"\ne:\"static/chunks/0b9a0da7-373b544740862358.js\"\nf:\"static/chunks/363642f4-a09fcaca7af039e5.js\"\n10:\"static/chunks/2693-421c2e9d9c92a666.js\"\n11:\"static/chunks/2254-db22997b60e1dc27.js\"\n12:\"static/chunks/9867-1b73c62e8b604095.js\"\n13:\"static/chunks/5618-db41ee0c172d3add.js\"\n14:\"static/chunks/app/smoke/page-82db33b4fdd2e0b4.js\"\n15:I[54833,[\"7330\",\"$c\",\"2941\",\"$d\",\"2995\",\"$e\",\"6079\",\"$f\",\"2693\",\"$10\",\"2254\",\"$11\",\"9867\",\"$12\",\"5618\",\"$13\",\"2444\",\"$14\"],\"default\"]\n18:I[90484,[],\"OutletBoundary\"]\n19:\"$Sreact.suspense\"\n1b:\"ViewportBoundary\"\n1c:I[90484,[],\"$1b\"]\n1e:\"MetadataBoundary\"\n1f:I[90484,[],\"$1e\"]\n21:\"static/chunks/app/global-error-7595c826cec2c048.js\"\n22:I[54690,[\"4219\",\"$21\"],\"default\"]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/9bcd6051db4f8890.css\",\"style\"]\n:HL[\"/_next/static/css/d68ecb6695873888.css\",\"style\"]\n9:X\na:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lb\",null,{\"Component\":\"$15\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@16\",\"$@17\"]}}],null,[\"$\",\"$L18\",null,{\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1a\"}]}]]}],\"p\":false,\"v\":null}}]]\n8:[[\"children\",{\"s\":\"smoke\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$9\"},\"c\":\"$Qa\"}]]\n0:{\"P\":null,\"c\":[\"\",\"smoke\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9bcd6051db4f8890.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d68ecb6695873888.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_9e44ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L3\",null,{\"id\":\"theme-init\",\"strategy\":\"beforeInteractive\",\"children\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L7\",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\"}]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q8\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1c\",null,{\"children\":\"$L1d\"}],[\"$\",\"$L1f\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L20\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$22\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"ZpLecbnV0af9eeGcGwT88\"}\n9:C\n16:{}\n17:\"$a:0:1:d:r:props:children:0:props:serverProvidedParams:params\"\n1d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n23:I[86869,[],\"IconMark\"]\n1a:null\n20:[[\"$\",\"title\",\"0\",{\"children\":\"AnnoVibe\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics workspace by Annoroad\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L23\",\"4\",{}]]\n"])</script></body></html>
1470
+ line 32 = 32</span></code></div><div style="position:absolute;inset-inline:0;bottom:0;height:3.5rem;background:linear-gradient(to top, var(--bg) 0%, transparent 100%);pointer-events:none"></div></div><button type="button" aria-expanded="false" style="display:flex;align-items:center;gap:4px;width:100%;min-height:28px;padding:4px 8px;justify-content:center;background:var(--bg);border:none;border-top:1px solid var(--border);color:var(--text-dim);cursor:pointer;font-size:11px">Show all 35 lines</button></div></div></div></section></section></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a60990aaf3b13e7a.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:\"static/chunks/app/layout-31265427e43f6876.js\"\n3:I[42593,[\"7177\",\"$2\"],\"\"]\n4:I[57121,[],\"\"]\n5:\"static/chunks/app/error-6309e3e4cdf79d40.js\"\n6:I[87460,[\"8039\",\"$5\"],\"default\"]\n7:I[74581,[],\"\"]\nb:I[61304,[],\"ClientPageRoot\"]\nc:\"static/chunks/d3ac728e-7964f816a1ca64e5.js\"\nd:\"static/chunks/73972abe-9ff83c7d1a6ea9f7.js\"\ne:\"static/chunks/0b9a0da7-373b544740862358.js\"\nf:\"static/chunks/363642f4-a09fcaca7af039e5.js\"\n10:\"static/chunks/2693-421c2e9d9c92a666.js\"\n11:\"static/chunks/2254-db22997b60e1dc27.js\"\n12:\"static/chunks/9867-1b73c62e8b604095.js\"\n13:\"static/chunks/5618-db41ee0c172d3add.js\"\n14:\"static/chunks/app/smoke/page-82db33b4fdd2e0b4.js\"\n15:I[54833,[\"7330\",\"$c\",\"2941\",\"$d\",\"2995\",\"$e\",\"6079\",\"$f\",\"2693\",\"$10\",\"2254\",\"$11\",\"9867\",\"$12\",\"5618\",\"$13\",\"2444\",\"$14\"],\"default\"]\n18:I[90484,[],\"OutletBoundary\"]\n19:\"$Sreact.suspense\"\n1b:\"ViewportBoundary\"\n1c:I[90484,[],\"$1b\"]\n1e:\"MetadataBoundary\"\n1f:I[90484,[],\"$1e\"]\n21:\"static/chunks/app/global-error-7595c826cec2c048.js\"\n22:I[54690,[\"4219\",\"$21\"],\"default\"]\n:HL[\"/_next/static/media/7deddc85b7ffd1dc-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/ec14413c594b3356-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/css/9bcd6051db4f8890.css\",\"style\"]\n:HL[\"/_next/static/css/d68ecb6695873888.css\",\"style\"]\n9:X\na:[[\"children\",{\"s\":\"__PAGE__\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$Lb\",null,{\"Component\":\"$15\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@16\",\"$@17\"]}}],null,[\"$\",\"$L18\",null,{\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1a\"}]}]]}],\"p\":false,\"v\":null}}]]\n8:[[\"children\",{\"s\":\"smoke\",\"h\":512,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L7\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],\"p\":false,\"v\":\"$9\"},\"c\":\"$Qa\"}]]\n0:{\"P\":null,\"c\":[\"\",\"smoke\"],\"q\":\"\",\"i\":false,\"t\":{\"t\":{\"s\":\"\",\"h\":528,\"d\":{\"r\":[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9bcd6051db4f8890.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/d68ecb6695873888.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_9e44ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L3\",null,{\"id\":\"theme-init\",\"strategy\":\"beforeInteractive\",\"children\":\"(function(){try{var t=localStorage.getItem(\\\"pi-theme\\\");if(t===\\\"dark\\\")document.documentElement.classList.add(\\\"dark\\\")}catch(e){}})();\"}]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$6\",\"errorStyles\":[],\"errorScripts\":null,\"template\":[\"$\",\"$L7\",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\"}]}]]}]]}],\"p\":false,\"v\":null},\"c\":\"$Q8\"},\"h\":{\"r\":[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L1c\",null,{\"children\":\"$L1d\"}],[\"$\",\"$L1f\",null,{\"children\":[[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$19\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L20\"}]}],null]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],\"p\":false,\"v\":null}},\"m\":\"$undefined\",\"G\":[\"$22\",[]],\"S\":true,\"r\":\"$undefined\",\"s\":\"$undefined\",\"a\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"993-z3SwOS_AuLBpkiyRr\"}\n9:C\n16:{}\n17:\"$a:0:1:d:r:props:children:0:props:serverProvidedParams:params\"\n1d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n23:I[86869,[],\"IconMark\"]\n1a:null\n20:[[\"$\",\"title\",\"0\",{\"children\":\"AnnoVibe\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"AI-native bioinformatics workspace by Annoroad\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"$L23\",\"4\",{}]]\n"])</script></body></html>
@@ -31,7 +31,7 @@ f:"static/chunks/363642f4-a09fcaca7af039e5.js"
31
31
  9:X
32
32
  a:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$Lb",null,{"Component":"$15","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@16","$@17"]}}],null,["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}]]}],"p":false,"v":null}}]]
33
33
  8:[["children",{"s":"smoke","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$9"},"c":"$Qa"}]]
34
- 0:{"P":null,"c":["","smoke"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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"}]}]]}]]}],"p":false,"v":null},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ZpLecbnV0af9eeGcGwT88"}
34
+ 0:{"P":null,"c":["","smoke"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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"}]}]]}]]}],"p":false,"v":null},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"993-z3SwOS_AuLBpkiyRr"}
35
35
  9:C
36
36
  16:{}
37
37
  17:"$a:0:1:d:r:props:children:0:props:serverProvidedParams:params"
@@ -31,7 +31,7 @@ f:"static/chunks/363642f4-a09fcaca7af039e5.js"
31
31
  9:X
32
32
  a:[["children",{"s":"__PAGE__","h":512,"d":{"r":["$","$1","c",{"children":[["$","$Lb",null,{"Component":"$15","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@16","$@17"]}}],null,["$","$L18",null,{"children":["$","$19",null,{"name":"Next.MetadataOutlet","children":"$@1a"}]}]]}],"p":false,"v":null}}]]
33
33
  8:[["children",{"s":"smoke","h":512,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],"p":false,"v":"$9"},"c":"$Qa"}]]
34
- 0:{"P":null,"c":["","smoke"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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"}]}]]}]]}],"p":false,"v":null},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"ZpLecbnV0af9eeGcGwT88"}
34
+ 0:{"P":null,"c":["","smoke"],"q":"","i":false,"t":{"t":{"s":"","h":528,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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"}]}]]}]]}],"p":false,"v":null},"c":"$Q8"},"h":{"r":["$","$1","h",{"children":[null,["$","$L1c",null,{"children":"$L1d"}],["$","$L1f",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$19",null,{"name":"Next.Metadata","children":"$L20"}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":false,"v":null}},"m":"$undefined","G":["$22",[]],"S":true,"r":"$undefined","s":"$undefined","a":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"993-z3SwOS_AuLBpkiyRr"}
35
35
  9:C
36
36
  16:{}
37
37
  17:"$a:0:1:d:r:props:children:0:props:serverProvidedParams:params"
@@ -4,4 +4,4 @@
4
4
  :HL["/_next/static/css/d68ecb6695873888.css","style"]
5
5
  2:[["children",{"s":"__PAGE__","h":160}]]
6
6
  1:[["children",{"s":"smoke","h":96,"c":"$Q2"}]]
7
- 0:{"b":"ZpLecbnV0af9eeGcGwT88","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
7
+ 0:{"b":"993-z3SwOS_AuLBpkiyRr","t":{"t":{"s":"","h":80,"c":"$Q1"}}}
@@ -30,7 +30,7 @@ c:X
30
30
  c:C
31
31
  d:[["children",{"s":"__PAGE__","h":160,"d":{"r":["$","$1","c",{"children":[["$","$Le",null,{"Component":"$18","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@19","$@1a"]}}],null,["$","$L1b",null,{"children":["$","$1c",null,{"name":"Next.MetadataOutlet","children":"$@1d"}]}]]}],"p":"$@1e","v":null,"s":"$9"}}]]
32
32
  a:[["children",{"s":"smoke","h":96,"d":{"r":["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}]}]]}],"p":"$@b","v":"$c","s":"$9"},"c":"$Qd"}]]
33
- 0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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."}]}]]}]}]],[]]}]}]]}]]}],"p":"$@8","v":null,"s":"$9"},"c":"$Qa"},"h":{"r":["$","$1","h",{"children":[null,["$","$L20",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L22",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1c",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L23","4",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@24","v":null,"s":"$9"}},"a":"$@25","u":"$@26","b":"ZpLecbnV0af9eeGcGwT88"}
33
+ 0:{"t":{"t":{"s":"","h":80,"d":{"r":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/9bcd6051db4f8890.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/d68ecb6695873888.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_9e44ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L3",null,{"id":"theme-init","strategy":"beforeInteractive","children":"(function(){try{var t=localStorage.getItem(\"pi-theme\");if(t===\"dark\")document.documentElement.classList.add(\"dark\")}catch(e){}})();"}]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$6","errorStyles":[],"errorScripts":null,"template":["$","$L7",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."}]}]]}]}]],[]]}]}]]}]]}],"p":"$@8","v":null,"s":"$9"},"c":"$Qa"},"h":{"r":["$","$1","h",{"children":[null,["$","$L20",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","$L22",null,{"children":[["$","div",null,{"hidden":true,"children":["$","$1c",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AnnoVibe"}],["$","meta","1",{"name":"description","content":"AI-native bioinformatics workspace by Annoroad"}],["$","link","2",{"rel":"shortcut icon","href":"/icon.svg","type":"image/svg+xml"}],["$","link","3",{"rel":"icon","href":"/icon.svg","type":"image/svg+xml"}],["$","$L23","4",{}]]}]}],null]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"p":"$@24","v":null,"s":"$9"}},"a":"$@25","u":"$@26","b":"993-z3SwOS_AuLBpkiyRr"}
34
34
  19:{}
35
35
  1a:"$d:0:1:d:r:props:children:0:props:serverProvidedParams:params"
36
36
  1d:null
@@ -26,20 +26,22 @@
26
26
  "/api/agent/running/route": "app/api/agent/running/route.js",
27
27
  "/api/agent/runtime/route": "app/api/agent/runtime/route.js",
28
28
  "/api/apps/route": "app/api/apps/route.js",
29
- "/api/apps/[id]/[[...path]]/route": "app/api/apps/[id]/[[...path]]/route.js",
30
29
  "/api/auth/all-providers/route": "app/api/auth/all-providers/route.js",
31
30
  "/api/auth/api-key/[provider]/route": "app/api/auth/api-key/[provider]/route.js",
31
+ "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
32
32
  "/api/auth/logout/[provider]/route": "app/api/auth/logout/[provider]/route.js",
33
33
  "/api/auth/providers/route": "app/api/auth/providers/route.js",
34
- "/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
35
34
  "/api/auth/totp/route": "app/api/auth/totp/route.js",
36
35
  "/api/debug-models/route": "app/api/debug-models/route.js",
37
36
  "/api/file-tree/delete/route": "app/api/file-tree/delete/route.js",
38
37
  "/api/file-tree/mkdir/route": "app/api/file-tree/mkdir/route.js",
39
38
  "/api/file-tree/rename/route": "app/api/file-tree/rename/route.js",
40
39
  "/api/file-tree/reveal/route": "app/api/file-tree/reveal/route.js",
40
+ "/api/apps/[id]/[[...path]]/route": "app/api/apps/[id]/[[...path]]/route.js",
41
41
  "/api/file-tree/write/route": "app/api/file-tree/write/route.js",
42
42
  "/api/file-watch/route": "app/api/file-watch/route.js",
43
+ "/api/files/[...path]/route": "app/api/files/[...path]/route.js",
44
+ "/api/im/cancel/route": "app/api/im/cancel/route.js",
43
45
  "/api/im/gateway-status/route": "app/api/im/gateway-status/route.js",
44
46
  "/api/im/project/route": "app/api/im/project/route.js",
45
47
  "/api/im/projects/route": "app/api/im/projects/route.js",
@@ -51,31 +53,29 @@
51
53
  "/api/models-config/discover/route": "app/api/models-config/discover/route.js",
52
54
  "/api/models-config/route": "app/api/models-config/route.js",
53
55
  "/api/models-config/test/route": "app/api/models-config/test/route.js",
56
+ "/api/models/route": "app/api/models/route.js",
54
57
  "/api/plot-kernels/route": "app/api/plot-kernels/route.js",
55
- "/api/plot-kernels/save/route": "app/api/plot-kernels/save/route.js",
56
58
  "/api/plot-kernels/status/route": "app/api/plot-kernels/status/route.js",
59
+ "/api/plot-kernels/save/route": "app/api/plot-kernels/save/route.js",
57
60
  "/api/plot-kernels/stop/route": "app/api/plot-kernels/stop/route.js",
58
- "/api/im/cancel/route": "app/api/im/cancel/route.js",
59
61
  "/api/plugins/route": "app/api/plugins/route.js",
60
62
  "/api/project-trust/route": "app/api/project-trust/route.js",
61
63
  "/api/session-index/events/route": "app/api/session-index/events/route.js",
62
64
  "/api/sessions/[id]/export/route": "app/api/sessions/[id]/export/route.js",
63
65
  "/api/sessions/[id]/media/route": "app/api/sessions/[id]/media/route.js",
64
- "/api/sessions/[id]/shadowed/route": "app/api/sessions/[id]/shadowed/route.js",
65
- "/api/files/[...path]/route": "app/api/files/[...path]/route.js",
66
66
  "/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
67
+ "/api/sessions/[id]/shadowed/route": "app/api/sessions/[id]/shadowed/route.js",
67
68
  "/api/settings/route": "app/api/settings/route.js",
68
69
  "/api/skills/check/route": "app/api/skills/check/route.js",
69
70
  "/api/skills/route": "app/api/skills/route.js",
70
- "/api/models/route": "app/api/models/route.js",
71
71
  "/api/skills/search/route": "app/api/skills/search/route.js",
72
- "/api/smoke/prompt-admission/route": "app/api/smoke/prompt-admission/route.js",
72
+ "/api/skills/install/route": "app/api/skills/install/route.js",
73
73
  "/api/skills/update/route": "app/api/skills/update/route.js",
74
+ "/api/smoke/prompt-admission/route": "app/api/smoke/prompt-admission/route.js",
74
75
  "/api/subagents/status/route": "app/api/subagents/status/route.js",
75
76
  "/api/version/route": "app/api/version/route.js",
76
- "/api/skills/install/route": "app/api/skills/install/route.js",
77
77
  "/login/page": "app/login/page.js",
78
78
  "/page": "app/page.js",
79
- "/smoke/session-stream/page": "app/smoke/session-stream/page.js",
80
- "/smoke/page": "app/smoke/page.js"
79
+ "/smoke/page": "app/smoke/page.js",
80
+ "/smoke/session-stream/page": "app/smoke/session-stream/page.js"
81
81
  }
@@ -0,0 +1,22 @@
1
+ "use strict";exports.id=7699,exports.ids=[7699],exports.modules={17699:(a,b,c)=>{c.d(b,{T:()=>X});var d=c(67484);function e(a){if("assistant"!==a.role)return a;let b=a.content;if(!Array.isArray(b))return a;let c=b.map(a=>("object"!=typeof a||null===a||Array.isArray(a)||"toolCall"!==a.type?null:{type:"toolCall",toolCallId:"string"==typeof a.toolCallId?a.toolCallId:"string"==typeof a.id?a.id:"",toolName:"string"==typeof a.toolName?a.toolName:"string"==typeof a.name?a.name:"",input:"object"!=typeof a.input||null===a.input||Array.isArray(a.input)?"object"!=typeof a.arguments||null===a.arguments||Array.isArray(a.arguments)?{}:a.arguments:a.input})??a);return{...a,content:c}}let f={isStreaming:!1,streamingMessage:null};function g(){return{role:"assistant",content:[],model:"",provider:"",timestamp:Date.now()}}function h(a,b,c){if(!Number.isInteger(b)||void 0===b||b<0)return a;let d=a.streamingMessage??g(),e=[...d.content],f=c(e[b]);return f?(e[b]=f,{isStreaming:!0,streamingMessage:{...d,content:e}}):a}function i(a){if(a.id||a.toolName)return{...a.id?{id:a.id}:{},...a.toolName?{toolName:a.toolName}:{}};let b=a.partial,c=a.contentIndex;if(!b||!Array.isArray(b.content)||void 0===c)return{};let d=b.content[c];return d&&"toolCall"===d.type?{..."string"==typeof d.id?{id:d.id}:"string"==typeof d.toolCallId?{id:d.toolCallId}:{},..."string"==typeof d.name?{toolName:d.name}:"string"==typeof d.toolName?{toolName:d.toolName}:{}}:{}}function j(a,b){switch(b.type){case"start":return{isStreaming:!0,streamingMessage:null};case"snapshot":return"assistant"===b.message.role?{isStreaming:!0,streamingMessage:b.message}:a;case"delta":var c=b.event;switch(c.type){case"start":return{isStreaming:!0,streamingMessage:a.streamingMessage??g()};case"text_start":return h(a,c.contentIndex,a=>a?.type==="text"?a:{type:"text",text:""});case"text_delta":return h(a,c.contentIndex,a=>({type:"text",text:(a?.type==="text"?a.text:"")+(c.delta??"")}));case"text_end":return h(a,c.contentIndex,a=>({type:"text",text:c.content??(a?.type==="text"?a.text:"")}));case"thinking_start":return h(a,c.contentIndex,a=>a?.type==="thinking"?a:{type:"thinking",thinking:""});case"thinking_delta":return h(a,c.contentIndex,a=>({type:"thinking",thinking:(a?.type==="thinking"?a.thinking:"")+(c.delta??"")}));case"thinking_end":return h(a,c.contentIndex,a=>({type:"thinking",thinking:c.content??(a?.type==="thinking"?a.thinking:"")}));case"toolcall_start":return h(a,c.contentIndex,a=>{let b=i(c);return a?.type==="toolCall"?{...a,...b.id?{toolCallId:b.id}:{},...b.toolName?{toolName:b.toolName}:{},rawInput:a.rawInput??""}:{type:"toolCall",toolCallId:b.id??"",toolName:b.toolName??"tool",input:{},rawInput:""}});case"toolcall_delta":return h(a,c.contentIndex,a=>{let b=i(c),d=a?.type==="toolCall"?a:{type:"toolCall",toolCallId:b.id??"",toolName:b.toolName??"tool",input:{}};return{...d,...b.id?{toolCallId:b.id}:{},...b.toolName?{toolName:b.toolName}:{},rawInput:(d.rawInput??"")+(c.delta??"")}});case"toolcall_end":return h(a,c.contentIndex,()=>({type:"toolCall",toolCallId:c.toolCall?.id??"",toolName:c.toolCall?.name??"tool",input:c.toolCall?.arguments??{}}));default:return a}case"end":case"reset":return f;default:return a}}function k(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function l(a){if("assistant"!==a.role)return null;let b=a.timestamp;return"number"!=typeof b?null:`assistant:${b}`}class m extends Error{constructor(a,b,c){super(a),this.status=b,this.code=c,this.name="AgentCommandError"}}async function n(a,b){let c=await fetch(`/api/agent/${encodeURIComponent(a)}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)}),d=await c.json().catch(()=>({}));if(!c.ok||d.error)throw new m(d.error??`HTTP ${c.status}`,c.status,d.code);return d.data}async function o(a,b,c){let d,e=new TextDecoder,f="",g=a=>{if(a.startsWith("id: ")){d=a.slice(4);return}if(!a.startsWith("data: "))return;let c=a.slice(6);if("[DONE]"!==c)try{b(c,d)}catch{}finally{d=void 0}},h=new Promise(a=>{c?.aborted?a():c?.addEventListener("abort",()=>a(),{once:!0})});for(;;){let b=await Promise.race([a.read(),h.then(()=>({done:!0,value:void 0}))]);if(b.done)break;let c=(f+=e.decode(b.value,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c))g(a)}if(f.trim())for(let a of f.split("\n"))g(a)}let p="__annovibeStreamSessions__",q="__annovibeStreamListeners__",r="__annovibeStreamErrorCallbacks__";function s(){let a=globalThis;return a[p]||(a[p]=new Map),a[p]}function t(){let a=globalThis;return a[r]||(a[r]=new Map),a[r]}function u(a){return{sessionId:a,phase:"idle",startedAt:null,lastEventAt:null,lastHeartbeatAt:null,reconnectCount:0,lastSyncReason:null,accumulatedText:"",toolCalls:[],toolResults:[],statusText:null,streamingMessage:null,isStreaming:!1,error:null}}function v(a,b){let c;for(let d of(!(c=globalThis)[q]&&(c[q]=new Map),c[q]).get(a)??[])try{d(b)}catch{}}function w(a){a.textThrottleTimer&&(clearTimeout(a.textThrottleTimer),a.textThrottleTimer=null),a.textDirty&&(a.textDirty=!1,y(a))}function x(a,b=!1){let c=Date.now();if(a.snapshot.lastEventAt=c,!b){a.textDirty=!0,a.textThrottleTimer||(a.textThrottleTimer=setTimeout(()=>{a.textThrottleTimer=null,a.textDirty&&(a.textDirty=!1,y(a))},100));return}w(a),y(a)}function y(a,b){let c=Date.now(),d=function(a){let b=[];for(let c of a.toolCalls.values())b.push({type:"toolCall",toolCallId:c.toolCallId,toolName:c.toolName,input:c.input??{}});let c=a.accumulatedText.trim();return c&&b.push({type:"text",text:c}),b}(a),e=(b??a.snapshot.phase)==="active";a.snapshot={...a.snapshot,phase:b??a.snapshot.phase,lastEventAt:c,accumulatedText:a.accumulatedText,toolCalls:[...a.toolCalls.values()],toolResults:[...a.toolResults.values()],statusText:e?function(a){if(a.activeToolId){let b=a.toolCalls.get(a.activeToolId);if(b){let a=Math.max(0,Math.floor((Date.now()-b.startedAt)/1e3));return`Running ${b.toolName||"tool"}… (${a}s)`}}return a.accumulatedText.trim()?"Generating response…":a.toolCalls.size>0?"Finishing tool results…":null}(a):a.snapshot.statusText,streamingMessage:e&&d.length>0?{role:"assistant",content:d}:null,isStreaming:e},v(a.snapshot.sessionId,{type:"snapshot-updated",snapshot:a.snapshot})}function z(a){A(a),a.idleCheckTimer=setInterval(()=>{if("connected"!==a.connectionState)return;let b=Math.max(a.snapshot.lastEventAt??0,a.snapshot.lastHeartbeatAt??0);if(Date.now()-b>=18e4){B(a),w(a);let b="Stream idle timeout — no activity for 180s.";a.snapshot={...a.snapshot,phase:"error",isStreaming:!1,streamingMessage:null,statusText:null,error:b},A(a),v(a.snapshot.sessionId,{type:"error",snapshot:a.snapshot});let c=t().get(a.snapshot.sessionId);if(c)try{c(a.snapshot.sessionId,b)}catch{}}},1e4)}function A(a){a.idleCheckTimer&&(clearInterval(a.idleCheckTimer),a.idleCheckTimer=null)}function B(a){a.toolProgressTimer&&(clearInterval(a.toolProgressTimer),a.toolProgressTimer=null)}function C(a){let b=s(),c=b.get(a);return c||(c={snapshot:u(a),accumulatedText:"",toolCalls:new Map,toolResults:new Map,toolProgressTimer:null,activeToolId:null,textThrottleTimer:null,textDirty:!1,connectionState:"idle",idleCheckTimer:null},b.set(a,c)),c}function D(a,b){let c=t();return c.set(a,b),()=>{c.get(a)===b&&c.delete(a)}}function E(a){let b=s(),c=b.get(a);c&&(B(c),A(c),w(c)),b.delete(a)}function F(a){let b=s().get(a);b&&(b.snapshot={...b.snapshot,reconnectCount:b.snapshot.reconnectCount+1,lastSyncReason:"sse-reconnect",lastEventAt:Date.now()},x(b,!0))}var G=c(31343);async function H(a,b){if(!b.length)return[];let c=await fetch("/api/images/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,images:b.map(a=>({data:a.data,mimeType:a.mimeType,name:a.name}))})}),d=await c.json().catch(()=>({}));if(!c.ok||d.error)throw Error(d.error??`Upload failed (HTTP ${c.status})`);return(d.uploaded??[]).map((a,c)=>({...a,previewUrl:b[c]?.previewUrl}))}c(81537);let I="__annovibeSessionMessageCache__";function J(){let a=globalThis;if(!a[I]){var b;let c={entries:new Map,cleanupTimer:null};a[I]=c,(b=c).cleanupTimer||(b.cleanupTimer=setInterval(()=>{let a=Date.now();for(let[c,d]of b.entries)a-d.loadedAt>72e5&&b.entries.delete(c)},6e4))}return a[I]}function K(a){let b=J(),c=b.entries.get(a);return c?Date.now()-c.loadedAt>72e5?(b.entries.delete(a),null):(c.loadedAt=Date.now(),{...c,messages:[...c.messages],entryIds:[...c.entryIds]}):null}function L(a,b,c,d,e){let f=J(),g=f.entries.get(a);if(!g)return;let h=new Set(g.entryIds),i=[],j=[];for(let a=0;a<b.length;a++){let d=c[a];d&&!h.has(d)&&(i.push(b[a]),j.push(d))}0!==i.length&&f.entries.set(a,{...g,messages:[...i,...g.messages],entryIds:[...j,...g.entryIds],hasMore:d,loadedMessagesCount:e,loadedAt:Date.now()})}function M(a){J().entries.delete(a)}var N=c(29947);function O(a){return{steering:a?.steering??[],followUp:a?.followUp??[]}}let P=[500,1500,3e3];function Q(a,b){return new DOMException(a,b)}function R(){return"u">typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,11)}-${Math.random().toString(36).slice(2,11)}`}function S(a,b){return a.trim()||0!==b?`text:${a}|images:${b}`:null}function T(a){return"string"==typeof a?S(a,0):Array.isArray(a)?S(a.filter(a=>!!a&&"object"==typeof a&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n"),a.filter(a=>!!a&&"object"==typeof a&&"image"===a.type).length):null}function U(a){let b=new Map;for(let c of a){let a="user"!==c.role?null:T(c.content);a&&b.set(a,(b.get(a)??0)+1)}return b}function V(a,b,c){return a.sessionId===b&&(!a.leafId||c.includes(a.leafId))}function W(a,b){let c=a.timestamp,d=b.timestamp;if("number"!=typeof c||"number"!=typeof d||c!==d||a.role!==b.role)return!1;try{return JSON.stringify(a)===JSON.stringify(b)}catch{return!1}}function X(a){let{session:b,newSessionCwd:c,onAgentEnd:g,onSessionCreated:h,onSessionForked:i,modelsRefreshKey:p,onBranchDataChange:q,chatInputRef:r}=a,t=null===b&&null!==c,[y,I]=(0,d.useState)(null),[X,Y]=(0,d.useState)(!t),[Z,$]=(0,d.useState)(null),[_,aa]=(0,d.useState)(null),[ab,ac]=(0,d.useState)([]),[ad,ae]=(0,d.useState)([]),[af,ag]=(0,d.useState)(0),[ah,ai]=(0,d.useState)(!1),[aj,ak]=(0,d.useState)(0),[al,am]=(0,d.useReducer)(j,f),[an,ao]=(0,d.useState)(!1),[ap,aq]=(0,d.useState)({}),[ar,as]=(0,d.useState)([]),[at,au]=(0,d.useState)({}),[av,aw]=(0,d.useState)({}),[ax,ay]=(0,d.useState)(null),[az,aA]=(0,d.useState)("full"),[aB,aC]=(0,d.useState)([...N.SN]),[aD,aE]=(0,d.useState)([]),[aF,aG]=(0,d.useState)("auto"),[aH,aI]=(0,d.useState)(null),[aJ,aK]=(0,d.useState)(null),[aL,aM]=(0,d.useState)(null),[aN,aO]=(0,d.useState)(null),[aP,aQ]=(0,d.useState)(null),[aR,aS]=(0,d.useState)(null),[aT,aU]=(0,d.useState)(!1),[aV,aW]=(0,d.useState)(null),[aX,aY]=(0,d.useState)(null),[aZ,a$]=(0,d.useState)(null),[a_,a0]=(0,d.useState)({steering:[],followUp:[]}),[a1,a2]=(0,d.useState)(null),a3=(0,d.useRef)(b?.id??null),a4=function({sessionIdRef:a,onEvent:b,onReconnect:c,reconnectBaseMs:e=1e3,reconnectMaxMs:f=3e4}){let g=(0,d.useRef)(null),h=(0,d.useRef)({onEvent:b,onReconnect:c});h.current={onEvent:b,onReconnect:c};let i=(0,d.useCallback)(()=>{g.current?.close(),g.current=null},[]),j=(0,d.useCallback)(()=>{let a=g.current;return!!a&&"closed"!==a.state&&"error"!==a.state},[]);return{connect:(0,d.useCallback)((b,c={})=>{g.current?.close(),g.current=null;let d=`/api/agent/${encodeURIComponent(b)}/events${c.replay?"?replay=1":""}`;return!function(a){let b=C(a);if("active"===b.snapshot.phase)return x(b,!0),z(b),b.snapshot;let c=Date.now();b.snapshot={...u(a),phase:"active",startedAt:c,lastEventAt:c,isStreaming:!0,streamingMessage:{role:"assistant",content:[]}},z(b),x(b,!0),b.snapshot}(b),new Promise((i,j)=>{let k=!1,l=!1,m=null,n=a=>{if(!k){if(k=!0,clearTimeout(p),a){m?.close(),g.current===m&&(g.current=null),j(a);return}i()}},p=setTimeout(()=>{c.requireConnected?n(Error("Timed out waiting for event stream connection")):n()},c.timeoutMs??3e4);g.current=m=function(a){let{url:b,onEvent:c,onStateChange:d,onFatalError:e,maxReconnectAttempts:f=1/0,reconnectBaseMs:g=1e3,reconnectMaxMs:h=3e4,autoReconnect:i=!0}=a,j="idle",k=new AbortController,l=0,m=null,n=null,p=!1,q=(a,b)=>{b&&(n=b),c(a,b)},r=a=>{j!==a&&(j=a,d?.(a))},s=()=>{null!==m&&(clearTimeout(m),m=null)},t=()=>{if(p)return;if(!i)return void r("error");if(l>=f){r("error"),e?.(Error(`Max reconnect attempts (${f}) reached`));return}let a=Math.min(h,g*2**l);l+=1,r("connecting"),m=setTimeout(()=>{m=null,u()},a)},u=async()=>{if(!p){s(),k=new AbortController,r("connecting");try{let a=await fetch(b,{signal:k.signal,headers:{Accept:"text/event-stream","Cache-Control":"no-cache",...n?{"Last-Event-ID":n}:{}}});if(!a.ok)throw Error(`HTTP ${a.status}: ${a.statusText}`);let c=a.body;if(!c)throw Error("Response has no readable body");let d=c.getReader();if(r("connected"),l=0,await o(d,q,k.signal),k.signal.aborted)try{await d.cancel()}catch{}d.releaseLock(),r("closed"),!p&&i&&t()}catch(a){if(p||a instanceof DOMException&&"AbortError"===a.name)return void r("closed");r("error"),i&&t()}}};return{get state(){return j},connect:()=>{p=!1,l=0,s(),u()},close:()=>{p=!0,s(),k.abort(),r("closed")},get abortController(){return k}}}({url:d,onEvent:c=>{try{let d=JSON.parse(c);if("connected"===d.type&&n(),a.current!==b)return;h.current.onEvent(d)}catch{}},onStateChange:a=>{!function(a,b){let c=s().get(a);if(!c)return;let d=c.connectionState;c.connectionState=b,"connected"===b&&"connected"!==d&&(c.snapshot={...c.snapshot,lastEventAt:Date.now(),lastHeartbeatAt:Date.now()},z(c)),"connected"!==b&&"connected"===d&&A(c)}(b,a),"connected"===a&&(l&&(F(b),h.current.onReconnect?.(b)),l=!0)},reconnectBaseMs:e,reconnectMaxMs:f}),m.connect()})},[e,f,a]),disconnect:i,isActive:j,readerRef:g}}({sessionIdRef:a3,onEvent:a=>bn.current?.(a),onReconnect:a=>bo.current?.(a,"sse_reconnected")}),{disconnect:a5,isActive:a6}=a4,a7=a4.readerRef,{statuses:a8,widgets:a9,dialog:ba,notices:bb,applyFromState:bc,handleEvent:bd,respond:be,dismissNotice:bf}=function({chatInputRef:a,sessionIdRef:b,onError:c,noticeTtlMs:e=8e3}){let[f,g]=(0,d.useState)([]),[h,i]=(0,d.useState)([]),[j,k]=(0,d.useState)(null),[l,m]=(0,d.useState)([]),o=(0,d.useRef)(new Set),p=(0,d.useCallback)(()=>{for(let a of o.current)clearTimeout(a);o.current.clear()},[]),q=(0,d.useCallback)((a,b)=>{let c={id:`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,message:a,type:b};m(a=>[...a,c].slice(-4));let d=setTimeout(()=>{o.current.delete(d),m(a=>a.filter(a=>a.id!==c.id))},e);o.current.add(d)},[e]),r=(0,d.useCallback)(a=>{a&&(Array.isArray(a.extensionStatuses)&&g(a.extensionStatuses),Array.isArray(a.extensionWidgets)&&i(a.extensionWidgets))},[]),s=(0,d.useCallback)(b=>{if("extension_error"===b.type)return q("string"==typeof b.error?b.error:"Extension command failed","error"),!0;if("extension_ui_request"!==b.type)return!1;let c="string"==typeof b.method?b.method:"";if("select"===c||"confirm"===c||"input"===c||"editor"===c)return k({id:String(b.id??""),method:c,title:"string"==typeof b.title?b.title:"",...Array.isArray(b.options)?{options:b.options}:{},..."string"==typeof b.message?{message:b.message}:{},..."string"==typeof b.placeholder?{placeholder:b.placeholder}:{},..."string"==typeof b.prefill?{prefill:b.prefill}:{}}),!0;if("notify"===c){let a="warning"===b.notifyType||"error"===b.notifyType?b.notifyType:"info";return q(String(b.message??""),a),!0}if("setStatus"===c){let a=String(b.statusKey??"");if(!a)return!0;let c="string"==typeof b.statusText?b.statusText:null;return g(b=>{let d=b.filter(b=>b.key!==a);return c?[...d,{key:a,text:c}]:d}),!0}if("setWidget"===c){let a=String(b.widgetKey??"");if(!a)return!0;let c=Array.isArray(b.widgetLines)?b.widgetLines.filter(a=>"string"==typeof a):null;return i(d=>{let e=d.filter(b=>b.key!==a);return c&&c.length>0?[...e,{key:a,lines:c,placement:"string"==typeof b.widgetPlacement?b.widgetPlacement:"aboveEditor"}]:e}),!0}return"dismiss"===c?k(a=>a?.id===b.id?null:a):"set_editor_text"===c&&"string"==typeof b.text?a?.current?.setText?.(b.text):"setTitle"===c&&"string"==typeof b.title&&(document.title=b.title),!0},[a,q]),t=(0,d.useCallback)(async(a,d)=>{let e=b.current;if(k(b=>b?.id===a?null:b),e)try{await n(e,{type:"extension_ui_response",id:a,...d})}catch(a){c(a instanceof Error?a.message:String(a))}},[c,b]);return{statuses:f,widgets:h,dialog:j,notices:l,applyFromState:r,handleEvent:s,respond:t,dismissNotice:(0,d.useCallback)(a=>{m(b=>b.filter(b=>b.id!==a))},[]),reset:(0,d.useCallback)(()=>{p(),g([]),i([]),k(null),m([])},[p])}}({chatInputRef:r,sessionIdRef:a3,onError:a2}),bg=(0,d.useRef)(!1),{live:bh,running:bi,isRunning:bj,begin:bk,finish:bl,handleEvent:bm}=function({onRunningChange:a,onDone:b,flushMs:c=60}={}){let[e,f]=(0,d.useState)(null),[g,h]=(0,d.useState)(!1),i=(0,d.useRef)(!1),j=(0,d.useRef)(""),k=(0,d.useRef)(null),l=(0,d.useRef)({onRunningChange:a,onDone:b});l.current={onRunningChange:a,onDone:b};let m=(0,d.useCallback)(()=>{k.current&&(clearTimeout(k.current),k.current=null)},[]),n=(0,d.useCallback)(a=>{m(),j.current="",i.current=!0,h(!0),f({command:a,output:""}),l.current.onRunningChange?.(!0,a)},[m]),o=(0,d.useCallback)(()=>{m(),j.current="",i.current=!1,h(!1),f(null),l.current.onRunningChange?.(!1)},[m]);return{live:e,running:g,isRunning:(0,d.useCallback)(()=>i.current,[]),begin:n,finish:o,handleEvent:(0,d.useCallback)(a=>{if("bash_execution_start"===a.type){let b=String(a.command??"");return m(),j.current="",i.current=!0,h(!0),f({command:b,output:""}),l.current.onRunningChange?.(!0,b),!0}if("bash_execution_update"===a.type){let b="string"==typeof a.chunk?a.chunk:"";return!b||(j.current+=b,k.current||(k.current=setTimeout(()=>{k.current=null;let a=j.current;j.current="",a&&f(b=>b?{...b,output:b.output+a}:b)},c)),!0)}return"bash_done"===a.type&&(m(),j.current="",i.current=!1,h(!1),f(null),l.current.onRunningChange?.(!1),l.current.onDone?.(),!0)},[m,c])}}({onRunningChange:(a,b)=>{bg.current=a,ao(a),a$(a?{kind:"running_tools",tools:[{id:"bash",name:"bash",args:b}]}:null)}}),bn=(0,d.useRef)(null),bo=(0,d.useRef)(null),bp=(0,d.useRef)(null),bq=(0,d.useRef)(!1),br=(0,d.useRef)(null),bs=(0,d.useRef)(!1),bt=(0,d.useRef)(null),bu=(0,d.useRef)(null),bv=(0,d.useRef)(new Map),bw=(0,d.useRef)(new Map),bx=(0,d.useRef)(new Map),by=(0,d.useRef)(new Map),bz=(0,d.useRef)(null),bA=(0,d.useRef)([]),bB=(0,d.useRef)(null),bC=(0,d.useRef)(0),bD=(0,d.useRef)(!1),bE=(0,d.useRef)(0),bF=(0,d.useRef)(!1);(0,d.useRef)(!1),(0,d.useRef)(0);let bG=(0,d.useRef)(null),bH=(0,d.useRef)(null),bI=(0,d.useRef)(0);(0,d.useRef)(!1);let bJ=a.setNewSessionModel??ay,bK=a.setToolPreset??aA,bL=a.setMemoryTools??aC,bM=aP??y?.context.model??aR??null,bN=t?ax:bM,bO=(0,d.useCallback)(()=>(0,N.tE)(az,aB),[aB,az]),bP=(0,d.useCallback)(a=>a?.length?a.map((a,b)=>{let c=`Attachment ${b+1}: ${a.fileName} (${a.mimeType||"application/octet-stream"}, ${a.size} bytes)`;if(a.extractedText){let b=a.truncated?"\n[The extracted text was truncated before sending.]":"";return`${c}
2
+ ${b}
3
+ ${a.extractedText}`.trim()}return`${c}
4
+ [Text extraction unavailable: ${a.extractionError??"unsupported file type"}]`}).join("\n\n---\n\n"):"",[]),bQ=(0,d.useCallback)(async a=>{let b=await fetch(`/api/agent/${encodeURIComponent(a)}/prepare`,{method:"POST"});if(!b.ok)throw Error((await b.json().catch(()=>({}))).error??`Failed to prepare session (HTTP ${b.status})`)},[]),bR=(()=>{let a={input:0,output:0,cacheRead:0,cacheWrite:0};for(let b of ab){if("assistant"!==b.role)continue;let c=b.usage;c&&(a.input+=c.input??0,a.output+=c.output??0,a.cacheRead+=c.cacheRead??0,a.cacheWrite+=c.cacheWrite??0)}return a.input+a.output+a.cacheRead+a.cacheWrite>0?{tokens:a}:null})(),bS=(0,d.useRef)(!1),bT=(0,d.useCallback)(async()=>{let a=a3.current;if(!a||bS.current||bF.current)return;bS.current=!0,bD.current=!0;let b=0,c=K(a);b=c?c.loadedMessagesCount:50;try{for(;;)try{let c=await fetch(`/api/sessions/${encodeURIComponent(a)}?limit=100&offset=${b}&deferThinking=1&deferMedia=1`);if(!c.ok)break;let d=await c.json();if(a3.current!==a)break;let e=d.context.messages,f=d.context.entryIds??[];if(0===e.length)break;ac(a=>[...e,...a]),ae(a=>{let b=[...f,...a];return bA.current=b,b});let g=b+e.length;if(ak(g),bE.current=g,ai(d.hasMore??!1),L(a,e,f,d.hasMore??!1,g),b=g,!d.hasMore)break;await new Promise(a=>setTimeout(a,800))}catch{break}}finally{bS.current=!1,bF.current=!0,bD.current=!1}},[]),bU=(0,d.useCallback)(async(a,b=!1,c=!1,d=!1)=>{var e;let f=null;try{if(b&&Y(!0),!c&&!bg.current&&!d){let c=K(a);if(c)return ag(c.totalMessages),ai(c.hasMore),ak(c.loadedMessagesCount),ac(c.messages),bA.current=c.entryIds,ae(c.entryIds),bz.current=c.leafId,aa(c.leafId),bE.current=c.loadedMessagesCount,b&&Y(!1),c.hasMore&&!bF.current&&setTimeout(()=>{bT()},1500),null}let g=c?`/api/sessions/${encodeURIComponent(a)}?includeState&deferThinking=1&deferMedia=1`:`/api/sessions/${encodeURIComponent(a)}?limit=50&offset=0&deferThinking=1&deferMedia=1`,h=bH.current;if(h?.sid===a&&!b)return null;h?.controller.abort(Q("Session load superseded","AbortError"));let i=new AbortController;f=i,bH.current={sid:a,controller:i};let j=setTimeout(()=>{i.abort(Q("Session load timed out after 30 seconds","TimeoutError"))},3e4),k=await fetch(g,{signal:i.signal}).finally(()=>clearTimeout(j));if(a3.current&&a3.current!==a)return null;if(404===k.status)return b&&(I(null),bz.current=null,aa(null),ac([]),$(null)),null;if(!k.ok)throw Error(`HTTP ${k.status}`);let m=await k.json();c?(ag(m.totalMessages??m.context.messages.length),ai(!1)):(ag(m.totalMessages??m.context.messages.length),ai(m.hasMore??!1)),ak(m.context.messages.length),I(m),bz.current=m.leafId,aa(m.leafId);let n=m.context.messages,o=U(n),p=new Map,q=Date.now();for(let[b,c]of bv.current)if(c.sessionId===a){if(q-c.createdAt>12e4){bv.current.delete(b);continue}if(c.confirmKey){let a=o.get(c.confirmKey)??0,d=p.get(c.confirmKey)??0;a-d>c.confirmCountAtCreate&&(bv.current.delete(b),p.set(c.confirmKey,d+1))}}bw.current=o;let r=m.context.entryIds??[],s=[...bv.current.values()].filter(b=>V(b,a,r)).map(a=>a.message),t=s.length>0?[...n,...s]:n,u=function(a,b,c){if(0===b.size)return a;let d=!1,e=a.map(a=>{let e=l(a);if(!e)return a;let f=b.get(e);return f?c-f.observedAt>5e3||function(a,b){let c=a.timestamp,d=b.timestamp;if("number"!=typeof c||"number"!=typeof d||c!==d||a.role!==b.role)return!1;try{return JSON.stringify(a)===JSON.stringify(b)}catch{return!1}}(f.message,a)?(b.delete(e),a):(d=!0,f.message):a});return d?e:a}(t,by.current,Date.now()),v=bx.current.get(a);if(v){for(let[a,b]of v)q-b>12e4&&v.delete(a);0===v.size&&bx.current.delete(a)}let w=v?.size?v:null,x=w?new Set(r):null,y=!!w&&!!x&&[...w.keys()].some(a=>!x.has(a));w&&x&&!y&&bx.current.delete(a);let z=u.length;return!c&&(bE.current>z||y)?(ag(m.totalMessages??m.context.messages.length),ai(m.hasMore??!1)):(ac(a=>(function(a,b){if(a.length!==b.length)return b;let c=!1,d=b.map((b,d)=>W(a[d],b)?a[d]:(c=!0,b));return c?d:a})(a,u)),bA.current=r,ae(r),c?bE.current=z:bE.current=Math.max(bE.current,z),e={sessionId:a,leafId:m.leafId,messages:u,entryIds:r,totalMessages:m.totalMessages??m.context.messages.length,hasMore:!c&&(m.hasMore??!1),loadedMessagesCount:m.context.messages.length},J().entries.set(a,{...e,loadedAt:Date.now()})),aQ(a=>{if(!a)return null;let b=m.context.model;return b?.provider===a.provider&&b.modelId===a.modelId?null:a}),$(null),!m.agentState?.state?.thinkingLevel&&m.context.thinkingLevel&&"off"!==m.context.thinkingLevel&&aG(m.context.thinkingLevel),m.agentState??null}catch(a){if(a instanceof DOMException&&("AbortError"===a.name||"TimeoutError"===a.name)||a instanceof Error&&/aborted without reason|AbortError|Session load (?:timed out|superseded)/i.test(a.message))return null;return $(String(a)),null}finally{f&&bH.current?.controller===f&&(bH.current=null),b&&Y(!1)}},[bT]),bV=(0,d.useRef)(!1),bW=(0,d.useCallback)(async()=>{if(bV.current)return;bV.current=!0;let a=a3.current;if(!a){bV.current=!1;return}try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}?limit=50&offset=${aj}&deferThinking=1&deferMedia=1`);if(!b.ok)return;let c=await b.json(),d=c.context.messages,e=c.context.entryIds??[];ac(a=>[...d,...a]),ae(a=>{let b=[...e,...a];return bA.current=b,b}),ak(a=>a+d.length),ai(c.hasMore??!1),L(a,d,e,c.hasMore??!1,aj+d.length)}catch{}finally{bV.current=!1}},[aj]),bX=(0,d.useCallback)(async a=>{let b=a3.current;if(!b)return[];let c=bz.current,d=c?`?leafId=${encodeURIComponent(c)}`:"";try{let c=await fetch(`/api/sessions/${encodeURIComponent(b)}/shadowed${d}`);if(!c.ok)return[];let e=await c.json(),f=e.groups?.find(b=>b.compactionEntryId===a);return f?.messages??[]}catch{return[]}},[]),bY=(0,d.useCallback)(async(a,b)=>{try{let c=b?`/api/sessions/${encodeURIComponent(a)}/context?leafId=${encodeURIComponent(b)}&deferThinking=1&deferMedia=1`:`/api/sessions/${encodeURIComponent(a)}/context?deferThinking=1&deferMedia=1`,d=await fetch(c);if(!d.ok)throw Error(`HTTP ${d.status}`);let e=await d.json(),f=e.context.messages,g=e.context.entryIds??[],h=U(f),i=new Map,j=Date.now();for(let[b,c]of bv.current)if(c.sessionId===a){if(j-c.createdAt>12e4){bv.current.delete(b);continue}if(c.confirmKey){let a=h.get(c.confirmKey)??0,d=i.get(c.confirmKey)??0;a-d>c.confirmCountAtCreate&&(bv.current.delete(b),i.set(c.confirmKey,d+1))}}bw.current=h;let k=[...bv.current.values()].filter(b=>V(b,a,g)).map(a=>a.message);ac(k.length>0?[...f,...k]:f),bA.current=g,ae(g)}catch(a){console.error("Failed to load context:",a)}},[]),bZ=(0,d.useCallback)(async a=>{try{let b=await n(a,{type:"get_tools"});b&&(bK((0,N.ES)(b)),bL((0,N.IB)(b)))}catch(a){console.error("Failed to load tools:",a)}},[bL,bK]),b$=(0,d.useCallback)(async a=>{try{let b=await n(a,{type:"get_commands"});aE(Array.isArray(b?.commands)?b.commands:[])}catch{aE([])}},[]),b_=a4.connect,b0=(0,d.useCallback)(async(a,b="manual")=>{if(!a||a3.current!==a)return;let c=bC.current;try{let b=await fetch(`/api/agent/${encodeURIComponent(a)}`),e=await b.json().catch(()=>({}));if(a3.current!==a||bC.current!==c)return;if(e.running){var d;bg.current=!0,ao(!0),a$((d=e.state,d?.phase==="running_tools"?{kind:"running_tools",tools:(d.activeTools??[]).map(a=>({id:a.id,name:a.name}))}:d?.phase==="streaming"||d?.phase==="compacting"||d?.phase==="idle"?null:{kind:"waiting_model"})),a6()||(F(a),b_(a,{replay:!0}))}else bg.current=!1,a5(),E(a),ao(!1),a$(null),aI(null),am({type:"end"}),M(a),await bU(a,!1,!1,!0);e.state?.contextUsage!==void 0&&aK(e.state.contextUsage??null),e.state?.systemPrompt!==void 0&&aM(e.state.systemPrompt??null),e.state?.isCompacting!==void 0&&aU(e.state.isCompacting),e.state?.thinkingLevel!==void 0&&aG(e.state.thinkingLevel??"auto"),e.state?.queuedMessages!==void 0&&a0(O(e.state.queuedMessages)),bc(e.state),e.state?.isBashRunning&&bk("")}catch{}},[b_,bU,bc,bk,a5,a6]);bn.current=(0,d.useCallback)(a=>{let b=a3.current;switch(b&&function(a,b){let c=C(a),d=Date.now();switch(b.type){case"agent_start":if("active"===c.snapshot.phase)return x(c,!0),c.snapshot;return B(c),c.accumulatedText="",c.toolCalls.clear(),c.toolResults.clear(),c.activeToolId=null,c.snapshot={...u(a),phase:"active",startedAt:d,lastEventAt:d,isStreaming:!0,streamingMessage:{role:"assistant",content:[]}},z(c),x(c,!0),c.snapshot;case"message_update":{let a=b.message;if(a?.role==="assistant"){let b=a.content;for(let a of Array.isArray(b)?b:[])"object"==typeof a&&null!==a&&"type"in a&&("text"===a.type?c.accumulatedText=a.text??"":"toolCall"===a.type&&a.toolCallId&&!c.toolCalls.has(a.toolCallId)&&c.toolCalls.set(a.toolCallId,{...a,startedAt:d}))}else{let a=b.assistantMessageEvent;a?.type==="text_delta"?c.accumulatedText+=a.delta??"":a?.type==="text_end"?c.accumulatedText=a.content??c.accumulatedText:(a?.type==="toolcall_start"||a?.type==="toolcall_delta")&&a.id&&!c.toolCalls.has(a.id)&&c.toolCalls.set(a.id,{type:"toolCall",toolCallId:a.id,toolName:a.toolName??"tool",input:{},startedAt:d})}return x(c,!1),c.snapshot}case"tool_execution_start":{let a="string"==typeof b.toolCallId?b.toolCallId:"",e="string"==typeof b.toolName?b.toolName:"tool",f=b.input??{};if(!a)return c.snapshot;let g=c.toolCalls.get(a);return c.toolCalls.set(a,{type:"toolCall",toolCallId:a,toolName:e,input:g&&Object.keys(g.input).length>0?g.input:f,startedAt:g?.startedAt??d}),c.activeToolId=a,B(c),c.activeToolId&&(c.toolProgressTimer=setInterval(()=>x(c,!0),1e3)),x(c,!0),c.snapshot}case"tool_execution_end":{let a="string"==typeof b.toolCallId?b.toolCallId:"",e="string"==typeof b.toolName?b.toolName:"tool",f="string"==typeof b.result?b.result:JSON.stringify(b.result??"");if(a){let g=c.toolCalls.get(a);g&&c.toolCalls.set(a,{...g,endedAt:d}),c.toolResults.set(a,{role:"toolResult",toolCallId:a,toolName:e,content:[{type:"text",text:f}],isError:!!b.isError,timestamp:d}),c.activeToolId===a&&(c.activeToolId=null,B(c))}return x(c,!0),c.snapshot}case"message_end":return w(c),x(c,!0),c.snapshot;case"agent_end":{if(w(c),B(c),c.activeToolId=null,!0===b.willRetry)return c.accumulatedText="",c.toolCalls.clear(),c.toolResults.clear(),c.snapshot={...c.snapshot,phase:"active",lastEventAt:d,accumulatedText:"",toolCalls:[],toolResults:[],statusText:null,streamingMessage:null,isStreaming:!0,error:null},z(c),v(a,{type:"snapshot-updated",snapshot:c.snapshot}),c.snapshot;A(c);let e="string"==typeof b.error?b.error:null;return c.snapshot={...c.snapshot,phase:e?"error":"completed",isStreaming:!1,streamingMessage:null,statusText:null,error:e},v(a,e?{type:"error",snapshot:c.snapshot}:{type:"completed",snapshot:c.snapshot}),c.snapshot}case"heartbeat":return c.snapshot={...c.snapshot,lastHeartbeatAt:d},c.snapshot;default:return c.snapshot}}(b,a),"heartbeat"!==a.type&&(bI.current=Date.now()),a.type){case"prompt_admitted":case"agent_start":a2(null),bg.current=!0,ao(!0),a$({kind:"waiting_model"}),am({type:"start"});break;case"agent_end":if(!0===a.willRetry){bg.current=!0,ao(!0),a$({kind:"waiting_model"});break}if(bg.current=!1,ao(!1),a$(null),aI(null),am({type:"end"}),b){bG.current&&clearTimeout(bG.current);let a=bC.current,c=0,d=async()=>{if(a3.current!==b||bg.current||bC.current!==a)return;M(b),await bU(b,!1,!1,!0);let e=P[c++];void 0===e||a3.current!==b||bg.current||bC.current!==a||(bG.current=setTimeout(()=>{bG.current=null,d()},e))};d(),fetch(`/api/agent/${encodeURIComponent(b)}`).then(a=>a.json()).then(a=>{a.state?.contextUsage!==void 0&&aK(a.state.contextUsage??null),a.state?.systemPrompt!==void 0&&aM(a.state.systemPrompt??null),a.state?.isCompacting!==void 0&&aU(a.state.isCompacting)}).catch(()=>{})}g?.();break;case"agent_settled":a$(null),aI(null),bg.current&&(bg.current=!1,ao(!1),am({type:"end"}));break;case"message_start":case"message_update":{let b=a.message;if(b?.role==="user")break;bg.current||(bg.current=!0,ao(!0),a$({kind:"waiting_model"}));let c=a.assistantMessageEvent;b?.role==="assistant"?am({type:"snapshot",message:e(b)}):c&&am({type:"delta",event:c}),a$(null);break}case"message_end":{let c=a.message,d="string"==typeof a.__entryId?a.__entryId:null,f=bg.current;if(c&&"user"!==c.role){"assistant"===c.role&&"error"===c.stopReason&&c.errorMessage?.trim()&&a2(`Model response failed: ${c.errorMessage.trim()}`);let a=e(c),f=l(a);if(f&&by.current.set(f,{observedAt:Date.now(),message:a}),!(d&&bA.current.includes(d))){if(b&&d){let a=bx.current.get(b)??new Map;a.set(d,Date.now()),bx.current.set(b,a)}ac(b=>b.some(b=>W(b,a))?b:[...b,a]),d&&ae(a=>{if(a.includes(d))return a;let b=[...a,d];return bA.current=b,b})}}f&&(am({type:"reset"}),a$({kind:"waiting_model"}));break}case"replay_gap":b&&(M(b),bU(b,!1,!1,!0));break;case"prompt_done":if(!bg.current)break;b0(a3.current??"","prompt_done");break;case"prompt_error":{let c="string"==typeof a.error&&a.error.trim()?a.error.trim():"The model request failed before producing a response.";if(bg.current=!1,ao(!1),a$(null),aI(null),am({type:"end"}),a5(),b){for(let[a,c]of(E(b),bv.current))c.sessionId===b&&"prompt"===c.kind&&bv.current.delete(a);M(b),bU(b,!1,!1,!0)}a2(`Model request failed: ${c}`),g?.();break}case"tool_execution_start":{let b=a.toolCallId,c=a.toolName,d=a.args,e="bash"===c&&"string"==typeof d?.command?d.command:void 0;a$(a=>{let d=a?.kind==="running_tools"?[...a.tools]:[];return d.some(a=>a.id===b)||d.push({id:b,name:c,args:e}),{kind:"running_tools",tools:d}});break}case"tool_execution_update":{let b=a.toolCallId,c=a.toolName,d=function(a){if(!k(a))return null;let b=a.content;if(!Array.isArray(b))return null;let c=b.filter(a=>k(a)&&"text"===a.type&&"string"==typeof a.text).map(a=>a.text).join("\n").split(/\r?\n/),d="";for(let a=c.length-1;a>=0&&!(d=c[a].trim());a-=1);if(!d)return null;let e=d.replace(/\s+/g," ");return e.length<=500?e:`...${e.slice(-497)}`}(a.partialResult);if(!b)break;a$(a=>{let e=a?.kind==="running_tools"?[...a.tools]:[],f=e.find(a=>a.id===b),g={id:b,name:c||f?.name||"tool",args:f?.args,progress:d??f?.progress};return{kind:"running_tools",tools:[...e.filter(a=>a.id!==b),g]}});break}case"tool_execution_end":{let b=a.toolCallId;a$(a=>{if(a?.kind!=="running_tools")return a;let c=a.tools.filter(a=>a.id!==b);return 0===c.length?{kind:"waiting_model"}:{kind:"running_tools",tools:c}});break}case"extension_ui_request":case"extension_error":bd(a);break;case"bash_execution_start":case"bash_execution_update":bm(a);break;case"bash_done":{bm(a);let b=a3.current;b&&(M(b),bU(b,!1,!1,!0));break}case"queue_update":a0(O({steering:Array.isArray(a.steering)?a.steering:[],followUp:Array.isArray(a.followUp)?a.followUp:[]}));break;case"auto_retry_start":a2(null),bg.current=!0,ao(!0),a$({kind:"waiting_model"}),aI({attempt:a.attempt,maxAttempts:a.maxAttempts,errorMessage:a.errorMessage});break;case"auto_retry_end":aI(null),!1===a.success&&"string"==typeof a.finalError&&a.finalError.trim()?a2(`Model response failed after retries: ${a.finalError.trim()}`):!0===a.success&&a2(null);break;case"auto_compaction_start":case"compaction_start":aU(!0),aW(null);break;case"auto_compaction_end":case"compaction_end":aU(!1),a.errorMessage?aW(a.errorMessage):!a.aborted&&a3.current&&bU(a3.current)}},[bU,g,b0,bd,bm,a5]);let b1=(0,d.useCallback)(async(a,d,e,f)=>{if(!a.trim()&&!d?.length&&!e?.length||an)return;bC.current+=1;let g=bP(e),i=a.trim()?g?`${a}
5
+
6
+ Attached document text:
7
+
8
+ ${g}`:a:g?`Attached document text:
9
+
10
+ ${g}`:"",j=[],k=t?c:b?.cwd??y?.info?.cwd;if(d?.length&&k)try{j=await H(k,d)}catch(a){a2(a instanceof Error?a.message:String(a));return}let l=j.length?j.map(a=>{var b;return{type:"image",path:a.path,mimeType:a.mimeType,name:a.name,source:{type:"url",url:(b=a.path,`/api/files/${(0,G.HG)(b)}?type=read`),media_type:a.mimeType}}}):d?.map(a=>({type:"image",source:{type:"base64",media_type:a.mimeType,data:a.data}})),o={role:"user",content:l?.length?[...i.trim()?[{type:"text",text:i}]:[],...l]:i,timestamp:Date.now()},p=R(),q=t?null:b?.id??null;q&&M(q);let s=bz.current,u=T(o.content);bv.current.set(p,{localId:p,sessionId:q??"__new__",leafId:s,message:o,createdAt:Date.now(),kind:"prompt",confirmKey:u,confirmCountAtCreate:t?0:u?bw.current.get(u)??0:0}),ac(a=>[...a,o]),a2(null),bg.current=!0,ao(!0),a$({kind:"waiting_model"}),am({type:"start"}),bs.current=!0;let v=ar.find(a=>a.provider===bM?.provider&&a.id===bM?.modelId)?.input,w=!v||0===v.length||v.includes("image")?d?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0;try{if(t&&c){ax&&aS(ax);let b=f??bO(),d=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,type:"prompt",message:i,toolNames:b,deferPrompt:!0,...w?.length?{images:w}:{},...ax?{provider:ax.provider,modelId:ax.modelId}:{},..."auto"!==aF?{thinkingLevel:aF}:{}})}),e=await d.json().catch(()=>({}));if(!d.ok||e.error||!e.sessionId)throw Error(e.error??`HTTP ${d.status}`);let g=e.sessionId;a3.current=g;let j=bv.current.get(p);j&&(j.sessionId=g),bp.current?.(),bp.current=D(g,()=>{a3.current===g&&(ao(!1),a$(null))}),bB.current=g,await b_(g,{requireConnected:!0,timeoutMs:1e4}),await n(g,{type:"prompt",message:i,toolNames:b,...w?.length?{images:w}:{}}),h?.({id:g,path:"",cwd:c,name:void 0,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:1,firstMessage:a})}else if(b){let a=f??bO();await bQ(b.id),bp.current?.(),bp.current=D(b.id,()=>{a3.current===b.id&&(ao(!1),a$(null))}),await b_(b.id,{requireConnected:!0,timeoutMs:1e4}),await n(b.id,{type:"prompt",message:i,toolNames:a,leafId:s,...bM?{provider:bM.provider,modelId:bM.modelId}:{},..."auto"!==aF?{thinkingLevel:aF}:{},...w?.length?{images:w}:{}})}}catch(c){let b=a3.current;if(bv.current.delete(p),ac(a=>a.filter(a=>a!==o)),c instanceof m&&(409===c.status||"SESSION_BUSY"===c.code)){a2("This session is already running in another tab. Showing that active run instead."),bg.current=!0,ao(!0),a$({kind:"waiting_model"}),am({type:"start"}),b&&(a5(),F(b),b_(b,{replay:!0}),bo.current?.(b,"prompt_conflict"));return}if(console.error("Failed to send message:",c),t&&a3.current){let a=a3.current;a3.current=null,bB.current=null,fetch(`/api/sessions/${encodeURIComponent(a)}`,{method:"DELETE"}).catch(()=>{})}r?.current&&a.trim()&&r.current.insertIfEmpty(a),r?.current&&d?.length&&r.current.addBase64Images?.(d.map(({data:a,mimeType:b})=>({data:a,mimeType:b}))),a2(c instanceof Error?c.message:String(c)),a5(),b&&E(b),bg.current=!1,ao(!1),a$(null),am({type:"end"})}},[t,c,ax,bO,aF,b,y?.info?.cwd,an,b_,h,bP,ar,bM,bQ,r,a5]),b2=(0,d.useCallback)(async()=>{let a=a3.current;if(!a)return;let b=bj();bg.current=!1,bl(),a2(null),ao(!1),a$(null),am({type:"end"}),a5(),E(a),M(a);try{await n(a,{type:b?"abort_bash":"abort"}),await bU(a,!1,!1,!0)}catch(b){console.error("Failed to abort:",b),await bU(a,!1,!1,!0)}finally{b&&bl()}},[bl,bj,bU,a5]),b3=(0,d.useCallback)(async(a,b)=>{let c=a3.current,d=a.trim();if(c&&d){a2(null),bk(d);try{await n(c,{type:"bash",command:d,excludeFromContext:b})}catch(a){a2(a instanceof Error?a.message:String(a))}finally{bl(),M(c),await bU(c,!1,!1,!0)}}},[bk,bl,bU]),b4=(0,d.useCallback)(async a=>{let b=a3.current;if(b){aO(a);try{let{cancelled:c,newSessionId:d}=await n(b,{type:"fork",entryId:a})??{};!c&&d&&i?.(d)}catch(a){console.error("Fork failed:",a)}finally{aO(null)}}},[i]),b5=(0,d.useCallback)(async a=>{let d=a3.current,e=y?.info?.cwd??b?.cwd??c??null;if(!d||!e)return{ok:!1,error:"No active session to fork"};if(bg.current)return{ok:!1,error:"Agent is still running"};try{let b=bO(),c=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,type:"prompt",parentSessionId:d,deferPrompt:!0,toolNames:b,...bM?{provider:bM.provider,modelId:bM.modelId}:{},..."auto"!==aF?{thinkingLevel:aF}:{}})}),f=await c.json().catch(()=>({}));if(!c.ok||f.error||!f.sessionId)return{ok:!1,error:f.error??`HTTP ${c.status}`};let g=f.sessionId;try{await n(g,{type:"append_message",message:a,customType:"fork_handoff",display:!0})}catch{}return h?.({id:g,path:"",cwd:e,created:new Date().toISOString(),modified:new Date().toISOString(),messageCount:1,firstMessage:a.slice(0,120),parentSessionId:d}),{ok:!0}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},[y?.info?.cwd,b?.cwd,c,bM,aF,bO,h]),b6=(0,d.useCallback)(async a=>{let b=a3.current;b&&(bx.current.delete(b),M(b),bz.current=a,aa(a),await bY(b,a))},[bY]);(0,d.useCallback)(async a=>{bz.current=a,aa(a);let b=a3.current;b&&(bx.current.delete(b),M(b),await bY(b,a))},[bY]);let b7=(0,d.useCallback)(async(a,b)=>{if(t)return void bJ({provider:a,modelId:b});let c=a3.current;if(c)try{var d;a2(null);let e=await n(c,{type:"set_model",provider:a,modelId:b}),f={provider:e.provider,modelId:e.id};e.thinkingLevel&&(d=e.thinkingLevel,"auto"===d||"off"===d||"minimal"===d||"low"===d||"medium"===d||"high"===d||"xhigh"===d)&&aG(e.thinkingLevel),aQ(f),I(a=>a?{...a,context:{...a.context,model:f}}:a)}catch(b){let a=b instanceof Error?b.message:String(b);console.error("Failed to set model:",b),a2(a)}},[t,bJ]),b8=(0,d.useCallback)(async()=>{let a=a3.current;if(a&&!aT){aU(!0),aW(null),aY(null);try{let b=await n(a,{type:"compact"});b?.reducedBy!=null&&aY(`Compacted ~${b.tokensBefore??"?"} → ~${b.tokensAfter??"?"} tokens (−${b.reducedBy})`),await bU(a,!0)}catch(a){aW(a instanceof Error?a.message:String(a))}finally{aU(!1)}}},[aT,bU]),b9=(0,d.useCallback)(async(a,b,c)=>{let d=a3.current;if(!d)return;M(d);let e=bP(c),f=a.trim()?e?`${a}
11
+
12
+ Attached document text:
13
+
14
+ ${e}`:a:e?`Attached document text:
15
+
16
+ ${e}`:"",g=ar.find(a=>a.provider===bM?.provider&&a.id===bM?.modelId)?.input,h=!g||0===g.length||g.includes("image")?b?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,i={role:"user",content:`[steer] ${f}`,timestamp:Date.now()},j=R(),k=S(f,h?.length??0);bv.current.set(j,{localId:j,sessionId:d,leafId:bz.current,message:i,createdAt:Date.now(),kind:"steer",confirmKey:k,confirmCountAtCreate:k?bw.current.get(k)??0:0}),ac(a=>[...a,i]);try{await n(d,{type:"steer",message:f,...h?.length?{images:h}:{}})}catch(a){bv.current.delete(j),console.error("Failed to steer:",a)}},[bP,ar,bM]),ca=(0,d.useCallback)(async(a,b,c)=>{let d=a3.current;if(!d)return;M(d);let e=bP(c),f=a.trim()?e?`${a}
17
+
18
+ Attached document text:
19
+
20
+ ${e}`:a:e?`Attached document text:
21
+
22
+ ${e}`:"",g=ar.find(a=>a.provider===bM?.provider&&a.id===bM?.modelId)?.input,h=!g||0===g.length||g.includes("image")?b?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,i={role:"user",content:f,timestamp:Date.now()},j=R(),k=S(f,h?.length??0);bv.current.set(j,{localId:j,sessionId:d,leafId:bz.current,message:i,createdAt:Date.now(),kind:"follow_up",confirmKey:k,confirmCountAtCreate:k?bw.current.get(k)??0:0}),ac(a=>[...a,i]);try{await n(d,{type:"follow_up",message:f,...h?.length?{images:h}:{}})}catch(a){bv.current.delete(j),console.error("Failed to follow up:",a)}},[bP,ar,bM]),cb=(0,d.useCallback)(async()=>{let a=a3.current;if(a)try{await n(a,{type:"abort_compaction"})}catch(a){console.error("Failed to abort compaction:",a)}},[]),cc=(0,d.useCallback)(async a=>{if(aG(a),"auto"===a)return;let b=a3.current;if(b)try{await n(b,{type:"set_thinking_level",level:a})}catch(a){console.error("Failed to set thinking level:",a)}},[]),cd=(0,d.useCallback)(async a=>{bK(a);let b=(0,N.tE)(a,aB),c=a3.current;if(c)try{await n(c,{type:"set_tools",toolNames:b})}catch(a){console.error("Failed to set tools:",a)}},[aB,bK]),ce=(0,d.useCallback)(async a=>{bL(a);let b=(0,N.tE)(az,a),c=a3.current;if(c)try{await n(c,{type:"set_tools",toolNames:b})}catch(a){console.error("Failed to set memory tools:",a)}},[bL,az]);(0,d.useCallback)((a="smooth")=>{bt.current?.scrollIntoView({behavior:a})},[]),(0,d.useCallback)(()=>{let a=bu.current,b=br.current;if(!a||!b)return;let c=b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop;a.scrollTo({top:c-16,behavior:"smooth"})},[]);let cf=(0,d.useCallback)(async()=>{let a=a3.current;if(a)try{await n(a,{type:"clear_queue"}),a0({steering:[],followUp:[]})}catch(a){a2(a instanceof Error?a.message:String(a))}},[]);return{data:y,loading:X,error:Z,activeLeafId:_,messages:ab,entryIds:ad,streamState:al,agentRunning:an,modelNames:ap,modelList:ar,modelThinkingLevels:at,modelThinkingLevelMaps:av,newSessionModel:ax,toolPreset:az,memoryTools:aB,thinkingLevel:aF,retryInfo:aH,queuedMessages:a_,extensionStatuses:a8,extensionWidgets:a9,extensionDialog:ba,extensionNotices:bb,bashLive:bh,bashRunning:bi,contextUsage:aJ,systemPrompt:aL,forkingEntryId:aN,isCompacting:aT,compactError:aV,compactInfo:aX,currentModel:bM,displayModel:bN,sessionStats:bR,agentPhase:aZ,agentError:a1,isNew:t,sessionIdRef:a3,sseReaderRef:a7,messagesEndRef:bt,scrollContainerRef:bu,lastUserMsgRef:br,pendingScrollToUserRef:bs,initialScrollDoneRef:bq,handleSend:b1,handleAbort:b2,handleFork:b4,handleNavigate:b6,handleModelChange:b7,handleCompact:b8,handleSteer:b9,handleFollowUp:ca,handleAbortCompaction:cb,handleToolPresetChange:cd,handleMemoryToolsChange:ce,handleThinkingLevelChange:cc,handleClearQueue:cf,handleBash:b3,respondToExtensionUi:be,dismissExtensionNotice:bf,loadTools:bZ,loadSlashCommands:b$,slashCommands:aD,setActiveLeafId:aa,setData:I,setMessages:ac,dispatch:am,setAgentRunning:ao,setForkingEntryId:aO,forkToNewSession:b5,loadMoreMessages:bW,hasMoreMessages:ah,totalMessages:af,loadedMessagesCount:aj,loadShadowedMessages:bX,handleAgentEventRef:bn}}},29947:(a,b,c)=>{c.d(b,{ES:()=>l,IB:()=>m,SN:()=>e,tE:()=>n});let d="subagent",e=["retain","recall","reflect"],f=[],g=["read","bash","edit","write"],h=["bash","read","edit","write","grep","find","ls"],i=[...h,"kernel_plot_run","kernel_plot_render","kernel_plot_inspect","kernel_plot_stop","kernel_plot_artifacts"],j=[...h,d];function k(a){return[...a].sort().join(",")}function l(a){let b=a.filter(a=>a.active).map(a=>a.name),c=b.filter(a=>!e.includes(a)),f=k(b),l=k(c);return""===f?"none":f===k(g)?"default":f===k(h)?"full":f===k(i)?"workbench":f===k(j)?"agent":""===l?"none":l===k(g)?"default":l===k(h)?"full":l===k(i)?"workbench":l===k(j)||b.includes(d)?"agent":"default"}function m(a){return e.filter(b=>a.some(a=>a.active&&a.name===b))}function n(a,b){return[...new Set([...function(a){switch(a){case"none":return f;case"default":return g;case"workbench":return i;case"agent":return j;default:return h}}(a),...b])]}},81537:(a,b,c)=>{c.d(b,{O:()=>k});let d=new Set,e=null,f=null,g=null,h=null,i=null,j=!1;function k(a){return d.add(a),e&&a(e),()=>{if(d.delete(a),0===d.size&&j){if(j=!1,h&&clearTimeout(h),h=null,g&&(clearInterval(g),g=null),i?.(),i=null,f){try{f.port.postMessage({type:"disconnect"})}catch{}try{f.port.close()}catch{}}f=null,e=null}}}}};