@seqyuan/annovibe 0.8.117 → 0.8.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +7 -6
- package/.next/build-manifest.json +3 -3
- package/.next/prerender-manifest.json +27 -3
- package/.next/react-loadable-manifest.json +4 -4
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +6 -0
- package/.next/server/app/_global-error/page.js +2 -2
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +4 -3
- package/.next/server/app/api/agent/[id]/prepare/route.js +1 -1
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/events/route.js +2 -2
- package/.next/server/app/api/agent/runtime/route.js +1 -1
- package/.next/server/app/api/apps/[id]/[[...path]]/route.js +1 -1
- package/.next/server/app/api/apps/route.js +2 -2
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/server/app/api/auth/totp/route.js +1 -1
- package/.next/server/app/api/debug-models/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/file-tree/delete/route.js +1 -1
- package/.next/server/app/api/file-tree/mkdir/route.js +1 -1
- package/.next/server/app/api/file-tree/rename/route.js +1 -1
- package/.next/server/app/api/file-tree/reveal/route.js +1 -1
- package/.next/server/app/api/file-tree/write/route.js +1 -1
- package/.next/server/app/api/file-watch/route.js +2 -2
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/harness/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/im/cancel/route.js +1 -1
- package/.next/server/app/api/im/gateway-status/route.js +1 -1
- package/.next/server/app/api/im/gateway-token/route.js +1 -1
- package/.next/server/app/api/im/project/route.js +1 -1
- package/.next/server/app/api/im/projects/route.js +1 -1
- package/.next/server/app/api/im/session-ids/route.js +1 -1
- package/.next/server/app/api/im/turn/route.js +2 -2
- package/.next/server/app/api/images/upload/route.js +1 -1
- package/.next/server/app/api/internal/runtime/route.js +1 -1
- package/.next/server/app/api/memory/dismiss/route.js +2 -2
- package/.next/server/app/api/memory/promote/route.js +2 -2
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +1 -1
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/plot-kernels/route.js +1 -1
- package/.next/server/app/api/plot-kernels/save/route.js +1 -1
- package/.next/server/app/api/plot-kernels/status/route.js +1 -1
- package/.next/server/app/api/plot-kernels/stop/route.js +1 -1
- package/.next/server/app/api/projects/browse/route.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/search/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/kernel-state/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/plan/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/workbench-artifact/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/workbench-review/route.js +1 -1
- package/.next/server/app/api/sessions/new/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/soul/route.js +1 -1
- package/.next/server/app/api/subagents/status/route.js +1 -1
- package/.next/server/app/api/version/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/icon.svg/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page.js +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +1 -1
- package/.next/server/app/login.rsc +1 -1
- package/.next/server/app/login.segments/_full.segment.rsc +1 -1
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/page.js +25 -46
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/page.js +3 -3
- package/.next/server/app/smoke/page_client-reference-manifest.js +1 -1
- package/.next/server/app/smoke/session-stream/page.js +2 -0
- package/.next/server/app/smoke/session-stream/page_client-reference-manifest.js +1 -0
- package/.next/server/app/smoke/session-stream.html +1 -0
- package/.next/server/app/smoke/session-stream.meta +16 -0
- package/.next/server/app/smoke/session-stream.rsc +24 -0
- package/.next/server/app/smoke/session-stream.segments/_full.segment.rsc +24 -0
- package/.next/server/app/smoke/session-stream.segments/_head.segment.rsc +6 -0
- package/.next/server/app/smoke/session-stream.segments/_index.segment.rsc +7 -0
- package/.next/server/app/smoke/session-stream.segments/_tree.segment.rsc +5 -0
- package/.next/server/app/smoke/session-stream.segments/smoke/session-stream/__PAGE__.segment.rsc +9 -0
- package/.next/server/app/smoke/session-stream.segments/smoke/session-stream.segment.rsc +5 -0
- package/.next/server/app/smoke/session-stream.segments/smoke.segment.rsc +5 -0
- package/.next/server/app/smoke.html +2 -2
- package/.next/server/app/smoke.rsc +1 -1
- package/.next/server/app/smoke.segments/_full.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_head.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_index.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/smoke/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/smoke.segments/smoke.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +7 -6
- package/.next/server/chunks/6195.js +22 -0
- package/.next/server/chunks/6429.js +4 -4
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/middleware.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2170a4aa.4213bb2183c9cdf9.js → 2170a4aa.d07a50e84fe80b17.js} +1 -1
- package/.next/static/chunks/{8436.cab94b59cca0a8ff.js → 8436.9907b3b603222d78.js} +1 -1
- package/.next/static/chunks/9165-0ef91ee28d0cb634.js +22 -0
- package/.next/static/chunks/app/page-61270b5b6e8b536e.js +46 -0
- package/.next/static/chunks/app/smoke/session-stream/page-2ac078e0b43f898b.js +6 -0
- package/.next/static/chunks/{webpack-b13282f72690ef5e.js → webpack-961560b05f7e7346.js} +1 -1
- package/.next/static/tobhDGatjzn_cJ3Pv_lo5/_buildManifest.js +1 -0
- package/package.json +1 -1
- package/.next/static/chunks/app/page-a74120967e734f3c.js +0 -67
- package/.next/static/ecITilT-OsECM8-4m-CTu/_buildManifest.js +0 -1
- /package/.next/static/{ecITilT-OsECM8-4m-CTu → tobhDGatjzn_cJ3Pv_lo5}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en" class="__variable_66b8ca"><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/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c9f1fab452e74e95.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-b13282f72690ef5e.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-8d81a93b58bb990f.js" async=""></script><script src="/_next/static/chunks/app/layout-5608bfe5e8f4e4c0.js" async=""></script><script src="/_next/static/chunks/d3ac728e-7964f816a1ca64e5.js" async=""></script><script src="/_next/static/chunks/363642f4-dc35a7a659350f8e.js" async=""></script><script src="/_next/static/chunks/73972abe-9ff83c7d1a6ea9f7.js" async=""></script><script src="/_next/static/chunks/0b9a0da7-9075af772487e743.js" async=""></script><script src="/_next/static/chunks/6280-513d6c4ef41995b8.js" async=""></script><script src="/_next/static/chunks/9901-e83ccdcdba85df74.js" async=""></script><script src="/_next/static/chunks/app/smoke/page-06d3574061580f4b.js" async=""></script><meta name="next-size-adjust" content=""/><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"/><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 [&>*:first-child]:mt-0 [&>*: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_66b8ca"><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/88714c00e109ce28.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/c9f1fab452e74e95.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-961560b05f7e7346.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-123fdf632563f469.js" async=""></script><script src="/_next/static/chunks/main-app-8d81a93b58bb990f.js" async=""></script><script src="/_next/static/chunks/app/layout-5608bfe5e8f4e4c0.js" async=""></script><script src="/_next/static/chunks/d3ac728e-7964f816a1ca64e5.js" async=""></script><script src="/_next/static/chunks/363642f4-dc35a7a659350f8e.js" async=""></script><script src="/_next/static/chunks/73972abe-9ff83c7d1a6ea9f7.js" async=""></script><script src="/_next/static/chunks/0b9a0da7-9075af772487e743.js" async=""></script><script src="/_next/static/chunks/6280-513d6c4ef41995b8.js" async=""></script><script src="/_next/static/chunks/9901-e83ccdcdba85df74.js" async=""></script><script src="/_next/static/chunks/app/smoke/page-06d3574061580f4b.js" async=""></script><meta name="next-size-adjust" content=""/><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"/><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 [&>*:first-child]:mt-0 [&>*: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-
|
|
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-961560b05f7e7346.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[42593,[\"7177\",\"static/chunks/app/layout-5608bfe5e8f4e4c0.js\"],\"\"]\n3:I[57121,[],\"\"]\n4:I[74581,[],\"\"]\n5:I[61304,[],\"ClientPageRoot\"]\n6:I[54833,[\"7330\",\"static/chunks/d3ac728e-7964f816a1ca64e5.js\",\"6079\",\"static/chunks/363642f4-dc35a7a659350f8e.js\",\"2941\",\"static/chunks/73972abe-9ff83c7d1a6ea9f7.js\",\"2995\",\"static/chunks/0b9a0da7-9075af772487e743.js\",\"6280\",\"static/chunks/6280-513d6c4ef41995b8.js\",\"9901\",\"static/chunks/9901-e83ccdcdba85df74.js\",\"2444\",\"static/chunks/app/smoke/page-06d3574061580f4b.js\"],\"default\"]\n9:I[90484,[],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nd:I[90484,[],\"ViewportBoundary\"]\nf:I[90484,[],\"MetadataBoundary\"]\n11:I[27123,[],\"default\",1]\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/88714c00e109ce28.css\",\"style\"]\n:HL[\"/_next/static/css/c9f1fab452e74e95.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"smoke\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"smoke\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/88714c00e109ce28.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/c9f1fab452e74e95.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"__variable_66b8ca\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"$L2\",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\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@7\",\"$@8\"]}}],null,[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,null]},null,false,\"$@c\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Ld\",null,{\"children\":\"$Le\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lf\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L10\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"tobhDGatjzn_cJ3Pv_lo5\"}\n"])</script><script>self.__next_f.push([1,"12:[]\nc:\"$W12\"\n7:{}\n8:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"e:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"13:I[86869,[],\"IconMark\"]\nb:null\n10:[[\"$\",\"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\"}],[\"$\",\"$L13\",\"4\",{}]]\n"])</script></body></html>
|
|
@@ -13,7 +13,7 @@ f:I[90484,[],"MetadataBoundary"]
|
|
|
13
13
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/88714c00e109ce28.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c9f1fab452e74e95.css","style"]
|
|
16
|
-
0:{"P":null,"c":["","smoke"],"q":"","i":false,"f":[[["",{"children":["smoke",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
16
|
+
0:{"P":null,"c":["","smoke"],"q":"","i":false,"f":[[["",{"children":["smoke",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
17
17
|
12:[]
|
|
18
18
|
c:"$W12"
|
|
19
19
|
7:{}
|
|
@@ -13,7 +13,7 @@ f:I[90484,[],"MetadataBoundary"]
|
|
|
13
13
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
14
14
|
:HL["/_next/static/css/88714c00e109ce28.css","style"]
|
|
15
15
|
:HL["/_next/static/css/c9f1fab452e74e95.css","style"]
|
|
16
|
-
0:{"P":null,"c":["","smoke"],"q":"","i":false,"f":[[["",{"children":["smoke",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"
|
|
16
|
+
0:{"P":null,"c":["","smoke"],"q":"","i":false,"f":[[["",{"children":["smoke",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],null,["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
17
17
|
12:[]
|
|
18
18
|
c:"$W12"
|
|
19
19
|
7:{}
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
3:I[90484,[],"MetadataBoundary"]
|
|
4
4
|
4:"$Sreact.suspense"
|
|
5
5
|
5:I[86869,[],"IconMark"]
|
|
6
|
-
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"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"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"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"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
@@ -4,4 +4,4 @@
|
|
|
4
4
|
4:I[74581,[],""]
|
|
5
5
|
:HL["/_next/static/css/88714c00e109ce28.css","style"]
|
|
6
6
|
:HL["/_next/static/css/c9f1fab452e74e95.css","style"]
|
|
7
|
-
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
7
|
+
0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/88714c00e109ce28.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c9f1fab452e74e95.css","precedence":"next"}]],["$","html",null,{"lang":"en","className":"__variable_66b8ca","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","$L2",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":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
:HL["/_next/static/media/ec14413c594b3356-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}]
|
|
3
3
|
:HL["/_next/static/css/88714c00e109ce28.css","style"]
|
|
4
4
|
:HL["/_next/static/css/c9f1fab452e74e95.css","style"]
|
|
5
|
-
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"smoke","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"
|
|
5
|
+
0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"smoke","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
3:I[54833,["7330","static/chunks/d3ac728e-7964f816a1ca64e5.js","6079","static/chunks/363642f4-dc35a7a659350f8e.js","2941","static/chunks/73972abe-9ff83c7d1a6ea9f7.js","2995","static/chunks/0b9a0da7-9075af772487e743.js","6280","static/chunks/6280-513d6c4ef41995b8.js","9901","static/chunks/9901-e83ccdcdba85df74.js","2444","static/chunks/app/smoke/page-06d3574061580f4b.js"],"default"]
|
|
4
4
|
6:I[90484,[],"OutletBoundary"]
|
|
5
5
|
7:"$Sreact.suspense"
|
|
6
|
-
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"
|
|
6
|
+
0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
7
7
|
4:{}
|
|
8
8
|
5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
|
|
9
9
|
8:null
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
2:I[57121,[],""]
|
|
3
3
|
3:I[74581,[],""]
|
|
4
4
|
4:[]
|
|
5
|
-
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"
|
|
5
|
+
0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"tobhDGatjzn_cJ3Pv_lo5"}
|
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
"/api/soul/route": "app/api/soul/route.js",
|
|
23
23
|
"/favicon.ico/route": "app/favicon.ico/route.js",
|
|
24
24
|
"/icon.svg/route": "app/icon.svg/route.js",
|
|
25
|
-
"/api/agent/[id]/prepare/route": "app/api/agent/[id]/prepare/route.js",
|
|
26
25
|
"/api/agent/[id]/events/route": "app/api/agent/[id]/events/route.js",
|
|
26
|
+
"/api/agent/[id]/prepare/route": "app/api/agent/[id]/prepare/route.js",
|
|
27
|
+
"/api/agent/[id]/route": "app/api/agent/[id]/route.js",
|
|
27
28
|
"/api/agent/running/events/route": "app/api/agent/running/events/route.js",
|
|
28
29
|
"/api/agent/runtime/route": "app/api/agent/runtime/route.js",
|
|
29
30
|
"/api/apps/[id]/[[...path]]/route": "app/api/apps/[id]/[[...path]]/route.js",
|
|
@@ -39,27 +40,26 @@
|
|
|
39
40
|
"/api/file-tree/reveal/route": "app/api/file-tree/reveal/route.js",
|
|
40
41
|
"/api/file-tree/write/route": "app/api/file-tree/write/route.js",
|
|
41
42
|
"/api/file-watch/route": "app/api/file-watch/route.js",
|
|
42
|
-
"/api/agent/[id]/route": "app/api/agent/[id]/route.js",
|
|
43
43
|
"/api/im/cancel/route": "app/api/im/cancel/route.js",
|
|
44
44
|
"/api/im/gateway-status/route": "app/api/im/gateway-status/route.js",
|
|
45
45
|
"/api/im/gateway-token/route": "app/api/im/gateway-token/route.js",
|
|
46
46
|
"/api/im/project/route": "app/api/im/project/route.js",
|
|
47
47
|
"/api/im/projects/route": "app/api/im/projects/route.js",
|
|
48
48
|
"/api/im/session-ids/route": "app/api/im/session-ids/route.js",
|
|
49
|
+
"/api/im/turn/route": "app/api/im/turn/route.js",
|
|
49
50
|
"/api/internal/runtime/route": "app/api/internal/runtime/route.js",
|
|
50
51
|
"/api/memory/dismiss/route": "app/api/memory/dismiss/route.js",
|
|
51
52
|
"/api/memory/promote/route": "app/api/memory/promote/route.js",
|
|
52
53
|
"/api/models-config/discover/route": "app/api/models-config/discover/route.js",
|
|
53
54
|
"/api/models-config/route": "app/api/models-config/route.js",
|
|
54
55
|
"/api/models-config/test/route": "app/api/models-config/test/route.js",
|
|
55
|
-
"/api/
|
|
56
|
-
"/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
|
|
56
|
+
"/api/plot-kernels/route": "app/api/plot-kernels/route.js",
|
|
57
57
|
"/api/plot-kernels/save/route": "app/api/plot-kernels/save/route.js",
|
|
58
58
|
"/api/plot-kernels/status/route": "app/api/plot-kernels/status/route.js",
|
|
59
59
|
"/api/plot-kernels/stop/route": "app/api/plot-kernels/stop/route.js",
|
|
60
60
|
"/api/sessions/[id]/route": "app/api/sessions/[id]/route.js",
|
|
61
61
|
"/api/settings/route": "app/api/settings/route.js",
|
|
62
|
-
"/api/
|
|
62
|
+
"/api/files/[...path]/route": "app/api/files/[...path]/route.js",
|
|
63
63
|
"/api/skills/route": "app/api/skills/route.js",
|
|
64
64
|
"/api/skills/search/route": "app/api/skills/search/route.js",
|
|
65
65
|
"/api/subagents/status/route": "app/api/subagents/status/route.js",
|
|
@@ -67,7 +67,8 @@
|
|
|
67
67
|
"/api/models/route": "app/api/models/route.js",
|
|
68
68
|
"/login/page": "app/login/page.js",
|
|
69
69
|
"/page": "app/page.js",
|
|
70
|
+
"/smoke/session-stream/page": "app/smoke/session-stream/page.js",
|
|
71
|
+
"/api/auth/login/[provider]/route": "app/api/auth/login/[provider]/route.js",
|
|
70
72
|
"/api/skills/install/route": "app/api/skills/install/route.js",
|
|
71
|
-
"/api/plot-kernels/route": "app/api/plot-kernels/route.js",
|
|
72
73
|
"/smoke/page": "app/smoke/page.js"
|
|
73
74
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";exports.id=6195,exports.ids=[6195],exports.modules={29947:(a,b,c)=>{c.d(b,{ES:()=>m,IB:()=>n,SN:()=>e,tE:()=>o,xG:()=>l});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){switch(a){case"none":return f;case"default":return g;case"workbench":return i;case"agent":return j;default:return h}}function m(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 n(a){return e.filter(b=>a.some(a=>a.active&&a.name===b))}function o(a,b){return[...new Set([...l(a),...b])]}},37267:(a,b,c)=>{c.d(b,{$:()=>d});async function d(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 Error(d.error??`HTTP ${c.status}`);return d.data}},76195:(a,b,c)=>{c.d(b,{T:()=>N});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}}var f=c(37267),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}))}async function i(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 j="__annovibeStreamSessions__",k="__annovibeStreamListeners__",l="__annovibeStreamErrorCallbacks__";function m(){let a=globalThis;return a[j]||(a[j]=new Map),a[j]}function n(){let a=globalThis;return a[l]||(a[l]=new Map),a[l]}function o(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 p(a,b){let c;for(let d of(!(c=globalThis)[k]&&(c[k]=new Map),c[k]).get(a)??[])try{d(b)}catch{}}function q(a){a.textThrottleTimer&&(clearTimeout(a.textThrottleTimer),a.textThrottleTimer=null),a.textDirty&&(a.textDirty=!1,s(a))}function r(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,s(a))},100));return}q(a),s(a)}function s(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},p(a.snapshot.sessionId,{type:"snapshot-updated",snapshot:a.snapshot})}function t(a){u(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){v(a),q(a);let b="Stream idle timeout — no activity for 180s.";a.snapshot={...a.snapshot,phase:"error",isStreaming:!1,streamingMessage:null,statusText:null,error:b},u(a),p(a.snapshot.sessionId,{type:"error",snapshot:a.snapshot});let c=n().get(a.snapshot.sessionId);if(c)try{c(a.snapshot.sessionId,b)}catch{}}},1e4)}function u(a){a.idleCheckTimer&&(clearInterval(a.idleCheckTimer),a.idleCheckTimer=null)}function v(a){a.toolProgressTimer&&(clearInterval(a.toolProgressTimer),a.toolProgressTimer=null)}function w(a){let b=m(),c=b.get(a);return c||(c={snapshot:o(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 x(a,b){let c=n();return c.set(a,b),()=>{c.get(a)===b&&c.delete(a)}}function y(a){let b=m(),c=b.get(a);c&&(v(c),u(c),q(c)),b.delete(a)}function z(a){let b=m().get(a);b&&(b.snapshot={...b.snapshot,reconnectCount:b.snapshot.reconnectCount+1,lastSyncReason:"sse-reconnect",lastEventAt:Date.now()},r(b,!0))}let A="__annovibeSessionMessageCache__";function B(){let a=globalThis;if(!a[A]){var b;let c={entries:new Map,cleanupTimer:null};a[A]=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[A]}function C(a){let b=B(),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 D(a,b,c,d,e){let f=B(),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 E(a){B().entries.delete(a)}var F=c(29947);function G(a,b){switch(b.type){case"start":return{isStreaming:!0,streamingMessage:null};case"update":return{isStreaming:!0,streamingMessage:b.message};case"end":case"reset":return{isStreaming:!1,streamingMessage:null};default:return a}}function H(){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)}`}let I=["read","bash","grep","find","ls"];function J(a,b){return a.trim()||0!==b?`text:${a}|images:${b}`:null}function K(a){return"string"==typeof a?J(a,0):Array.isArray(a)?J(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 L(a){let b=new Map;for(let c of a){let a="user"!==c.role?null:K(c.content);a&&b.set(a,(b.get(a)??0)+1)}return b}function M(a,b,c){return a.sessionId===b&&(!a.leafId||c.includes(a.leafId))}function N(a){let{session:b,newSessionCwd:c,planMode:j=!1,onAgentEnd:k,onSessionCreated:l,onSessionForked:n,modelsRefreshKey:s,onBranchDataChange:A,onPlanModeState:N}=a,O=null===b&&null!==c,[P,Q]=(0,d.useState)(null),[R,S]=(0,d.useState)(!O),[T,U]=(0,d.useState)(null),[V,W]=(0,d.useState)(null),[X,Y]=(0,d.useState)([]),[Z,$]=(0,d.useState)([]),[_,aa]=(0,d.useState)(0),[ab,ac]=(0,d.useState)(!1),[ad,ae]=(0,d.useState)(0),[af,ag]=(0,d.useReducer)(G,{isStreaming:!1,streamingMessage:null}),[ah,ai]=(0,d.useState)(!1),[aj,ak]=(0,d.useState)({}),[al,am]=(0,d.useState)([]),[an,ao]=(0,d.useState)({}),[ap,aq]=(0,d.useState)({}),[ar,as]=(0,d.useState)(null),[at,au]=(0,d.useState)("full"),[av,aw]=(0,d.useState)([...F.SN]),[ax,ay]=(0,d.useState)("auto"),[az,aA]=(0,d.useState)(null),[aB,aC]=(0,d.useState)(null),[aD,aE]=(0,d.useState)(null),[aF,aG]=(0,d.useState)(null),[aH,aI]=(0,d.useState)(null),[aJ,aK]=(0,d.useState)(null),[aL,aM]=(0,d.useState)(!1),[aN,aO]=(0,d.useState)(null),[aP,aQ]=(0,d.useState)(null),[aR,aS]=(0,d.useState)(null),aT=(0,d.useRef)(null),aU=(0,d.useRef)(b?.id??null),aV=(0,d.useRef)(!1),aW=(0,d.useRef)(null),aX=(0,d.useRef)(null),aY=(0,d.useRef)(null),aZ=(0,d.useRef)(!1),a$=(0,d.useRef)(null),a_=(0,d.useRef)(!1),a0=(0,d.useRef)(null),a1=(0,d.useRef)(null),a2=(0,d.useRef)(new Map),a3=(0,d.useRef)(new Map),a4=(0,d.useRef)(null),a5=(0,d.useRef)([]),a6=(0,d.useRef)(null),a7=(0,d.useRef)(0),a8=(0,d.useRef)(!1),a9=(0,d.useRef)(0),ba=(0,d.useRef)(!1);(0,d.useRef)(!1),(0,d.useRef)(0);let bb=(0,d.useRef)(null),bc=a.setNewSessionModel??as,bd=a.setToolPreset??au,be=a.setMemoryTools??aw,bf=aH??P?.context.model??aJ??null,bg=O?ar:bf,bh=(0,d.useCallback)(()=>j?I:(0,F.tE)(at,av),[av,j,at]),bi=(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"):"",[]),bj=(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})`)},[]),bk=(()=>{let a={input:0,output:0,cacheRead:0,cacheWrite:0},b=0;for(let c of X){if("assistant"!==c.role)continue;let d=c.usage;d&&(a.input+=d.input??0,a.output+=d.output??0,a.cacheRead+=d.cacheRead??0,a.cacheWrite+=d.cacheWrite??0,b+=d.cost?.total??0)}return a.input+a.output+a.cacheRead+a.cacheWrite>0?{tokens:a,cost:b}:null})(),bl=(0,d.useRef)(!1),bm=(0,d.useCallback)(async()=>{let a=aU.current;if(!a||bl.current||ba.current)return;bl.current=!0,a8.current=!0;let b=0,c=C(a);b=c?c.loadedMessagesCount:50;try{for(;;)try{let c=await fetch(`/api/sessions/${encodeURIComponent(a)}?limit=100&offset=${b}`);if(!c.ok)break;let d=await c.json();if(aU.current!==a)break;let e=d.context.messages,f=d.context.entryIds??[];if(0===e.length)break;Y(a=>[...e,...a]),$(a=>{let b=[...f,...a];return a5.current=b,b});let g=b+e.length;if(ae(g),a9.current=g,ac(d.hasMore??!1),D(a,e,f,d.hasMore??!1,g),b=g,!d.hasMore)break;await new Promise(a=>setTimeout(a,800))}catch{break}}finally{bl.current=!1,ba.current=!0,a8.current=!1}},[]),bn=(0,d.useCallback)(async(a,b=!1,c=!1,d=!1)=>{try{if(b&&S(!0),!c&&!aV.current&&!d){let c=C(a);if(c)return aa(c.totalMessages),ac(c.hasMore),ae(c.loadedMessagesCount),Y(c.messages),a5.current=c.entryIds,$(c.entryIds),W(c.leafId),a9.current=c.loadedMessagesCount,b&&S(!1),c.hasMore&&!ba.current&&setTimeout(()=>{bm()},1500),null}let f=c?`/api/sessions/${encodeURIComponent(a)}?includeState`:`/api/sessions/${encodeURIComponent(a)}?limit=50&offset=0`,g=new AbortController,h=setTimeout(()=>g.abort(),3e4),i=await fetch(f,{signal:g.signal}).finally(()=>clearTimeout(h));if(aU.current&&aU.current!==a)return null;if(404===i.status)return b&&(Q(null),W(null),Y([]),U(null)),null;if(!i.ok)throw Error(`HTTP ${i.status}`);let j=await i.json();c?(aa(j.totalMessages??j.context.messages.length),ac(!1)):(aa(j.totalMessages??j.context.messages.length),ac(j.hasMore??!1)),ae(j.context.messages.length),Q(j),W(j.leafId);let k=j.context.messages,l=L(k),m=new Map,n=Date.now();for(let[b,c]of a2.current)if(c.sessionId===a){if(n-c.createdAt>12e4){a2.current.delete(b);continue}if(c.confirmKey){let a=l.get(c.confirmKey)??0,d=m.get(c.confirmKey)??0;a-d>c.confirmCountAtCreate&&(a2.current.delete(b),m.set(c.confirmKey,d+1))}}a3.current=l;let o=j.context.entryIds??[],p=[...a2.current.values()].filter(b=>M(b,a,o)).map(a=>a.message),q=p.length>0?[...k,...p]:k,r=q.length;if(!c&&a9.current>r)aa(j.totalMessages??j.context.messages.length),ac(j.hasMore??!1);else{var e;Y(q),a5.current=o,$(o),c?a9.current=r:a9.current=Math.max(a9.current,r),e={sessionId:a,leafId:j.leafId,messages:q,entryIds:o,totalMessages:j.totalMessages??j.context.messages.length,hasMore:!c&&(j.hasMore??!1),loadedMessagesCount:j.context.messages.length},B().entries.set(a,{...e,loadedAt:Date.now()})}return aI(a=>{if(!a)return null;let b=j.context.model;return b?.provider===a.provider&&b.modelId===a.modelId?null:a}),U(null),!j.agentState?.state?.thinkingLevel&&j.context.thinkingLevel&&"off"!==j.context.thinkingLevel&&ay(j.context.thinkingLevel),j.agentState?.state?.planMode&&N?.(j.agentState.state.planMode),j.agentState??null}catch(a){return U(String(a)),null}finally{b&&S(!1)}},[N,bm]),bo=(0,d.useRef)(!1),bp=(0,d.useCallback)(async()=>{if(bo.current)return;bo.current=!0;let a=aU.current;if(!a){bo.current=!1;return}try{let b=await fetch(`/api/sessions/${encodeURIComponent(a)}?limit=50&offset=${ad}`);if(!b.ok)return;let c=await b.json(),d=c.context.messages,e=c.context.entryIds??[];Y(a=>[...d,...a]),$(a=>{let b=[...e,...a];return a5.current=b,b}),ae(a=>a+d.length),ac(c.hasMore??!1),D(a,d,e,c.hasMore??!1,ad+d.length)}catch{}finally{bo.current=!1}},[ad]),bq=(0,d.useCallback)(async(a,b)=>{try{let c=b?`/api/sessions/${encodeURIComponent(a)}/context?leafId=${encodeURIComponent(b)}`:`/api/sessions/${encodeURIComponent(a)}/context`,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=L(f),i=new Map,j=Date.now();for(let[b,c]of a2.current)if(c.sessionId===a){if(j-c.createdAt>12e4){a2.current.delete(b);continue}if(c.confirmKey){let a=h.get(c.confirmKey)??0,d=i.get(c.confirmKey)??0;a-d>c.confirmCountAtCreate&&(a2.current.delete(b),i.set(c.confirmKey,d+1))}}a3.current=h;let k=[...a2.current.values()].filter(b=>M(b,a,g)).map(a=>a.message);Y(k.length>0?[...f,...k]:f),a5.current=g,$(g)}catch(a){console.error("Failed to load context:",a)}},[]),br=(0,d.useCallback)(async a=>{try{let b=await (0,f.$)(a,{type:"get_tools"});b&&(bd((0,F.ES)(b)),be((0,F.IB)(b)))}catch(a){console.error("Failed to load tools:",a)}},[be,bd]),bs=(0,d.useCallback)((a,b={})=>{aT.current?.close(),aT.current=null;let c=`/api/agent/${encodeURIComponent(a)}/events${b.replay?"?replay=1":""}`;return!function(a){let b=w(a);if("active"===b.snapshot.phase)return r(b,!0),t(b),b.snapshot;let c=Date.now();b.snapshot={...o(a),phase:"active",startedAt:c,lastEventAt:c,isStreaming:!0,streamingMessage:{role:"assistant",content:[]}},t(b),r(b,!0),b.snapshot}(a),new Promise((d,e)=>{let f=!1,g=!1,h=null,j=a=>{if(!f){if(f=!0,clearTimeout(k),a){h?.close(),aT.current===h&&(aT.current=null),e(a);return}d()}},k=setTimeout(()=>{b.requireConnected?j(Error("Timed out waiting for event stream connection")):j()},b.timeoutMs??3e4);aT.current=h=function(a){let{url:b,onEvent:c,onStateChange:d,onFatalError:e,maxReconnectAttempts:f=1/0,reconnectBaseMs:g=1e3,reconnectMaxMs:h=3e4,autoReconnect:j=!0}=a,k="idle",l=new AbortController,m=0,n=null,o=null,p=!1,q=(a,b)=>{b&&(o=b),c(a,b)},r=a=>{k!==a&&(k=a,d?.(a))},s=()=>{null!==n&&(clearTimeout(n),n=null)},t=()=>{if(p)return;if(!j)return void r("error");if(m>=f){r("error"),e?.(Error(`Max reconnect attempts (${f}) reached`));return}let a=Math.min(h,g*2**m);m+=1,r("connecting"),n=setTimeout(()=>{n=null,u()},a)},u=async()=>{if(!p){s(),l=new AbortController,r("connecting");try{let a=await fetch(b,{signal:l.signal,headers:{Accept:"text/event-stream","Cache-Control":"no-cache",...o?{"Last-Event-ID":o}:{}}});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();r("connected"),m=0,await i(d,q,l.signal),d.releaseLock(),r("closed"),!p&&j&&t()}catch(a){if(p||a instanceof DOMException&&"AbortError"===a.name)return void r("closed");r("error"),j&&t()}}};return{get state(){return k},connect:()=>{p=!1,m=0,s(),u()},close:()=>{p=!0,s(),l.abort(),r("closed")},get abortController(){return l}}}({url:c,onEvent:b=>{try{let c=JSON.parse(b);if("connected"===c.type&&j(),aU.current!==a)return;aW.current?.(c)}catch{}},onStateChange:b=>{!function(a,b){let c=m().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()},t(c)),"connected"!==b&&"connected"===d&&u(c)}(a,b),"connected"===b&&(g&&(z(a),aX.current?.(a,"sse_reconnected")),g=!0)},reconnectBaseMs:1e3,reconnectMaxMs:3e4}),h.connect()})},[]),bt=(0,d.useCallback)(async(a,b="manual")=>{if(!a||aU.current!==a)return;let c=a7.current;try{let b=await fetch(`/api/agent/${encodeURIComponent(a)}`),d=await b.json().catch(()=>({}));if(aU.current!==a||a7.current!==c)return;d.running?(aV.current=!0,ai(!0),aQ(a=>a??{kind:"waiting_model"}),aT.current&&"closed"!==aT.current.state&&"error"!==aT.current.state||(z(a),bs(a,{replay:!0}))):(aV.current=!1,aT.current?.close(),aT.current=null,y(a),ai(!1),aQ(null),aA(null),ag({type:"end"}),E(a),await bn(a,!1,!1,!0)),d.state?.contextUsage!==void 0&&aC(d.state.contextUsage??null),d.state?.systemPrompt!==void 0&&aE(d.state.systemPrompt??null),d.state?.isCompacting!==void 0&&aM(d.state.isCompacting),d.state?.thinkingLevel!==void 0&&ay(d.state.thinkingLevel??"auto"),d.state?.planMode!==void 0&&N?.(d.state.planMode)}catch{}},[bs,bn,N]);aW.current=(0,d.useCallback)(a=>{let b=aU.current;switch(b&&function(a,b){let c=w(a),d=Date.now();switch(b.type){case"agent_start":if("active"===c.snapshot.phase)return r(c,!0),c.snapshot;return v(c),c.accumulatedText="",c.toolCalls.clear(),c.toolResults.clear(),c.activeToolId=null,c.snapshot={...o(a),phase:"active",startedAt:d,lastEventAt:d,isStreaming:!0,streamingMessage:{role:"assistant",content:[]}},t(c),r(c,!0),c.snapshot;case"message_update":{let a=b.message;if(!a||"assistant"!==a.role)return c.snapshot;let e=a.content;for(let a of Array.isArray(e)?e:[])"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}));return r(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?.input??f,startedAt:g?.startedAt??d}),c.activeToolId=a,v(c),c.activeToolId&&(c.toolProgressTimer=setInterval(()=>r(c,!0),1e3)),r(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,v(c))}return r(c,!0),c.snapshot}case"message_end":return q(c),r(c,!0),c.snapshot;case"agent_end":{q(c),v(c),u(c);let d="string"==typeof b.error?b.error:null;return c.activeToolId=null,c.snapshot={...c.snapshot,phase:d?"error":"completed",isStreaming:!1,streamingMessage:null,statusText:null,error:d},p(a,d?{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),a.type){case"agent_start":aS(null),aV.current=!0,ai(!0),aQ({kind:"waiting_model"}),ag({type:"start"});break;case"agent_end":aV.current=!1,aT.current?.close(),aT.current=null,ai(!1),aQ(null),aA(null),ag({type:"end"}),b&&(E(b),bn(b,!1,!1,!0),bb.current&&clearTimeout(bb.current),bb.current=setTimeout(()=>{aU.current!==b||aV.current||(E(b),bn(b,!1,!1,!0))},500),fetch(`/api/agent/${encodeURIComponent(b)}`).then(a=>a.json()).then(a=>{a.state?.contextUsage!==void 0&&aC(a.state.contextUsage??null),a.state?.systemPrompt!==void 0&&aE(a.state.systemPrompt??null),a.state?.isCompacting!==void 0&&aM(a.state.isCompacting)}).catch(()=>{})),k?.();break;case"message_start":case"message_update":{if(!aV.current)break;let b=a.message;if(b?.role==="user")break;b&&ag({type:"update",message:e(b)}),aQ(null);break}case"message_end":{if(!aV.current)break;let b=a.message,c="string"==typeof a.__entryId?a.__entryId:null;if(b&&"user"!==b.role){let a=e(b);!(c&&a5.current.includes(c))&&(Y(b=>b.some(b=>(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}})(b,a))?b:[...b,a]),c&&$(a=>{if(a.includes(c))return a;let b=[...a,c];return a5.current=b,b}))}ag({type:"reset"}),aQ({kind:"waiting_model"});break}case"replay_gap":b&&(E(b),bn(b,!1,!1,!0));break;case"prompt_done":if(!aV.current)break;bt(aU.current??"","prompt_done");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;aQ(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_end":{let b=a.toolCallId;aQ(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"auto_retry_start":aA({attempt:a.attempt,maxAttempts:a.maxAttempts,errorMessage:a.errorMessage});break;case"auto_retry_end":aA(null);break;case"auto_compaction_start":case"compaction_start":aM(!0),aO(null);break;case"auto_compaction_end":case"compaction_end":aM(!1),a.errorMessage?aO(a.errorMessage):!a.aborted&&aU.current&&bn(aU.current)}},[bn,k,bt]);let bu=(0,d.useCallback)(async(a,d,e,i)=>{if(!a.trim()&&!d?.length&&!e?.length||ah)return;a7.current+=1;let k=bi(e),m=a.trim()?k?`${a}
|
|
5
|
+
|
|
6
|
+
Attached document text:
|
|
7
|
+
|
|
8
|
+
${k}`:a:k?`Attached document text:
|
|
9
|
+
|
|
10
|
+
${k}`:"",n=[],o=O?c:b?.cwd??P?.info?.cwd;if(d?.length&&o)try{n=await h(o,d)}catch(a){aS(a instanceof Error?a.message:String(a));return}let p=n.length?n.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}})),q={role:"user",content:p?.length?[...m.trim()?[{type:"text",text:m}]:[],...p]:m,timestamp:Date.now()},r=H(),s=O?null:b?.id??null;s&&E(s);let t=a4.current,u=K(q.content);a2.current.set(r,{localId:r,sessionId:s??"__new__",leafId:t,message:q,createdAt:Date.now(),kind:"prompt",confirmKey:u,confirmCountAtCreate:O?0:u?a3.current.get(u)??0:0}),Y(a=>[...a,q]),aS(null),aV.current=!0,ai(!0),aQ({kind:"waiting_model"}),ag({type:"start"}),a_.current=!0;let v=al.find(a=>a.provider===bf?.provider&&a.id===bf?.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(O&&c){ar&&aK(ar);let b=i??bh(),d=await fetch("/api/agent/new",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:c,type:"prompt",message:m,toolNames:b,planMode:j,deferPrompt:!0,...w?.length?{images:w}:{},...ar?{provider:ar.provider,modelId:ar.modelId}:{},..."auto"!==ax?{thinkingLevel:ax}:{}})}),e=await d.json().catch(()=>({}));if(!d.ok||e.error||!e.sessionId)throw Error(e.error??`HTTP ${d.status}`);let g=e.sessionId;aU.current=g;let h=a2.current.get(r);h&&(h.sessionId=g),aY.current?.(),aY.current=x(g,()=>{aU.current===g&&(ai(!1),aQ(null))}),a6.current=g,await bs(g,{requireConnected:!0,timeoutMs:1e4}),await (0,f.$)(g,{type:"prompt",message:m,toolNames:b,planMode:j,...w?.length?{images:w}:{}}),l?.({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=i??bh();await bj(b.id),aY.current?.(),aY.current=x(b.id,()=>{aU.current===b.id&&(ai(!1),aQ(null))}),await bs(b.id,{requireConnected:!0,timeoutMs:1e4}),await (0,f.$)(b.id,{type:"prompt",message:m,toolNames:a,planMode:j,...w?.length?{images:w}:{}})}}catch(b){let a=aU.current;if(a2.current.delete(r),Y(a=>a[a.length-1]===q?a.slice(0,-1):a),console.error("Failed to send message:",b),O&&aU.current){let a=aU.current;aU.current=null,a6.current=null,fetch(`/api/sessions/${encodeURIComponent(a)}`,{method:"DELETE"}).catch(()=>{})}aS(b instanceof Error?b.message:String(b)),aT.current?.close(),aT.current=null,a&&y(a),aV.current=!1,ai(!1),aQ(null),ag({type:"end"})}},[O,c,ar,bh,ax,b,P?.info?.cwd,ah,bs,l,bi,j,al,bf,bj]),bv=(0,d.useCallback)(async()=>{let a=aU.current;if(a){aV.current=!1,aS(null),ai(!1),aQ(null),ag({type:"end"}),aT.current?.close(),aT.current=null,y(a),E(a);try{await (0,f.$)(a,{type:"abort"}),await bn(a,!1,!1,!0)}catch(b){console.error("Failed to abort:",b),await bn(a,!1,!1,!0)}}},[bn]),bw=(0,d.useCallback)(async a=>{let b=aU.current;if(b){aG(a);try{let{cancelled:c,newSessionId:d}=await (0,f.$)(b,{type:"fork",entryId:a})??{};!c&&d&&n?.(d)}catch(a){console.error("Fork failed:",a)}finally{aG(null)}}},[n]),bx=(0,d.useCallback)(async a=>{let b=aU.current;b&&(E(b),(0,f.$)(b,{type:"navigate_tree",targetId:a}).catch(()=>{}),W(a),await bq(b,a))},[bq]);(0,d.useCallback)(async a=>{W(a);let b=aU.current;b&&(E(b),await bq(b,a),a&&(0,f.$)(b,{type:"navigate_tree",targetId:a}).catch(()=>{}))},[bq]);let by=(0,d.useCallback)(async(a,b)=>{if(O)return void bc({provider:a,modelId:b});let c=aU.current;if(c)try{var d;aS(null);let e=await (0,f.$)(c,{type:"set_model",provider:a,modelId:b}),g={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)&&ay(e.thinkingLevel),aI(g),Q(a=>a?{...a,context:{...a.context,model:g}}:a)}catch(b){let a=b instanceof Error?b.message:String(b);console.error("Failed to set model:",b),aS(a)}},[O,bc]),bz=(0,d.useCallback)(async()=>{let a=aU.current;if(a&&!aL){aM(!0),aO(null);try{await (0,f.$)(a,{type:"compact"}),await bn(a,!0)}catch(a){aO(a instanceof Error?a.message:String(a))}finally{aM(!1)}}},[aL,bn]),bA=(0,d.useCallback)(async(a,b,c)=>{let d=aU.current;if(!d)return;E(d);let e=bi(c),g=a.trim()?e?`${a}
|
|
11
|
+
|
|
12
|
+
Attached document text:
|
|
13
|
+
|
|
14
|
+
${e}`:a:e?`Attached document text:
|
|
15
|
+
|
|
16
|
+
${e}`:"",h=al.find(a=>a.provider===bf?.provider&&a.id===bf?.modelId)?.input,i=!h||0===h.length||h.includes("image")?b?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,j={role:"user",content:`[steer] ${g}`,timestamp:Date.now()},k=H(),l=J(g,i?.length??0);a2.current.set(k,{localId:k,sessionId:d,leafId:a4.current,message:j,createdAt:Date.now(),kind:"steer",confirmKey:l,confirmCountAtCreate:l?a3.current.get(l)??0:0}),Y(a=>[...a,j]);try{await (0,f.$)(d,{type:"steer",message:g,...i?.length?{images:i}:{}})}catch(a){a2.current.delete(k),console.error("Failed to steer:",a)}},[bi,al,bf]),bB=(0,d.useCallback)(async(a,b,c)=>{let d=aU.current;if(!d)return;E(d);let e=bi(c),g=a.trim()?e?`${a}
|
|
17
|
+
|
|
18
|
+
Attached document text:
|
|
19
|
+
|
|
20
|
+
${e}`:a:e?`Attached document text:
|
|
21
|
+
|
|
22
|
+
${e}`:"",h=al.find(a=>a.provider===bf?.provider&&a.id===bf?.modelId)?.input,i=!h||0===h.length||h.includes("image")?b?.map(a=>({type:"image",data:a.data,mimeType:a.mimeType})):void 0,j={role:"user",content:g,timestamp:Date.now()},k=H(),l=J(g,i?.length??0);a2.current.set(k,{localId:k,sessionId:d,leafId:a4.current,message:j,createdAt:Date.now(),kind:"follow_up",confirmKey:l,confirmCountAtCreate:l?a3.current.get(l)??0:0}),Y(a=>[...a,j]);try{await (0,f.$)(d,{type:"follow_up",message:g,...i?.length?{images:i}:{}})}catch(a){a2.current.delete(k),console.error("Failed to follow up:",a)}},[bi,al,bf]),bC=(0,d.useCallback)(async()=>{let a=aU.current;if(a)try{await (0,f.$)(a,{type:"abort_compaction"})}catch(a){console.error("Failed to abort compaction:",a)}},[]),bD=(0,d.useCallback)(async a=>{if(ay(a),"auto"===a)return;let b=aU.current;if(b)try{await (0,f.$)(b,{type:"set_thinking_level",level:a})}catch(a){console.error("Failed to set thinking level:",a)}},[]),bE=(0,d.useCallback)(async a=>{bd(a);let b=(0,F.tE)(a,av),c=aU.current;if(c)try{await (0,f.$)(c,{type:"set_tools",toolNames:b})}catch(a){console.error("Failed to set tools:",a)}},[av,bd]),bF=(0,d.useCallback)(async a=>{be(a);let b=(0,F.tE)(at,a),c=aU.current;if(c)try{await (0,f.$)(c,{type:"set_tools",toolNames:b})}catch(a){console.error("Failed to set memory tools:",a)}},[be,at]);return(0,d.useCallback)((a="smooth")=>{a0.current?.scrollIntoView({behavior:a})},[]),(0,d.useCallback)(()=>{let a=a1.current,b=a$.current;if(!a||!b)return;let c=b.getBoundingClientRect().top-a.getBoundingClientRect().top+a.scrollTop;a.scrollTo({top:c-16,behavior:"smooth"})},[]),{data:P,loading:R,error:T,activeLeafId:V,messages:X,entryIds:Z,streamState:af,agentRunning:ah,modelNames:aj,modelList:al,modelThinkingLevels:an,modelThinkingLevelMaps:ap,newSessionModel:ar,toolPreset:at,memoryTools:av,thinkingLevel:ax,retryInfo:az,contextUsage:aB,systemPrompt:aD,forkingEntryId:aF,isCompacting:aL,compactError:aN,currentModel:bf,displayModel:bg,sessionStats:bk,agentPhase:aP,agentError:aR,isNew:O,sessionIdRef:aU,sseReaderRef:aT,messagesEndRef:a0,scrollContainerRef:a1,lastUserMsgRef:a$,pendingScrollToUserRef:a_,initialScrollDoneRef:aZ,handleSend:bu,handleAbort:bv,handleFork:bw,handleNavigate:bx,handleModelChange:by,handleCompact:bz,handleSteer:bA,handleFollowUp:bB,handleAbortCompaction:bC,handleToolPresetChange:bE,handleMemoryToolsChange:bF,handleThinkingLevelChange:bD,loadTools:br,setActiveLeafId:W,setData:Q,setMessages:Y,dispatch:ag,setAgentRunning:ai,setForkingEntryId:aG,loadMoreMessages:bp,hasMoreMessages:ab,totalMessages:_,loadedMessagesCount:ad,handleAgentEventRef:aW}}}};
|
|
@@ -137,7 +137,7 @@ if (window.Chart) init();
|
|
|
137
137
|
${h.content}
|
|
138
138
|
</widget-guidelines>`;return g?`${g}
|
|
139
139
|
|
|
140
|
-
${j}`:j}},39737:(a,b,c)=>{"use strict";c.d(b,{L:()=>p});var d=c(29021),e=c(33873),f=c(23537),g=c(86585);let h=["read","bash","grep","find","ls"],i=["read","bash","edit","write","grep","find","ls"],j=[/\brm\b/i,/\brmdir\b/i,/\bmv\b/i,/\bcp\b/i,/\bmkdir\b/i,/\btouch\b/i,/\bchmod\b/i,/\bchown\b/i,/\bchgrp\b/i,/\bln\b/i,/\btee\b/i,/\btruncate\b/i,/\bdd\b/i,/\bshred\b/i,/[^<]>(?!>)/,/>>/,/\bnpm\s+(install|uninstall|update|ci|link|publish)/i,/\byarn\s+(add|remove|install|publish)/i,/\bpnpm\s+(add|remove|install|publish)/i,/\bpip\s+(install|uninstall)/i,/\bapt(?:-get)?\s+(install|remove|purge|update|upgrade)/i,/\bbrew\s+(install|uninstall|upgrade)/i,/\bgit\s+(add|commit|push|pull|merge|rebase|reset|checkout\s+-b|branch\s+-[dD]|stash|cherry-pick|revert|tag|init|clone)/i,/\bsudo\b/i,/\bsu\b/i,/\bkill\b/i,/\bpkill\b/i,/\bkillall\b/i,/\breboot\b/i,/\bshutdown\b/i,/\bsystemctl\s+(start|stop|restart|enable|disable)/i,/\bservice\s+\S+\s+(start|stop|restart)/i,/\b(vim?|nano|emacs|code|subl)\b/i],k=[/^\s*cat\b/,/^\s*head\b/,/^\s*tail\b/,/^\s*less\b/,/^\s*more\b/,/^\s*grep\b/,/^\s*find\b/,/^\s*ls\b/,/^\s*pwd\b/,/^\s*echo\b/,/^\s*printf\b/,/^\s*wc\b/,/^\s*sort\b/,/^\s*uniq\b/,/^\s*diff\b/,/^\s*file\b/,/^\s*stat\b/,/^\s*du\b/,/^\s*df\b/,/^\s*tree\b/,/^\s*which\b/,/^\s*whereis\b/,/^\s*type\b/,/^\s*env\b/,/^\s*printenv\b/,/^\s*uname\b/,/^\s*whoami\b/,/^\s*id\b/,/^\s*date\b/,/^\s*cal\b/,/^\s*uptime\b/,/^\s*ps\b/,/^\s*top\b/,/^\s*htop\b/,/^\s*free\b/,/^\s*git\s+(status|log|diff|show|branch|remote|config\s+--get)/i,/^\s*git\s+ls-/i,/^\s*npm\s+(list|ls|view|info|search|outdated|audit)/i,/^\s*yarn\s+(list|info|why|audit)/i,/^\s*node\s+--version/i,/^\s*python\s+--version/i,/^\s*curl\s/i,/^\s*wget\s+-O\s*-/i,/^\s*jq\b/,/^\s*sed\s+-n/i,/^\s*awk\b/,/^\s*rg\b/,/^\s*fd\b/,/^\s*bat\b/,/^\s*exa\b/,/^\s*R\s+-e/i,/^\s*Rscript\s+-e/i],l=".annovibe-plan.md";function m(a){return(0,e.join)(a,l)}function n(a,b,c){let e=c.length>0?["","## Steps","",...c.map(a=>`${a.completed?"- [x]":"- [ ]"} ${a.text}`)].join("\n"):"";(0,d.writeFileSync)(m(a),`# Annovibe Plan
|
|
140
|
+
${j}`:j}},36945:(a,b,c)=>{"use strict";function d(a){if(!a.afterEventId)return{afterSequence:void 0,replayGap:!1};let b=a.afterEventId.lastIndexOf(":"),c=b>0?a.afterEventId.slice(0,b):"",d=b>0?Number(a.afterEventId.slice(b+1)):NaN;if(c!==a.streamEpoch||!Number.isSafeInteger(d))return{afterSequence:void 0,replayGap:!0};let e=a.events.length>0?Number(a.events[0].__eventSequence):a.nextSequence;return!Number.isSafeInteger(e)||d<e-1?{afterSequence:void 0,replayGap:!0}:{afterSequence:d,replayGap:!1}}c.d(b,{Z:()=>d})},39737:(a,b,c)=>{"use strict";c.d(b,{L:()=>p});var d=c(29021),e=c(33873),f=c(23537),g=c(86585);let h=["read","bash","grep","find","ls"],i=["read","bash","edit","write","grep","find","ls"],j=[/\brm\b/i,/\brmdir\b/i,/\bmv\b/i,/\bcp\b/i,/\bmkdir\b/i,/\btouch\b/i,/\bchmod\b/i,/\bchown\b/i,/\bchgrp\b/i,/\bln\b/i,/\btee\b/i,/\btruncate\b/i,/\bdd\b/i,/\bshred\b/i,/[^<]>(?!>)/,/>>/,/\bnpm\s+(install|uninstall|update|ci|link|publish)/i,/\byarn\s+(add|remove|install|publish)/i,/\bpnpm\s+(add|remove|install|publish)/i,/\bpip\s+(install|uninstall)/i,/\bapt(?:-get)?\s+(install|remove|purge|update|upgrade)/i,/\bbrew\s+(install|uninstall|upgrade)/i,/\bgit\s+(add|commit|push|pull|merge|rebase|reset|checkout\s+-b|branch\s+-[dD]|stash|cherry-pick|revert|tag|init|clone)/i,/\bsudo\b/i,/\bsu\b/i,/\bkill\b/i,/\bpkill\b/i,/\bkillall\b/i,/\breboot\b/i,/\bshutdown\b/i,/\bsystemctl\s+(start|stop|restart|enable|disable)/i,/\bservice\s+\S+\s+(start|stop|restart)/i,/\b(vim?|nano|emacs|code|subl)\b/i],k=[/^\s*cat\b/,/^\s*head\b/,/^\s*tail\b/,/^\s*less\b/,/^\s*more\b/,/^\s*grep\b/,/^\s*find\b/,/^\s*ls\b/,/^\s*pwd\b/,/^\s*echo\b/,/^\s*printf\b/,/^\s*wc\b/,/^\s*sort\b/,/^\s*uniq\b/,/^\s*diff\b/,/^\s*file\b/,/^\s*stat\b/,/^\s*du\b/,/^\s*df\b/,/^\s*tree\b/,/^\s*which\b/,/^\s*whereis\b/,/^\s*type\b/,/^\s*env\b/,/^\s*printenv\b/,/^\s*uname\b/,/^\s*whoami\b/,/^\s*id\b/,/^\s*date\b/,/^\s*cal\b/,/^\s*uptime\b/,/^\s*ps\b/,/^\s*top\b/,/^\s*htop\b/,/^\s*free\b/,/^\s*git\s+(status|log|diff|show|branch|remote|config\s+--get)/i,/^\s*git\s+ls-/i,/^\s*npm\s+(list|ls|view|info|search|outdated|audit)/i,/^\s*yarn\s+(list|info|why|audit)/i,/^\s*node\s+--version/i,/^\s*python\s+--version/i,/^\s*curl\s/i,/^\s*wget\s+-O\s*-/i,/^\s*jq\b/,/^\s*sed\s+-n/i,/^\s*awk\b/,/^\s*rg\b/,/^\s*fd\b/,/^\s*bat\b/,/^\s*exa\b/,/^\s*R\s+-e/i,/^\s*Rscript\s+-e/i],l=".annovibe-plan.md";function m(a){return(0,e.join)(a,l)}function n(a,b,c){let e=c.length>0?["","## Steps","",...c.map(a=>`${a.completed?"- [x]":"- [ ]"} ${a.text}`)].join("\n"):"";(0,d.writeFileSync)(m(a),`# Annovibe Plan
|
|
141
141
|
|
|
142
142
|
This plan was generated by the Annovibe AI agent.
|
|
143
143
|
It is read-only until the plan is approved for execution.
|
|
@@ -175,11 +175,11 @@ ${b}
|
|
|
175
175
|
|
|
176
176
|
Continue executing from where you left off.`,display:!0},{triggerTurn:!0})):"Delete plan file"===c&&o(g.cwd)}}}),a.on("turn_start",async(a,b)=>{u(b.sessionManager.getSessionId()),c=!1,s()}),a.on("turn_end",async(a,b)=>{if(e&&0!==p.length&&!c){let a=p.find(a=>!a.completed);a&&(a.completed=!0,s())}})}},39773:(a,b,c)=>{"use strict";c.d(b,{X:()=>g,w:()=>f});var d=c(55511);let e=new Map;function f(a){let b=(0,d.randomUUID)().replace(/-/g,"").slice(0,24);return e.set(b,{...a,token:b,expiresAt:Date.now()+18e5}),b}function g(a){let b=e.get(a);return b?Date.now()>b.expiresAt?(e.delete(a),null):b:null}setInterval(()=>{let a=Date.now();for(let[b,c]of e)a>c.expiresAt&&e.delete(b)},3e5)},41761:(a,b,c)=>{"use strict";c.d(b,{C1:()=>e,lA:()=>d});let d="subagent",e=["bash","read","edit","write","grep","find","ls"];[...e],[...e]},44036:(a,b,c)=>{"use strict";c.d(b,{FJ:()=>g,R4:()=>h,X8:()=>f});let d="<workbench-guidelines>\nAnnoVibe Workbench is active. Use it for reproducible R/Python analysis plots, data visualizations, and warm-runtime analysis work.\n\nTool routing:\n- Use `kernel_plot_render` for one-shot iterative plot previews — images auto-render inline in chat without saving files. Call `render_plot()` to mark the preview target. ggplot2 (R) and plt.show() (Python) are auto-captured as convenience.\n- Use `kernel_plot_inspect` after resuming a workbench session, after suspected kernel restart, or whenever you are unsure whether objects like `adata`/`seurat_obj` are still live in memory.\n- Use `kernel_plot_run` when plots depend on data already loaded in warm kernel memory, or when saving final artifacts to disk.\n- Use `runtime: \"kernel-lite\"` in `kernel_plot_run` when variables or loaded data should persist across turns.\n- Use `runtime: \"worker\"` for one-shot scripts that should be isolated.\n- Do not run Rscript/python plotting through `bash` unless the workbench tools are unavailable.\n- Do not use bash with `conda run python`, `Rscript`, or direct interpreter calls for analysis code — always prefer `kernel_plot_run`.\n\nkernel-lite memory rules — CRITICAL:\n- Packages imported (import scanpy, library(Seurat), etc.) and variables assigned in one kernel_plot_run call persist while the same kernel-lite runtime is alive. Do NOT repeat imports in every call. Import each package only once, in the first call that needs it.\n- Large data objects loaded via sc.read(), readRDS(), qread(), pd.read_csv(), etc. stay in memory while the warm kernel is alive. Before calling any load function, check whether the object already exists:\n Python: `if 'adata' not in globals(): adata = sc.read(path)`\n R: `if (!exists('seurat_obj')) seurat_obj <- readRDS(path)`\n Print a brief note when reusing in-memory data vs loading fresh.\n- Do NOT put sc.read() / readRDS() / qread() at the top of every call. This reloads multi-GB files needlessly and is the #1 performance mistake in workbench sessions.\n- After browser refreshes, model switches, compaction, or a resumed workbench session, treat prior history as inferred only: first use `kernel_plot_inspect` or an explicit existence check to see whether required objects still exist, then reload only missing objects from the known source path.\n\nWorkbench artifact rules:\n- Save every output under `WARMPLOT_OUTPUT_DIR` or `PI_KERNEL_PLOT_OUTPUT_DIR`.\n- Create a primary PNG/JPEG/WebP preview for chat display whenever a figure is produced, not PDF-only output. Keep the preview reasonably sized so it can be embedded inline.\n- If a publication-quality PDF/SVG is needed, save it in addition to the preview image.\n- Name the primary preview clearly, for example `00_preview.png`, so it is easy to identify.\n- When the user asks to save final outputs to a specific project directory, use that directory (not WARMPLOT_OUTPUT_DIR) for the final artifacts.\n\nChat display rules:\n- The web chat renders returned image artifacts inline. Do not say that images cannot be displayed.\n- Do not use `open`, `xdg-open`, or desktop viewers to show plots.\n- After generating any plot, make the chat response displayable by including the PNG/JPEG/WebP preview path in the final answer or by returning it as a tool image artifact. Do not mention only PDF paths when an image preview exists.\n- When using shell tools for plotting, still save a PNG/JPEG/WebP preview and include that preview path in the final answer; avoid a final answer that only says a desktop window was opened.\n- When the user asks to show an existing PNG/JPEG/WebP file, use `read` on that image path; the UI will display the image even if the model cannot inspect pixels.\n- If only a PDF exists and the user asks to see it in chat, generate a PNG preview with `kernel_plot_run` or report the PDF path only if conversion is not practical.\n- After a successful plot, summarize the result briefly and include both preview image paths and any publication-quality PDF/SVG paths.\n</workbench-guidelines>",e=/\n?\s*(?:<plot-mode-guidelines>[\s\S]*?<\/plot-mode-guidelines>|<workbench-guidelines>[\s\S]*?<\/workbench-guidelines>)\s*/g;function f(a){return a.replace(e,"\n").replace(/\n{3,}/g,"\n\n").trim()}function g(a){return a.includes("<plot-mode-guidelines>")||a.includes("<workbench-guidelines>")?a:a.trim()?`${a.trimEnd()}
|
|
177
177
|
|
|
178
|
-
${d}`:d}function h(a){for(let b of a)if("kernel_plot_run"===b)return!0;return!1}},56429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>G,Bj:()=>L,Fn:()=>J,HG:()=>H,OF:()=>M});var e=c(75430),f=c(40402),g=c(9774),h=c(3867),i=c(85097),j=c(39737),k=c(11745),l=c(9805),m=c(27348),n=c(44036),o=c(66469),p=c(29021),q=c(33873),r=c(7048),s=c(41761),t=c(74788),u=c(57149),v=c(23537),w=c(86585),x=c(60103),y=a([e,f,g,h,i,k,t]);[e,f,g,h,i,k,t]=y.then?(await y)():y;let N=s.C1;class O{constructor(a,b,c={}){this.inner=a,this.modelRegistry=b,this.options=c,this.listeners=[],this.replayEvents=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.lastErrorMessage=null,this._alive=!0,this._lastAppliedPromptKey="",this._kernelStateCache=null}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getPhase(),c=this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.id}:null;return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:function(a){try{let b=a.sessionManager;return b.getCwd?.()??null}catch{return null}}(this.inner),busy:this.isBusy(),operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:c,activeTools:[...this.activeTools.entries()].map(([a,b])=>({id:a,name:b})),runStartedAt:B(this.runStartedAtMs),firstModelEventAt:B(this.firstModelEventAtMs),lastEventAt:B(this.lastEventAtMs),lastEventType:this.lastEventType,uptimeMs:this.runStartedAtMs?Math.max(0,a-this.runStartedAtMs):null,waitingForModelMs:"waiting_model"===b&&this.runStartedAtMs?Math.max(0,(this.firstModelEventAtMs??a)-this.runStartedAtMs):null,pendingMessageCount:"number"==typeof this.inner.pendingMessageCount?this.inner.pendingMessageCount:null,errorMessage:this.lastErrorMessage}}start(){this.unsubscribe=this.inner.subscribe(a=>{for(let b of(this.recordRuntimeEvent(a),this.bufferReplayEvent(a),this.resetIdleTimer(),("agent_end"===a.type||"agent_start"===a.type)&&K(),this.listeners))b(a)}),this.resetIdleTimer(),K()}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}bufferReplayEvent(a){"agent_start"===a.type&&(this.replayEvents=[]),this.replayEvents.push(a),this.replayEvents.length>200&&this.replayEvents.splice(0,this.replayEvents.length-200)}onEvent(a,b={}){if(this.listeners.push(a),b.replay)for(let b of this.replayEvents)a(b);return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if("boolean"==typeof a.planMode&&this.setPlanModeState(a.planMode),Array.isArray(a.toolNames)){let b=this.filterAvailableToolNames(a.toolNames);this.inner.setActiveToolsByName(b)}this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return K(),this.trackBusy("prompt",this.inner.prompt(a.message,d?.length?{images:d}:void 0)).then(()=>{this.emit({type:"prompt_done"}),K()}).catch(()=>{}),null}case"abort":return await this.inner.abort(),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage(),c=this.inner.agent.state?.systemPrompt??"",d=(0,g.cV)(),e=(0,t.U5)(this.inner.sessionId);return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:0,goal:e?.goal??null,planMode:(0,w.Ws)(this.inner.sessionManager.getEntries()),contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:d.generativeUI?c:(0,l.FE)(c),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"set_model":{let{provider:b,modelId:c}=a,d=this.modelRegistry.find(b,c);if(!d){let a=b.toLowerCase().replace(/-/g,"");a!==b&&(d=this.modelRegistry.find(a,c))}if(!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),{id:d.id,provider:d.provider,thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"fork":{let b,c=a.entryId,d=this.inner.sessionManager,g=this.inner.sessionFile;if(!d.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let h=d.getEntry(c);if(!h)throw Error("Invalid entry ID for forking");let i=d.getSessionDir();if(h.parentId){let a=e.SessionManager.open(g,i).createBranchedSession(h.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=e.SessionManager.create(d.getCwd(),i);a.newSession({parentSession:g}),b=a.getSessionFile()}let j=e.SessionManager.open(b,i).getSessionId();(0,f.O8)(j,b);let k=(0,t.U5)(this.sessionId);return k&&await (0,t.oR)(j,{...k,createdBy:"fork",createdAt:new Date().toISOString()}),this.destroy(),{cancelled:!1,newSessionId:j}}case"navigate_tree":return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),null}case"compact":{let{findCutPoint:b,DEFAULT_COMPACTION_SETTINGS:d}=await Promise.resolve().then(c.bind(c,75430)),e=this.inner.sessionManager.getBranch(),f={...d,...this.inner.settingsManager.getCompactionSettings()},g=-1;for(let a=e.length-1;a>=0;a--)if("compaction"===e[a].type){g=a;break}let h=g+1,i=b(e,h,e.length,f.keepRecentTokens);if((i.isSplitTurn?i.turnStartIndex:i.firstKeptEntryIndex)<=h)throw Error("Conversation too short to compact");return await this.trackBusy("compact",this.inner.compact(a.customInstructions))}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"steer":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("steer",this.inner.steer(a.message,d?.length?d:void 0)),null}case"follow_up":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("follow_up",this.inner.followUp(a.message,d?.length?d:void 0)),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"set_tools":{"boolean"==typeof a.planMode&&this.setPlanModeState(a.planMode,!0);let b=this.filterAvailableToolNames(a.toolNames);return this.inner.setActiveToolsByName(b),this.applyRuntimePrompts(),(0,t.LN)(this.sessionId,{lastToolNames:this.inner.getActiveToolNames()}).catch(()=>{}),null}case"abort_compaction":return this.inner.abortCompaction(),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),(0,v.Mc)(this.sessionId),this.unsubscribe?.(),this.onDestroyCallback?.(),K())}preparePromptContext(a){this.applyRuntimePrompts(a)}setPlanModeState(a,b=!1){(0,v.hv)(this.sessionId,a),b&&this.inner.sessionManager.appendCustomEntry("plan-mode",{enabled:a,todos:[],executing:!1})}async trackBusy(a,b){this.busyOperations.add(a),this.resetIdleTimer(),K();try{return await b}finally{this.busyOperations.delete(a),this.resetIdleTimer(),K()}}getPhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")||this.busyOperations.has("steer")||this.busyOperations.has("follow_up")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}emit(a){for(let b of this.listeners)b(a)}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs=b,this.firstModelEventAtMs=null,this.lastErrorMessage=null,this.activeTools.clear();break;case"message_start":case"message_update":{let c=a.message;c?.role==="assistant"&&(this.firstModelEventAtMs||(this.firstModelEventAtMs=b),"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage));break}case"message_end":{let b=a.message;b?.role==="assistant"&&"string"==typeof b.errorMessage&&(this.lastErrorMessage=b.errorMessage);break}case"tool_execution_start":{let b="string"==typeof a.toolCallId?a.toolCallId:"",c="string"==typeof a.toolName?a.toolName:"tool";b&&this.activeTools.set(b,c);break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b);break}case"agent_end":this.activeTools.clear(),this.runStartedAtMs=null,this.firstModelEventAtMs=null}}applyRuntimePrompts(a){if(!this.inner.agent.state||this.options.systemPromptDisabled)return;let b=(0,g.cV)(),c=this.inner.getActiveToolNames(),d=(0,n.R4)(c),e=z(this.inner),f=0;if(this.sessionFile)try{f=(0,p.statSync)(this.sessionFile).mtimeMs}catch{f=0}let h=null;if(d&&this.sessionFile)if(this._kernelStateCache&&this._kernelStateCache.mtime===f)h=this._kernelStateCache.summary;else{let a=(0,x.f)(this.sessionFile);a?(h=(0,x.v)(a),this._kernelStateCache={mtime:f,summary:h}):this._kernelStateCache=null}else this._kernelStateCache=null;let i=h?`|mtime=${f}`:"",j=a??"",k=`${d}|${b.generativeUI}|${j.length>0?"msg":"no-msg"}${i}`;if(this._lastAppliedPromptKey===k&&e.length>0)return;if(!b.generativeUI){let a=(0,n.X8)((0,l.FE)(e)),b=C(a,d),c=h?`${b}
|
|
178
|
+
${d}`:d}function h(a){for(let b of a)if("kernel_plot_run"===b)return!0;return!1}},56429:(a,b,c)=>{"use strict";c.a(a,async(a,d)=>{try{c.d(b,{A4:()=>I,Bj:()=>N,Fn:()=>L,HG:()=>J,OF:()=>O});var e=c(75430),f=c(40402),g=c(9774),h=c(3867),i=c(85097),j=c(39737),k=c(11745),l=c(9805),m=c(27348),n=c(44036),o=c(66469),p=c(29021),q=c(33873),r=c(55511),s=c(7048),t=c(41761),u=c(74788),v=c(57149),w=c(23537),x=c(86585),y=c(60103),z=c(36945),A=a([e,f,g,h,i,k,u]);[e,f,g,h,i,k,u]=A.then?(await A)():A;let P=t.C1;class Q{constructor(a,b,c={}){this.inner=a,this.modelRegistry=b,this.options=c,this.listeners=[],this.replayEvents=[],this.unsubscribe=null,this.idleTimer=null,this.onDestroyCallback=null,this.busyOperations=new Set,this.activeTools=new Map,this.runStartedAtMs=null,this.firstModelEventAtMs=null,this.lastEventAtMs=null,this.lastEventType=null,this.lastErrorMessage=null,this.streamEpoch=(0,r.randomUUID)(),this.nextEventId=1,this._alive=!0,this._lastAppliedPromptKey="",this._kernelStateCache=null}get sessionId(){return this.inner.sessionId}get sessionFile(){return this.inner.sessionFile??""}isAlive(){return this._alive}isBusy(){return this.busyOperations.size>0||this.inner.isStreaming||this.inner.isCompacting}getRuntimeStatus(){let a=Date.now(),b=this.getPhase(),c=this.inner.model?{provider:this.inner.model.provider,id:this.inner.model.id}:null;return{sessionId:this.sessionId,sessionFile:this.sessionFile,cwd:function(a){try{let b=a.sessionManager;return b.getCwd?.()??null}catch{return null}}(this.inner),busy:this.isBusy(),operations:[...this.busyOperations],isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,phase:b,model:c,activeTools:[...this.activeTools.entries()].map(([a,b])=>({id:a,name:b})),runStartedAt:D(this.runStartedAtMs),firstModelEventAt:D(this.firstModelEventAtMs),lastEventAt:D(this.lastEventAtMs),lastEventType:this.lastEventType,uptimeMs:this.runStartedAtMs?Math.max(0,a-this.runStartedAtMs):null,waitingForModelMs:"waiting_model"===b&&this.runStartedAtMs?Math.max(0,(this.firstModelEventAtMs??a)-this.runStartedAtMs):null,pendingMessageCount:"number"==typeof this.inner.pendingMessageCount?this.inner.pendingMessageCount:null,errorMessage:this.lastErrorMessage}}start(){this.unsubscribe=this.inner.subscribe(a=>{"message_end"===a.type?queueMicrotask(()=>this.forwardEvent(this.withLatestEntryId(a))):this.forwardEvent(a)}),this.resetIdleTimer(),M()}forwardEvent(a){this.recordRuntimeEvent(a);let b=this.sequenceEvent(a);for(let c of(this.bufferReplayEvent(b),this.resetIdleTimer(),("agent_end"===a.type||"agent_start"===a.type)&&M(),this.listeners))c(b)}withLatestEntryId(a){let b=a.message;if(!b||"user"!==b.role&&"assistant"!==b.role&&"toolResult"!==b.role)return a;try{let c=this.inner.sessionManager.getEntries(),d=JSON.stringify(b);for(let b=c.length-1;b>=0;b--){let e=c[b];if("message"===e.type&&"string"==typeof e.id&&JSON.stringify(e.message)===d)return{...a,__entryId:e.id}}}catch{}return a}resetIdleTimer(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=setTimeout(()=>{this.isBusy()?this.resetIdleTimer():this.destroy()},6e5)}sequenceEvent(a){"string"!=typeof this.streamEpoch&&(this.streamEpoch=(0,r.randomUUID)());let b=Number.isSafeInteger(this.nextEventId)?this.nextEventId:1;return this.nextEventId=b+1,{...a,__eventId:`${this.streamEpoch}:${b}`,__eventSequence:b,__streamEpoch:this.streamEpoch}}bufferReplayEvent(a){"agent_start"===a.type&&(this.replayEvents=[]),this.replayEvents.push(a),this.replayEvents.length>200&&this.replayEvents.splice(0,this.replayEvents.length-200)}onEvent(a,b={}){if(this.listeners.push(a),b.replay){let c=(0,z.Z)({streamEpoch:this.streamEpoch,nextSequence:this.nextEventId,events:this.replayEvents,afterEventId:b.afterEventId}),{afterSequence:d}=c;for(let e of(c.replayGap&&(a({type:"replay_gap",requestedAfter:b.afterEventId,streamEpoch:this.streamEpoch,oldestEventId:this.replayEvents[0]?.__eventId??null}),d=void 0),this.replayEvents)){let b="number"==typeof e.__eventSequence?e.__eventSequence:0;(void 0===d||b>d)&&a(e)}}return()=>{let b=this.listeners.indexOf(a);-1!==b&&this.listeners.splice(b,1)}}onDestroy(a){this.onDestroyCallback=a}async send(a){this.resetIdleTimer();let b=a.type;switch(b){case"prompt":{if("boolean"==typeof a.planMode&&this.setPlanModeState(a.planMode),Array.isArray(a.toolNames)){let b=this.filterAvailableToolNames(a.toolNames);this.inner.setActiveToolsByName(b)}this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return M(),this.trackBusy("prompt",this.inner.prompt(a.message,d?.length?{images:d}:void 0)).then(()=>{this.emit({type:"prompt_done"}),M()}).catch(()=>{}),null}case"abort":return await this.inner.abort(),null;case"get_state":{let a=this.inner.model,b=this.inner.getContextUsage(),c=this.inner.agent.state?.systemPrompt??"",d=(0,g.cV)(),e=(0,u.U5)(this.inner.sessionId);return{sessionId:this.inner.sessionId,sessionFile:this.inner.sessionFile??"",isStreaming:this.inner.isStreaming,isCompacting:this.inner.isCompacting,autoCompactionEnabled:this.inner.autoCompactionEnabled,autoRetryEnabled:this.inner.autoRetryEnabled,model:a?{id:a.id,provider:a.provider}:void 0,messageCount:0,pendingMessageCount:0,goal:e?.goal??null,planMode:(0,x.Ws)(this.inner.sessionManager.getEntries()),contextUsage:b?{percent:b.percent,contextWindow:b.contextWindow,tokens:b.tokens}:null,systemPrompt:d.generativeUI?c:(0,l.FE)(c),thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"set_model":{let{provider:b,modelId:c}=a,d=this.modelRegistry.find(b,c);if(!d){let a=b.toLowerCase().replace(/-/g,"");a!==b&&(d=this.modelRegistry.find(a,c))}if(!d)throw Error(`Model not found: ${b}/${c}`);return await this.inner.setModel(d),{id:d.id,provider:d.provider,thinkingLevel:this.inner.agent.state?.thinkingLevel??"off"}}case"fork":{let b,c=a.entryId,d=this.inner.sessionManager,g=this.inner.sessionFile;if(!d.isPersisted())return{cancelled:!0};if(!g)throw Error("Persisted session is missing a session file");let h=d.getEntry(c);if(!h)throw Error("Invalid entry ID for forking");let i=d.getSessionDir();if(h.parentId){let a=e.SessionManager.open(g,i).createBranchedSession(h.parentId);if(!a)throw Error("Failed to create forked session");b=a}else{let a=e.SessionManager.create(d.getCwd(),i);a.newSession({parentSession:g}),b=a.getSessionFile()}let j=e.SessionManager.open(b,i).getSessionId();(0,f.O8)(j,b);let k=(0,u.U5)(this.sessionId);return k&&await (0,u.oR)(j,{...k,createdBy:"fork",createdAt:new Date().toISOString()}),this.destroy(),{cancelled:!1,newSessionId:j}}case"navigate_tree":return{cancelled:(await this.inner.navigateTree(a.targetId,{})).cancelled};case"set_thinking_level":{let b=a.level;return this.inner.setThinkingLevel(b),"xhigh"===b&&this.inner.model?.compat?.thinkingFormat==="deepseek"&&this.inner.agent?.state&&(this.inner.agent.state.thinkingLevel="xhigh"),null}case"compact":{let{findCutPoint:b,DEFAULT_COMPACTION_SETTINGS:d}=await Promise.resolve().then(c.bind(c,75430)),e=this.inner.sessionManager.getBranch(),f={...d,...this.inner.settingsManager.getCompactionSettings()},g=-1;for(let a=e.length-1;a>=0;a--)if("compaction"===e[a].type){g=a;break}let h=g+1,i=b(e,h,e.length,f.keepRecentTokens);if((i.isSplitTurn?i.turnStartIndex:i.firstKeptEntryIndex)<=h)throw Error("Conversation too short to compact");return await this.trackBusy("compact",this.inner.compact(a.customInstructions))}case"set_auto_compaction":return this.inner.setAutoCompactionEnabled(a.enabled),null;case"steer":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("steer",this.inner.steer(a.message,d?.length?d:void 0)),null}case"follow_up":{this.preparePromptContext(a.message);let b=a.images,c=this.inner.model?.input,d=!c||0===c.length||c.includes("image")?b:void 0;return await this.trackBusy("follow_up",this.inner.followUp(a.message,d?.length?d:void 0)),null}case"get_tools":{let a=this.inner.getAllTools(),b=new Set(this.inner.getActiveToolNames());return a.map(a=>({name:a.name,description:a.description,active:b.has(a.name)}))}case"set_tools":{"boolean"==typeof a.planMode&&this.setPlanModeState(a.planMode,!0);let b=this.filterAvailableToolNames(a.toolNames);return this.inner.setActiveToolsByName(b),this.applyRuntimePrompts(),(0,u.LN)(this.sessionId,{lastToolNames:this.inner.getActiveToolNames()}).catch(()=>{}),null}case"abort_compaction":return this.inner.abortCompaction(),null;case"set_auto_retry":return this.inner.setAutoRetryEnabled(a.enabled),null;default:throw Error(`Unsupported command: ${b}`)}}destroy(){this._alive&&(this._alive=!1,this.idleTimer&&clearTimeout(this.idleTimer),(0,w.Mc)(this.sessionId),this.unsubscribe?.(),this.onDestroyCallback?.(),M())}preparePromptContext(a){this.applyRuntimePrompts(a)}setPlanModeState(a,b=!1){(0,w.hv)(this.sessionId,a),b&&this.inner.sessionManager.appendCustomEntry("plan-mode",{enabled:a,todos:[],executing:!1})}async trackBusy(a,b){this.busyOperations.add(a),this.resetIdleTimer(),M();try{return await b}finally{this.busyOperations.delete(a),this.resetIdleTimer(),M()}}getPhase(){return this.inner.isCompacting||this.busyOperations.has("compact")?"compacting":this.activeTools.size>0?"running_tools":this.inner.isStreaming||this.busyOperations.has("prompt")||this.busyOperations.has("steer")||this.busyOperations.has("follow_up")?this.firstModelEventAtMs?"streaming":"waiting_model":"idle"}emit(a){let b=this.sequenceEvent(a);for(let a of(this.bufferReplayEvent(b),this.listeners))a(b)}recordRuntimeEvent(a){let b=Date.now();switch(this.lastEventAtMs=b,this.lastEventType=a.type,a.type){case"agent_start":this.runStartedAtMs=b,this.firstModelEventAtMs=null,this.lastErrorMessage=null,this.activeTools.clear();break;case"message_start":case"message_update":{let c=a.message;c?.role==="assistant"&&(this.firstModelEventAtMs||(this.firstModelEventAtMs=b),"string"==typeof c.errorMessage&&(this.lastErrorMessage=c.errorMessage));break}case"message_end":{let b=a.message;b?.role==="assistant"&&"string"==typeof b.errorMessage&&(this.lastErrorMessage=b.errorMessage);break}case"tool_execution_start":{let b="string"==typeof a.toolCallId?a.toolCallId:"",c="string"==typeof a.toolName?a.toolName:"tool";b&&this.activeTools.set(b,c);break}case"tool_execution_end":{let b="string"==typeof a.toolCallId?a.toolCallId:"";b&&this.activeTools.delete(b);break}case"agent_end":this.activeTools.clear(),this.runStartedAtMs=null,this.firstModelEventAtMs=null}}applyRuntimePrompts(a){if(!this.inner.agent.state||this.options.systemPromptDisabled)return;let b=(0,g.cV)(),c=this.inner.getActiveToolNames(),d=(0,n.R4)(c),e=B(this.inner),f=0;if(this.sessionFile)try{f=(0,p.statSync)(this.sessionFile).mtimeMs}catch{f=0}let h=null;if(d&&this.sessionFile)if(this._kernelStateCache&&this._kernelStateCache.mtime===f)h=this._kernelStateCache.summary;else{let a=(0,y.f)(this.sessionFile);a?(h=(0,y.v)(a),this._kernelStateCache={mtime:f,summary:h}):this._kernelStateCache=null}else this._kernelStateCache=null;let i=h?`|mtime=${f}`:"",j=a??"",k=`${d}|${b.generativeUI}|${j.length>0?"msg":"no-msg"}${i}`;if(this._lastAppliedPromptKey===k&&e.length>0)return;if(!b.generativeUI){let a=(0,n.X8)((0,l.FE)(e)),b=E(a,d),c=h?`${b}
|
|
179
179
|
|
|
180
|
-
${h}`:b;
|
|
180
|
+
${h}`:b;C(this.inner,c),this._lastAppliedPromptKey=k;return}let o=(0,n.X8)((0,l.FE)(e)),q=(0,l.zN)(o),r=E(q,d),s=a?(0,m.WO)(r,a,{force:function(a){try{return a.getBranch().some(a=>!!a&&"object"==typeof a&&"message"===a.type&&!!a.message&&JSON.stringify(a.message).includes("show-widget"))}catch{return!1}}(this.inner.sessionManager)}):r;h&&(s=`${s}
|
|
181
181
|
|
|
182
|
-
${h}`),
|
|
182
|
+
${h}`),C(this.inner,s),this._lastAppliedPromptKey=k}filterAvailableToolNames(a){if(!Array.isArray(a))return[];let b=a.filter(a=>"string"==typeof a);if(!b.includes(t.lA))return b;let c=(0,e.getAgentDir)();return(0,s.Y)(c).ready?b:b.filter(a=>a!==t.lA)}}function B(a){return"string"==typeof a._baseSystemPrompt?a._baseSystemPrompt:a.agent.state?.systemPrompt??""}function C(a,b){"string"==typeof a._baseSystemPrompt&&(a._baseSystemPrompt=b),a.agent.state&&(a.agent.state.systemPrompt=b)}function D(a){return a?new Date(a).toISOString():null}function E(a,b){let c=(0,n.X8)(a);return b?(0,n.FJ)(c):c}function F(a){let b=(0,n.X8)((0,l.FE)(a.systemPrompt)),c=a.generativeUI?(0,l.zN)(b):b;return E(c,a.plotMode)}function G(a){let b=[],c=(0,o.sz)(a.agentDir);if((0,p.existsSync)(c))try{let a=(0,p.readFileSync)(c,"utf-8").trim();a&&b.push((0,o.Is)(a,(0,o.Tg)(c)))}catch{}let d=(0,o.td)(a.agentDir);if((0,p.existsSync)(d))try{let a=(0,p.readFileSync)(d,"utf-8").trim();a&&!(0,l.J)(a)&&b.push((0,o.x9)(a,(0,o.Tg)(d)))}catch{}let e=(0,o.o7)(a.cwd);if((0,p.existsSync)(e))try{let a=(0,p.readFileSync)(e,"utf-8").trim();a&&b.push((0,o.w0)(a,(0,o.Tg)(e)))}catch{}let f=a.piSystemPrompt.trim();return f&&b.push(["## Tool, Skill, and Project Instructions\n\nThe following instructions were generated by AnnoVibe/pi for tools, skills, and project-specific guidance.\nFollow them as system instructions, with SOUL/HARNESS above defining identity and global behavior.\n",f].join("\n")),b.join("\n\n").trim()}function H(){if(!globalThis.__piSessions){globalThis.__piSessions=new Map;let a=()=>globalThis.__piSessions?.forEach(a=>a.destroy());process.once("exit",a),process.once("SIGINT",a),process.once("SIGTERM",a)}return globalThis.__piSessions}function I(a){return H().get(a)}function J(){let a=new Set;for(let[b,c]of H())c.isAlive()&&c.isBusy()&&a.add(c.sessionId||b);return[...a]}function K(){return globalThis.__piRunningListeners||(globalThis.__piRunningListeners=new Set),globalThis.__piRunningListeners}function L(a){let b=K();return b.add(a),()=>{b.delete(a)}}let R="";function M(){let a=J(),b=JSON.stringify([...a].sort());if(b!==R)for(let c of(R=b,K()))try{c(a)}catch{}}function N(){let a=[...H().values()].filter(a=>a.isAlive()).map(a=>a.getRuntimeStatus()),b=a.filter(a=>a.busy);return{busy:b.length>0,activeSessions:a.length,busySessions:b,sessions:a}}async function O(a,b,d,l,m){let o=H(),p=(globalThis.__piStartLocks||(globalThis.__piStartLocks=new Map),globalThis.__piStartLocks),r=o.get(a);if(r?.isAlive())return{session:r,realSessionId:a};let w=p.get(a);if(w)return w;let x=(async()=>{let p=(0,e.getAgentDir)(),r=b?e.SessionManager.open(b,void 0):e.SessionManager.create(d,void 0),w=e.SettingsManager.create(d,p),x=function(a){try{let b=c(83026).resolve(`${a}/package.json`);return(0,q.dirname)(b)}catch{if(!(process.env.ANNOVIBE_PACKAGE_ROOT??process.env.PIDEX_PACKAGE_ROOT))return null;try{let b=(void 0).resolve(`${a}/package.json`);return(0,q.dirname)(b)}catch{return null}}}("@seqyuan/pi-kernel-plot"),y=await (0,e.createAgentSessionServices)({cwd:d,agentDir:p,settingsManager:w,resourceLoaderOptions:{additionalSkillPaths:x?[(0,q.join)(x,"skills")]:[],extensionFactories:[h.H,i.A,j.L,k.$]}}),z=!l&&a?(0,u.U5)(a)?.lastToolNames:void 0,A=function(a,b){if(a)return!a.includes(t.lA)||(0,s.Y)(b).ready?a:a.filter(a=>a!==t.lA)}(l??z,p),{session:D}=await (0,e.createAgentSessionFromServices)({services:y,sessionManager:r,tools:A??P}),E=(0,g.cV)(),H=D.agent.state?.systemPrompt??"";C(D,G({cwd:d,agentDir:p,piSystemPrompt:H})),C(D,F({systemPrompt:B(D),generativeUI:E.generativeUI,plotMode:(0,n.R4)(A??D.getActiveToolNames())})),A&&A.length>0&&(D.setActiveToolsByName(A),C(D,F({systemPrompt:B(D),generativeUI:E.generativeUI,plotMode:(0,n.R4)(A)}))),A?.length===0&&C(D,G({cwd:d,agentDir:p,piSystemPrompt:""}));let I=new Q(D,y.modelRegistry,{systemPromptDisabled:A?.length===0});I.start(),"im"===m&&C(D,(0,v.N9)(B(D)));let J=D.sessionId,K=D.sessionFile;return K&&(0,f.O8)(J,K),I.onDestroy(()=>o.delete(J)),o.set(J,I),{session:I,realSessionId:J}})().finally(()=>p.delete(a));return p.set(a,x),x}d()}catch(a){d(a)}})},57149:(a,b,c)=>{"use strict";c.d(b,{N9:()=>e});let d="<wecom_im_channel>";function e(a){return a.includes(d)?a:`${a}
|
|
183
183
|
|
|
184
184
|
${d}
|
|
185
185
|
## WeCom IM Channel Constraints
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/tobhDGatjzn_cJ3Pv_lo5/_buildManifest.js","static/tobhDGatjzn_cJ3Pv_lo5/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-961560b05f7e7346.js","static/chunks/4bd1b696-e356ca5ba0218e27.js","static/chunks/3794-123fdf632563f469.js","static/chunks/main-app-8d81a93b58bb990f.js"],rootMainFilesTree:{},pages:{"/_app":[]}};
|