@seqyuan/ennote 0.14.0 → 0.15.1
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/out/404.html +1 -1
- package/out/__next.__PAGE__.txt +3 -3
- package/out/__next._full.txt +13 -13
- package/out/__next._head.txt +4 -4
- package/out/__next._index.txt +7 -7
- package/out/__next._tree.txt +2 -2
- package/out/_next/static/chunks/0j5p~dc9hcv56.js +8 -0
- package/out/_next/static/chunks/0pzgp1v~.454n.css +1 -0
- package/out/_next/static/chunks/0qpe-en7gygy..js +1 -0
- package/out/_not-found/__next._full.txt +12 -12
- package/out/_not-found/__next._head.txt +4 -4
- package/out/_not-found/__next._index.txt +7 -7
- package/out/_not-found/__next._not-found.__PAGE__.txt +2 -2
- package/out/_not-found/__next._not-found.txt +3 -3
- package/out/_not-found/__next._tree.txt +2 -2
- package/out/_not-found.html +1 -1
- package/out/_not-found.txt +12 -12
- package/out/graphs/__next._full.txt +13 -13
- package/out/graphs/__next._head.txt +4 -4
- package/out/graphs/__next._index.txt +7 -7
- package/out/graphs/__next._tree.txt +2 -2
- package/out/graphs/__next.graphs.__PAGE__.txt +3 -3
- package/out/graphs/__next.graphs.txt +3 -3
- package/out/graphs.html +1 -1
- package/out/graphs.txt +13 -13
- package/out/heroes/__next._full.txt +13 -13
- package/out/heroes/__next._head.txt +4 -4
- package/out/heroes/__next._index.txt +7 -7
- package/out/heroes/__next._tree.txt +2 -2
- package/out/heroes/__next.heroes.__PAGE__.txt +3 -3
- package/out/heroes/__next.heroes.txt +3 -3
- package/out/heroes.html +1 -1
- package/out/heroes.txt +13 -13
- package/out/index.html +2 -2
- package/out/index.txt +13 -13
- package/package.json +1 -1
- package/skills/generative-canvas/SKILL.md +121 -0
- package/skills/generative-canvas/skill.json +7 -0
- package/out/_next/static/chunks/06_y.lv_svbtb.css +0 -1
- package/out/_next/static/chunks/083xw1nubbiw6.js +0 -1
- package/out/_next/static/chunks/0u~0j2k3ooiya.js +0 -8
- /package/out/_next/static/{g1rJaZRqv7r0ZY4hnAnlq → QzO4obvIvhjjd6K9KPuvm}/_buildManifest.js +0 -0
- /package/out/_next/static/{g1rJaZRqv7r0ZY4hnAnlq → QzO4obvIvhjjd6K9KPuvm}/_clientMiddlewareManifest.js +0 -0
- /package/out/_next/static/{g1rJaZRqv7r0ZY4hnAnlq → QzO4obvIvhjjd6K9KPuvm}/_ssgManifest.js +0 -0
package/out/index.html
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0o7ckb1vvjz_t.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/06_y.lv_svbtb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0mysj884b2.c5.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/07jz6e~ba22te.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0j-yjan8jn-8-.js"/><script src="/_next/static/chunks/0398hkm93nbvg.js" async=""></script><script src="/_next/static/chunks/0-j.wjqnc6zff.js" async=""></script><script src="/_next/static/chunks/turbopack-0~_.ya0bk7q2w.js" async=""></script><script src="/_next/static/chunks/0_yt3a8a9j1yd.js" async=""></script><script src="/_next/static/chunks/0e~k9df0bajhc.js" async=""></script><script src="/_next/static/chunks/083xw1nubbiw6.js" async=""></script><script src="/_next/static/chunks/0twsdyb7~zp7n.js" async=""></script><script src="/_next/static/chunks/0u~0j2k3ooiya.js" async=""></script><title>Ennote</title><meta name="description" content="Auditable local agent runtime built around Agent Flow"/><link rel="icon" href="/icon.png?icon.0l6z533ta5iiy.png" sizes="64x64" type="image/png"/><script id="theme-init">(function(){try{var t=localStorage.getItem("ennote-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);document.documentElement.classList.toggle("dark",d);document.documentElement.dataset.theme=d?"dark":"light"}catch(e){}})();</script><script id="locale-init">(function(){try{var l=localStorage.getItem("ennote-locale");document.documentElement.lang=(l==="zh-CN")?"zh-CN":"en"}catch(e){}})();</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><!--$?--><template id="B:0"></template><!--/$--><!--$--><!--/$--><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/0j-yjan8jn-8-.js" id="_R_" async=""></script><div hidden id="S:0"><div class="app-shell" data-testid="ennote-shell"><div class="sidebar-overlay-backdrop" data-open="true"></div><div class="sidebar-container sidebar-open" id="workspace-navigation" style="width:280px;min-width:280px;transition:none"><aside class="sidebar quiet-bars" aria-label="Projects and sessions"><div class="sidebar-logo-row"><div class="sidebar-brand"><span class="sidebar-brand-identity"><span class="brand-mark"><svg width="20" height="20" viewBox="0 0 32 32" fill="none" aria-hidden="true" focusable="false"><rect x="1" y="1" width="30" height="30" rx="9" fill="currentColor" opacity="0.10"></rect><path d="M11 9.5h10.5M11 16h8M11 22.5h10.5M11 9.5v13" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><span class="sidebar-brand-name">Ennote</span></span></div><button type="button" class="sidebar-collapse-toggle" title="Collapse sidebar" aria-label="Collapse navigation" aria-expanded="true" aria-controls="workspace-navigation"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><button type="button" class="sidebar-close-nav navigation-close" aria-label="Close navigation"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><button type="button" class="sidebar-new-session" disabled="" aria-label="New chat" title="Select a project first"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-plus" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path><path d="M12 8v6"></path><path d="M9 11h6"></path></svg><span>New Chat</span></button><nav class="sidebar-nav" aria-label="Workspace"><button type="button" class="sidebar-nav-item "><span class="nav-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg></span><span>Heroes</span></button><button type="button" class="sidebar-nav-item "><span class="nav-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span>Graphs</span></button></nav><div class="sidebar-workspace-head"><span class="workspace-label">Workspaces</span><div class="workspace-search-slot"><div class="workspace-search"><button type="button" class="workspace-action-button workspace-search-button" aria-label="Search sessions" aria-expanded="false" title="Search sessions"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button><input type="text" tabindex="-1" placeholder="Search sessions" aria-label="Search sessions" value=""/></div></div><div class="workspace-head-actions"><button type="button" class="workspace-action-button" aria-label="Add workspace" title="Add workspace"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-plus" aria-hidden="true"><path d="M12 10v6"></path><path d="M9 13h6"></path><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></button></div></div><div class="sidebar-project-selector ProjectSelector-module__RVW5Pa__root"><button type="button" class="ProjectSelector-module__RVW5Pa__trigger" title="Select project" aria-haspopup="menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder ProjectSelector-module__RVW5Pa__folder" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg><span class="ProjectSelector-module__RVW5Pa__label">Select project…</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ProjectSelector-module__RVW5Pa__chevron" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="sidebar-empty-project"><div>Choose a project to start.</div></div><span class="sr-only" role="status" aria-live="polite"></span><div class="sidebar-settings"><button type="button" class="sidebar-settings-trigger" aria-haspopup="dialog" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings2 lucide-settings-2" aria-hidden="true"><path d="M14 17H5"></path><path d="M19 7h-9"></path><circle cx="17" cy="17" r="3"></circle><circle cx="7" cy="7" r="3"></circle></svg><span>Settings</span></button></div></aside></div><div role="separator" aria-label="Resize sidebar" aria-orientation="vertical" aria-valuemin="264" aria-valuemax="420" aria-valuenow="280" tabindex="0" class="resize-handle" data-side="right" style="align-self:stretch;cursor:col-resize;display:flex;flex-shrink:0;justify-content:center;margin-left:-5px;margin-right:-5px;position:relative;touch-action:none;width:10px;z-index:var(--layer-drag-overlay)"><div class="resize-handle-line"></div></div><div class="workspace-content"><div class="app-topbar"><button type="button" aria-label="Hide navigation" title="Hide sidebar" class="primitives-module__BWnyvW__iconButton" aria-expanded="true" aria-controls="workspace-navigation"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><div class="topbar-title-area"><div class="topbar-title-group"><div class="topbar-session-title" title="No session">No session</div></div></div><button type="button" aria-label="Switch to dark mode" title="Switch to dark mode" class="primitives-module__BWnyvW__iconButton" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><button type="button" aria-label="Show panel" title="Show panel" class="primitives-module__BWnyvW__iconButton"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-right" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M15 3v18"></path></svg></button><div class="attention-panel"><button type="button" class="attention-bell" aria-label="Attention (0)" title="Attention"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></button></div></div><main class="chat-area" data-phase="welcome"><div class="composer-seat"><div class="composer-stack composer-welcome"><svg class="composer-welcome-glow" viewBox="0 0 1051 468" fill="none" aria-hidden="true"><defs><filter id="empty-glow-_R_1ukdbtb_" x="0" y="0" width="1051" height="468" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur"></feGaussianBlur></filter></defs><g filter="url(#empty-glow-_R_1ukdbtb_)"><ellipse cx="525.5" cy="234" rx="425.5" ry="134" fill="var(--accent)" fill-opacity="0.08"></ellipse></g></svg><div class="welcome-stage" data-testid="welcome-stage"><div class="welcome-stage-headline"><span class="welcome-stage-mark" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 32 32" fill="none" aria-hidden="true" focusable="false"><rect x="1" y="1" width="30" height="30" rx="9" fill="currentColor" opacity="0.10"></rect><path d="M11 9.5h10.5M11 16h8M11 22.5h10.5M11 9.5v13" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><h1 class="welcome-stage-title">Into the Unknown</h1><span class="welcome-stage-preview">Preview</span><button type="button" class="welcome-stage-settings">No model configured — open Settings to add a provider and model.</button></div></div><div class="welcome-workspace-row"><div class="workspace-chip-wrap"><button type="button" class="workspace-chip" title="Choose project…" aria-label="Select project…" aria-haspopup="menu" aria-expanded="false"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"></path></svg><span class="workspace-chip-label">Choose project…</span><svg class="workspace-chip-chevron" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 4.5L6 7.5L9 4.5"></path></svg></button></div></div><div class="composer-shell"><form class="composer"><div class="composer-resizer" role="separator" aria-orientation="horizontal" aria-label="Resize message input" tabindex="0"></div><div class="composer-editor composer-no-session"><textarea rows="1" readOnly="" placeholder="Choose a workspace to start" aria-label="Message the agent"></textarea><input class="sr-only" type="file" accept="image/png,image/jpeg,image/gif,image/webp" disabled=""/><input class="sr-only" type="file" multiple="" accept="image/png,image/jpeg,image/gif,image/webp,text/*,.md,.mdx,.json,.yaml,.yml,.toml,.csv,.tsv,.js,.jsx,.ts,.tsx,.py,.r,.go,.rs,.java,.c,.cpp,.h,.hpp,.css,.html,.xml,.sh,.sql" disabled=""/><div class="composer-toolbar-row"><div class="composer-tools"><button type="button" class="composer-plus" aria-expanded="false" aria-haspopup="dialog" aria-label="Insert a hero, graph, skill, or file" title="Insert a hero, graph, skill, or file" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="composer-trailing"><button type="submit" class="composer-primary" aria-label="Send" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up" aria-hidden="true"><path d="m5 12 7-7 7 7"></path><path d="M12 19V5"></path></svg></button></div></div></div><div class="composer-context-bar" aria-label="Run configuration"><div class="permission-chip"><button type="button" class="permission-chip-trigger" aria-label="Permission mode: Read-only" aria-haspopup="menu" aria-expanded="false" disabled=""><span class="permission-chip-icon" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8.20554 0.899994L14.7901 3.36857V7.01026C14.7901 12 11.0466 14.2103 8.20554 15.3C5.36446 14.2103 1.62012 12 1.62012 7.01026V3.36857L8.20554 0.899994Z" stroke="currentColor" stroke-width="1.31831" stroke-linejoin="round"></path><path d="M12.1654 5.7552L8.9447 9.41475C8.73044 9.65816 8.53628 9.8804 8.35774 10.0423C8.1713 10.2114 7.94235 10.3717 7.64016 10.4254C7.48207 10.4535 7.32 10.4552 7.16151 10.4294C6.85843 10.3801 6.62728 10.2223 6.43836 10.0559C6.25752 9.89653 6.06037 9.67732 5.84264 9.43705L4.72925 8.20897L5.63557 7.38707L6.74897 8.61594C6.98603 8.87755 7.12974 9.03533 7.24673 9.13839C7.31033 9.19443 7.34485 9.21476 7.35823 9.22122C7.38068 9.22484 7.40352 9.22515 7.42593 9.22122C7.40522 9.22502 7.42893 9.23294 7.53583 9.136C7.65132 9.03126 7.79316 8.87139 8.02643 8.60638L11.2479 4.94763L12.1654 5.7552Z" fill="currentColor"></path></svg></span><span class="permission-chip-label">Read-only</span><svg class="permission-chip-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 5.25L7 8.75L10.5 5.25"></path></svg></button></div><span class="composer-context-spacer" aria-hidden="true"></span><div class="model-select"><button type="button" class="model-select-trigger" aria-label="Select model" aria-haspopup="menu" aria-expanded="false" title="Select model" disabled=""><span class="model-select-trigger-label">Select model</span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down model-select-chevron" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></form><div class="composer-status-line"></div></div></div></div></main></div><div class="right-panel-container right-panel-closed" style="width:680px;min-width:680px"><button type="button" class="right-panel-back-button"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Back to conversation</button><div class="RightPanelLanes-module__CJ4Bja__lanes" data-mode="single" data-testid="right-panel-lanes"><div class="RightPanelLanes-module__CJ4Bja__primary" style="flex:1 1 auto" data-testid="right-panel-primary"><div class="right-panel-strip"><div role="tablist" aria-label="Workspace panel tabs" class="TabBar-module__VnsErG__bar"><div role="tab" tabindex="0" aria-selected="true" draggable="false" class="TabBar-module__VnsErG__tab" data-active="true"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></span><span class="TabBar-module__VnsErG__label" title="Files">Files</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Files"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div role="tab" tabindex="-1" aria-selected="false" draggable="false" class="TabBar-module__VnsErG__tab"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span class="TabBar-module__VnsErG__label" title="Graphs">Graphs</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Graphs"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div role="tab" tabindex="-1" aria-selected="false" draggable="false" class="TabBar-module__VnsErG__tab"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"></path></svg></span><span class="TabBar-module__VnsErG__label" title="Status">Status</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Status"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div></div><button type="button" class="right-panel-strip-action" aria-pressed="false" aria-label="Pin this channel" title="Pin this channel"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pin-off" aria-hidden="true"><path d="M12 17v5"></path><path d="M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89"></path><path d="m2 2 20 20"></path><path d="M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11"></path></svg></button></div><div class="RightPanelLanes-module__CJ4Bja__body"><div class="right-panel-channel-slot"><div class="file-tree-panel"><div class="file-tree-header"><div class="file-tree-heading">Files</div><div class="file-tree-path" title="/workspace">No project selected</div><div class="file-tree-actions"><button type="button" class="file-tree-action" aria-label="New file" title="New file" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-plus" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M9 15h6"></path><path d="M12 18v-6"></path></svg></button><button type="button" class="file-tree-action" aria-label="New folder" title="New folder" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-plus" aria-hidden="true"><path d="M12 10v6"></path><path d="M9 13h6"></path><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></button></div><label class="file-filter"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="sr-only">Filter files</span><input placeholder="Filter files..." disabled="" value=""/></label></div><div class="file-tree-list"><div class="file-tree-empty">Select a project to browse files.</div></div></div></div></div></div></div></div></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
|
|
2
|
-
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[26356,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/
|
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/0o7ckb1vvjz_t.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0pzgp1v~.454n.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/0mysj884b2.c5.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/07jz6e~ba22te.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/0j-yjan8jn-8-.js"/><script src="/_next/static/chunks/0398hkm93nbvg.js" async=""></script><script src="/_next/static/chunks/0-j.wjqnc6zff.js" async=""></script><script src="/_next/static/chunks/turbopack-0~_.ya0bk7q2w.js" async=""></script><script src="/_next/static/chunks/0_yt3a8a9j1yd.js" async=""></script><script src="/_next/static/chunks/0e~k9df0bajhc.js" async=""></script><script src="/_next/static/chunks/0qpe-en7gygy..js" async=""></script><script src="/_next/static/chunks/0twsdyb7~zp7n.js" async=""></script><script src="/_next/static/chunks/0j5p~dc9hcv56.js" async=""></script><title>Ennote</title><meta name="description" content="Auditable local agent runtime built around Agent Flow"/><link rel="icon" href="/icon.png?icon.0l6z533ta5iiy.png" sizes="64x64" type="image/png"/><script id="theme-init">(function(){try{var t=localStorage.getItem("ennote-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);document.documentElement.classList.toggle("dark",d);document.documentElement.dataset.theme=d?"dark":"light"}catch(e){}})();</script><script id="locale-init">(function(){try{var l=localStorage.getItem("ennote-locale");document.documentElement.lang=(l==="zh-CN")?"zh-CN":"en"}catch(e){}})();</script><script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script></head><body style="height:100dvh;display:flex;flex-direction:column"><div hidden=""><!--$--><!--/$--></div><!--$?--><template id="B:0"></template><!--/$--><!--$--><!--/$--><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/_next/static/chunks/0j-yjan8jn-8-.js" id="_R_" async=""></script><div hidden id="S:0"><div class="app-shell" data-testid="ennote-shell"><div class="sidebar-overlay-backdrop" data-open="true"></div><div class="sidebar-container sidebar-open" id="workspace-navigation" style="width:280px;min-width:280px;transition:none"><aside class="sidebar quiet-bars" aria-label="Projects and sessions"><div class="sidebar-logo-row"><div class="sidebar-brand"><span class="sidebar-brand-identity"><span class="brand-mark"><svg width="20" height="20" viewBox="0 0 32 32" fill="none" aria-hidden="true" focusable="false"><rect x="1" y="1" width="30" height="30" rx="9" fill="currentColor" opacity="0.10"></rect><path d="M11 9.5h10.5M11 16h8M11 22.5h10.5M11 9.5v13" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><span class="sidebar-brand-name">Ennote</span></span></div><button type="button" class="sidebar-collapse-toggle" title="Collapse sidebar" aria-label="Collapse navigation" aria-expanded="true" aria-controls="workspace-navigation"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><button type="button" class="sidebar-close-nav navigation-close" aria-label="Close navigation"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><button type="button" class="sidebar-new-session" disabled="" aria-label="New chat" title="Select a project first"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-message-square-plus" aria-hidden="true"><path d="M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z"></path><path d="M12 8v6"></path><path d="M9 11h6"></path></svg><span>New Chat</span></button><nav class="sidebar-nav" aria-label="Workspace"><button type="button" class="sidebar-nav-item "><span class="nav-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bot" aria-hidden="true"><path d="M12 8V4H8"></path><rect width="16" height="12" x="4" y="8" rx="2"></rect><path d="M2 14h2"></path><path d="M20 14h2"></path><path d="M15 13v2"></path><path d="M9 13v2"></path></svg></span><span>Heroes</span></button><button type="button" class="sidebar-nav-item "><span class="nav-icon"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span>Graphs</span></button></nav><div class="sidebar-workspace-head"><span class="workspace-label">Workspaces</span><div class="workspace-search-slot"><div class="workspace-search"><button type="button" class="workspace-action-button workspace-search-button" aria-label="Search sessions" aria-expanded="false" title="Search sessions"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button><input type="text" tabindex="-1" placeholder="Search sessions" aria-label="Search sessions" value=""/></div></div><div class="workspace-head-actions"><button type="button" class="workspace-action-button" aria-label="Add workspace" title="Add workspace"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-plus" aria-hidden="true"><path d="M12 10v6"></path><path d="M9 13h6"></path><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></button></div></div><div class="sidebar-project-selector ProjectSelector-module__RVW5Pa__root"><button type="button" class="ProjectSelector-module__RVW5Pa__trigger" title="Select project" aria-haspopup="menu" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder ProjectSelector-module__RVW5Pa__folder" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg><span class="ProjectSelector-module__RVW5Pa__label">Select project…</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down ProjectSelector-module__RVW5Pa__chevron" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div><div class="sidebar-empty-project"><div>Choose a project to start.</div></div><span class="sr-only" role="status" aria-live="polite"></span><div class="sidebar-settings"><button type="button" class="sidebar-settings-trigger" aria-haspopup="dialog" aria-expanded="false"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings2 lucide-settings-2" aria-hidden="true"><path d="M14 17H5"></path><path d="M19 7h-9"></path><circle cx="17" cy="17" r="3"></circle><circle cx="7" cy="7" r="3"></circle></svg><span>Settings</span></button></div></aside></div><div role="separator" aria-label="Resize sidebar" aria-orientation="vertical" aria-valuemin="264" aria-valuemax="420" aria-valuenow="280" tabindex="0" class="resize-handle" data-side="right" style="align-self:stretch;cursor:col-resize;display:flex;flex-shrink:0;justify-content:center;margin-left:-5px;margin-right:-5px;position:relative;touch-action:none;width:10px;z-index:var(--layer-drag-overlay)"><div class="resize-handle-line"></div></div><div class="workspace-content"><div class="app-topbar"><button type="button" aria-label="Hide navigation" title="Hide sidebar" class="primitives-module__BWnyvW__iconButton" aria-expanded="true" aria-controls="workspace-navigation"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><div class="topbar-title-area"><div class="topbar-title-group"><div class="topbar-session-title" title="No session">No session</div></div></div><button type="button" aria-label="Switch to dark mode" title="Switch to dark mode" class="primitives-module__BWnyvW__iconButton" aria-pressed="false"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><button type="button" aria-label="Show panel" title="Show panel" class="primitives-module__BWnyvW__iconButton"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-right" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M15 3v18"></path></svg></button><div class="attention-panel"><button type="button" class="attention-bell" aria-label="Attention (0)" title="Attention"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg></button></div></div><main class="chat-area" data-phase="welcome"><div class="composer-seat"><div class="composer-stack composer-welcome"><svg class="composer-welcome-glow" viewBox="0 0 1051 468" fill="none" aria-hidden="true"><defs><filter id="empty-glow-_R_1ukdbtb_" x="0" y="0" width="1051" height="468" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB"><feFlood flood-opacity="0" result="BackgroundImageFix"></feFlood><feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"></feBlend><feGaussianBlur stdDeviation="50" result="effect1_foregroundBlur"></feGaussianBlur></filter></defs><g filter="url(#empty-glow-_R_1ukdbtb_)"><ellipse cx="525.5" cy="234" rx="425.5" ry="134" fill="var(--accent)" fill-opacity="0.08"></ellipse></g></svg><div class="welcome-stage" data-testid="welcome-stage"><div class="welcome-stage-headline"><span class="welcome-stage-mark" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 32 32" fill="none" aria-hidden="true" focusable="false"><rect x="1" y="1" width="30" height="30" rx="9" fill="currentColor" opacity="0.10"></rect><path d="M11 9.5h10.5M11 16h8M11 22.5h10.5M11 9.5v13" stroke="currentColor" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"></path></svg></span><h1 class="welcome-stage-title">Into the Unknown</h1><span class="welcome-stage-preview">Preview</span><button type="button" class="welcome-stage-settings">No model configured — open Settings to add a provider and model.</button></div></div><div class="welcome-workspace-row"><div class="workspace-chip-wrap"><button type="button" class="workspace-chip" title="Choose project…" aria-label="Select project…" aria-haspopup="menu" aria-expanded="false"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.35" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M1.5 5A1.5 1.5 0 0 1 3 3.5h3l1.2 1.5H13A1.5 1.5 0 0 1 14.5 6.5L13.6 11A1.5 1.5 0 0 1 12.1 12.5H3A1.5 1.5 0 0 1 1.5 11V5Z"></path></svg><span class="workspace-chip-label">Choose project…</span><svg class="workspace-chip-chevron" width="12" height="12" viewBox="0 0 12 12" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 4.5L6 7.5L9 4.5"></path></svg></button></div></div><div class="composer-shell"><form class="composer"><div class="composer-resizer" role="separator" aria-orientation="horizontal" aria-label="Resize message input" tabindex="0"></div><div class="composer-editor composer-no-session"><textarea rows="1" readOnly="" placeholder="Choose a workspace to start" aria-label="Message the agent"></textarea><input class="sr-only" type="file" accept="image/png,image/jpeg,image/gif,image/webp" disabled=""/><input class="sr-only" type="file" multiple="" accept="image/png,image/jpeg,image/gif,image/webp,text/*,.md,.mdx,.json,.yaml,.yml,.toml,.csv,.tsv,.js,.jsx,.ts,.tsx,.py,.r,.go,.rs,.java,.c,.cpp,.h,.hpp,.css,.html,.xml,.sh,.sql" disabled=""/><div class="composer-toolbar-row"><div class="composer-tools"><button type="button" class="composer-plus" aria-expanded="false" aria-haspopup="dialog" aria-label="Insert a hero, graph, skill, or file" title="Insert a hero, graph, skill, or file" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-plus" aria-hidden="true"><path d="M5 12h14"></path><path d="M12 5v14"></path></svg></button></div><div class="composer-trailing"><button type="submit" class="composer-primary" aria-label="Send" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up" aria-hidden="true"><path d="m5 12 7-7 7 7"></path><path d="M12 19V5"></path></svg></button></div></div></div><div class="composer-context-bar" aria-label="Run configuration"><div class="permission-chip"><button type="button" class="permission-chip-trigger" aria-label="Permission mode: Read-only" aria-haspopup="menu" aria-expanded="false" disabled=""><span class="permission-chip-icon" aria-hidden="true"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><path d="M8.20554 0.899994L14.7901 3.36857V7.01026C14.7901 12 11.0466 14.2103 8.20554 15.3C5.36446 14.2103 1.62012 12 1.62012 7.01026V3.36857L8.20554 0.899994Z" stroke="currentColor" stroke-width="1.31831" stroke-linejoin="round"></path><path d="M12.1654 5.7552L8.9447 9.41475C8.73044 9.65816 8.53628 9.8804 8.35774 10.0423C8.1713 10.2114 7.94235 10.3717 7.64016 10.4254C7.48207 10.4535 7.32 10.4552 7.16151 10.4294C6.85843 10.3801 6.62728 10.2223 6.43836 10.0559C6.25752 9.89653 6.06037 9.67732 5.84264 9.43705L4.72925 8.20897L5.63557 7.38707L6.74897 8.61594C6.98603 8.87755 7.12974 9.03533 7.24673 9.13839C7.31033 9.19443 7.34485 9.21476 7.35823 9.22122C7.38068 9.22484 7.40352 9.22515 7.42593 9.22122C7.40522 9.22502 7.42893 9.23294 7.53583 9.136C7.65132 9.03126 7.79316 8.87139 8.02643 8.60638L11.2479 4.94763L12.1654 5.7552Z" fill="currentColor"></path></svg></span><span class="permission-chip-label">Read-only</span><svg class="permission-chip-chevron" width="14" height="14" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3.5 5.25L7 8.75L10.5 5.25"></path></svg></button></div><span class="composer-context-spacer" aria-hidden="true"></span><div class="model-select"><button type="button" class="model-select-trigger" aria-label="Select model" aria-haspopup="menu" aria-expanded="false" title="Select model" disabled=""><span class="model-select-trigger-label">Select model</span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down model-select-chevron" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button></div></div></form><div class="composer-status-line"></div></div></div></div></main></div><div class="right-panel-container right-panel-closed" style="width:680px;min-width:680px"><button type="button" class="right-panel-back-button"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-left" aria-hidden="true"><path d="m12 19-7-7 7-7"></path><path d="M19 12H5"></path></svg>Back to conversation</button><div class="RightPanelLanes-module__CJ4Bja__lanes" data-mode="single" data-testid="right-panel-lanes"><div class="RightPanelLanes-module__CJ4Bja__primary" style="flex:1 1 auto" data-testid="right-panel-primary"><div class="right-panel-strip"><div role="tablist" aria-label="Workspace panel tabs" class="TabBar-module__VnsErG__bar"><div role="tab" tabindex="0" aria-selected="true" draggable="false" class="TabBar-module__VnsErG__tab" data-active="true"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder" aria-hidden="true"><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></span><span class="TabBar-module__VnsErG__label" title="Files">Files</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Files"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div role="tab" tabindex="-1" aria-selected="false" draggable="false" class="TabBar-module__VnsErG__tab"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-workflow" aria-hidden="true"><rect width="8" height="8" x="3" y="3" rx="2"></rect><path d="M7 11v4a2 2 0 0 0 2 2h4"></path><rect width="8" height="8" x="13" y="13" rx="2"></rect></svg></span><span class="TabBar-module__VnsErG__label" title="Graphs">Graphs</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Graphs"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div><div role="tab" tabindex="-1" aria-selected="false" draggable="false" class="TabBar-module__VnsErG__tab"><span class="TabBar-module__VnsErG__icon"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-wrench" aria-hidden="true"><path d="M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z"></path></svg></span><span class="TabBar-module__VnsErG__label" title="Status">Status</span><button type="button" class="TabBar-module__VnsErG__close" title="Close" aria-label="Close Status"><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-x" aria-hidden="true"><path d="M18 6 6 18"></path><path d="m6 6 12 12"></path></svg></button></div></div><button type="button" class="right-panel-strip-action" aria-pressed="false" aria-label="Pin this channel" title="Pin this channel"><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-pin-off" aria-hidden="true"><path d="M12 17v5"></path><path d="M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89"></path><path d="m2 2 20 20"></path><path d="M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11"></path></svg></button></div><div class="RightPanelLanes-module__CJ4Bja__body"><div class="right-panel-channel-slot"><div class="file-tree-panel"><div class="file-tree-header"><div class="file-tree-heading">Files</div><div class="file-tree-path" title="/workspace">No project selected</div><div class="file-tree-actions"><button type="button" class="file-tree-action" aria-label="New file" title="New file" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-plus" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M9 15h6"></path><path d="M12 18v-6"></path></svg></button><button type="button" class="file-tree-action" aria-label="New folder" title="New folder" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-plus" aria-hidden="true"><path d="M12 10v6"></path><path d="M9 13h6"></path><path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"></path></svg></button></div><label class="file-filter"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="sr-only">Filter files</span><input placeholder="Filter files..." disabled="" value=""/></label></div><div class="file-tree-list"><div class="file-tree-empty">Select a project to browse files.</div></div></div></div></div></div></div></div></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
|
|
2
|
+
$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[26356,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"WorkerGenerationGuard\"]\n3:I[27437,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"LocaleProvider\"]\n4:I[85026,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"WorkspaceProvider\"]\n5:I[39756,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"default\"]\n6:I[37457,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"default\"]\n7:\"$Sreact.suspense\"\n8:I[59665,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\",\"/_next/static/chunks/0twsdyb7~zp7n.js\",\"/_next/static/chunks/0j5p~dc9hcv56.js\"],\"AppShell\"]\n9:I[97367,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"OutletBoundary\"]\nb:I[97367,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0o7ckb1vvjz_t.css\",\"style\"]\n:HL[\"/_next/static/chunks/0pzgp1v~.454n.css\",\"style\"]\n:HL[\"/_next/static/chunks/0mysj884b2.c5.css\",\"style\"]\n:HL[\"/_next/static/chunks/07jz6e~ba22te.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0o7ckb1vvjz_t.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pzgp1v~.454n.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0mysj884b2.c5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0e~k9df0bajhc.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0qpe-en7gygy..js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"id\":\"theme-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var t=localStorage.getItem(\\\"ennote-theme\\\");var d=t===\\\"dark\\\"||(t!==\\\"light\\\"\u0026\u0026matchMedia(\\\"(prefers-color-scheme:dark)\\\").matches);document.documentElement.classList.toggle(\\\"dark\\\",d);document.documentElement.dataset.theme=d?\\\"dark\\\":\\\"light\\\"}catch(e){}})();\"}}],[\"$\",\"script\",null,{\"id\":\"locale-init\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){try{var l=localStorage.getItem(\\\"ennote-locale\\\");document.documentElement.lang=(l===\\\"zh-CN\\\")?\\\"zh-CN\\\":\\\"en\\\"}catch(e){}})();\"}}]]}],[\"$\",\"body\",null,{\"style\":{\"height\":\"100dvh\",\"display\":\"flex\",\"flexDirection\":\"column\"},\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$L5\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L6\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$7\",null,{\"children\":[\"$\",\"$L8\",null,{}]}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/07jz6e~ba22te.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0twsdyb7~zp7n.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0j5p~dc9hcv56.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@a\"}]}]]}],{},null,false,null]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0o7ckb1vvjz_t.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0pzgp1v~.454n.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0mysj884b2.c5.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"QzO4obvIvhjjd6K9KPuvm\"}\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"10:I[27201,[\"/_next/static/chunks/0_yt3a8a9j1yd.js\",\"/_next/static/chunks/0e~k9df0bajhc.js\",\"/_next/static/chunks/0qpe-en7gygy..js\"],\"IconMark\"]\na:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Ennote\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Auditable local agent runtime built around Agent Flow\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/icon.png?icon.0l6z533ta5iiy.png\",\"sizes\":\"64x64\",\"type\":\"image/png\"}],[\"$\",\"$L10\",\"3\",{}]]\n"])</script></body></html>
|
package/out/index.txt
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
1:"$Sreact.fragment"
|
|
2
|
-
2:I[26356,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
3
|
-
3:I[27437,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
4
|
-
4:I[85026,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
5
|
-
5:I[39756,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
6
|
-
6:I[37457,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
2
|
+
2:I[26356,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"WorkerGenerationGuard"]
|
|
3
|
+
3:I[27437,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"LocaleProvider"]
|
|
4
|
+
4:I[85026,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"WorkspaceProvider"]
|
|
5
|
+
5:I[39756,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"default"]
|
|
6
|
+
6:I[37457,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"default"]
|
|
7
7
|
7:"$Sreact.suspense"
|
|
8
|
-
8:I[59665,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
9
|
-
9:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
10
|
-
b:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
11
|
-
d:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
12
|
-
f:I[68027,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
8
|
+
8:I[59665,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js","/_next/static/chunks/0twsdyb7~zp7n.js","/_next/static/chunks/0j5p~dc9hcv56.js"],"AppShell"]
|
|
9
|
+
9:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"OutletBoundary"]
|
|
10
|
+
b:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"ViewportBoundary"]
|
|
11
|
+
d:I[97367,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"MetadataBoundary"]
|
|
12
|
+
f:I[68027,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"default",1]
|
|
13
13
|
:HL["/_next/static/chunks/0o7ckb1vvjz_t.css","style"]
|
|
14
|
-
:HL["/_next/static/chunks/
|
|
14
|
+
:HL["/_next/static/chunks/0pzgp1v~.454n.css","style"]
|
|
15
15
|
:HL["/_next/static/chunks/0mysj884b2.c5.css","style"]
|
|
16
16
|
:HL["/_next/static/chunks/07jz6e~ba22te.css","style"]
|
|
17
|
-
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0o7ckb1vvjz_t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/
|
|
17
|
+
0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0o7ckb1vvjz_t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0pzgp1v~.454n.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/chunks/0mysj884b2.c5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0_yt3a8a9j1yd.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0e~k9df0bajhc.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/0qpe-en7gygy..js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","script",null,{"id":"theme-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var t=localStorage.getItem(\"ennote-theme\");var d=t===\"dark\"||(t!==\"light\"&&matchMedia(\"(prefers-color-scheme:dark)\").matches);document.documentElement.classList.toggle(\"dark\",d);document.documentElement.dataset.theme=d?\"dark\":\"light\"}catch(e){}})();"}}],["$","script",null,{"id":"locale-init","dangerouslySetInnerHTML":{"__html":"(function(){try{var l=localStorage.getItem(\"ennote-locale\");document.documentElement.lang=(l===\"zh-CN\")?\"zh-CN\":\"en\"}catch(e){}})();"}}]]}],["$","body",null,{"style":{"height":"100dvh","display":"flex","flexDirection":"column"},"children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[["$","$7",null,{"children":["$","$L8",null,{}]}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/07jz6e~ba22te.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/0twsdyb7~zp7n.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/0j5p~dc9hcv56.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lb",null,{"children":"$Lc"}],["$","div",null,{"hidden":true,"children":["$","$Ld",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$Le"}]}]}],null]}],false]],"m":"$undefined","G":["$f",[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/0o7ckb1vvjz_t.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/chunks/0pzgp1v~.454n.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/chunks/0mysj884b2.c5.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"QzO4obvIvhjjd6K9KPuvm"}
|
|
18
18
|
c:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
|
|
19
|
-
10:I[27201,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/
|
|
19
|
+
10:I[27201,["/_next/static/chunks/0_yt3a8a9j1yd.js","/_next/static/chunks/0e~k9df0bajhc.js","/_next/static/chunks/0qpe-en7gygy..js"],"IconMark"]
|
|
20
20
|
a:null
|
|
21
21
|
e:[["$","title","0",{"children":"Ennote"}],["$","meta","1",{"name":"description","content":"Auditable local agent runtime built around Agent Flow"}],["$","link","2",{"rel":"icon","href":"/icon.png?icon.0l6z533ta5iiy.png","sizes":"64x64","type":"image/png"}],["$","$L10","3",{}]]
|
package/package.json
CHANGED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Generative Canvas
|
|
2
|
+
|
|
3
|
+
A **widget** is an HTML page the reader sees live in the conversation: an SVG
|
|
4
|
+
diagram, an interactive chart, a calculator, a parameter explorer. Unlike a
|
|
5
|
+
`static_html` artifact it may run scripts — inside an isolated frame with no
|
|
6
|
+
network, no cookies and no access to the Workspace.
|
|
7
|
+
|
|
8
|
+
Use it when the answer is a picture the user should be able to poke at. Do not use
|
|
9
|
+
it for ordinary prose, tables, or files.
|
|
10
|
+
|
|
11
|
+
## How to publish one
|
|
12
|
+
|
|
13
|
+
1. Write the page into the Workspace with `write` (or generate it with a script and
|
|
14
|
+
`publish_artifact` the result):
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
write({ path: "/workspace/canvas.html", content: "<!doctype html>…" })
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. Publish it, naming the kind:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
publish_artifact({ path: "/workspace/canvas.html", kind: "widget" })
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
`kind: "widget"` is required. Without it an `.html` file is published as
|
|
27
|
+
`static_html`, which is sanitized into a script-free document — your SVG and your
|
|
28
|
+
script would both disappear.
|
|
29
|
+
|
|
30
|
+
## Hard limits
|
|
31
|
+
|
|
32
|
+
| Limit | Value | Why |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| Size | **128 KiB** | it travels to phones over a bounded channel; this is not a document download |
|
|
35
|
+
| Extension | `.html` / `.htm`, UTF-8, starts with a tag | classification |
|
|
36
|
+
| Scripts | inline, or from `cdnjs.cloudflare.com`, `cdn.jsdelivr.net`, `unpkg.com`, `esm.sh` | the only allowed hosts |
|
|
37
|
+
| Network | **none** — no `fetch`, no `XHR`, no WebSocket, no remote images | the frame is sandboxed |
|
|
38
|
+
| Images | inline SVG, `data:` or `blob:` | remote `img` is blocked on purpose |
|
|
39
|
+
| `eval` / `new Function` | blocked | no `unsafe-eval` |
|
|
40
|
+
| Width | 320–900 px, fluid | the frame is a message, not a screen |
|
|
41
|
+
| Height | measured and reported; capped at 900 px in the timeline | beyond that it scrolls inside the frame |
|
|
42
|
+
|
|
43
|
+
If a widget needs data, **you** read it and inline a bounded snapshot:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
read({ path: "/workspace/markers.csv" }) → embed at most a few hundred rows
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
A widget cannot read anything itself. Inlining is also what makes it auditable: the
|
|
50
|
+
published bytes carry the data that produced the picture.
|
|
51
|
+
|
|
52
|
+
## Structure
|
|
53
|
+
|
|
54
|
+
```html
|
|
55
|
+
<!doctype html>
|
|
56
|
+
<style>
|
|
57
|
+
.card { background: var(--color-background-secondary); color: var(--color-text-primary);
|
|
58
|
+
border: 1px solid var(--color-border-secondary); border-radius: var(--radius-md); }
|
|
59
|
+
</style>
|
|
60
|
+
<div class="card">
|
|
61
|
+
<svg viewBox="0 0 640 320" width="100%" height="320">…</svg>
|
|
62
|
+
</div>
|
|
63
|
+
<script>
|
|
64
|
+
// runs after the markup; keep it at the end
|
|
65
|
+
</script>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Rules of thumb:
|
|
69
|
+
|
|
70
|
+
- **Self-contained first.** Inline SVG and inline CSS beat a CDN. Use Chart.js (from
|
|
71
|
+
`cdnjs.cloudflare.com`) only when a real chart is needed, and never a chart library
|
|
72
|
+
for something four `<rect>`s can draw.
|
|
73
|
+
- **Never fix a pixel width.** Use `width="100%"` and a `viewBox`; the frame is
|
|
74
|
+
narrow on a phone.
|
|
75
|
+
- **Put `<script>` at the very end.** Scripts before the content delay the first
|
|
76
|
+
paint and the height report.
|
|
77
|
+
- **Stay under a few hundred DOM nodes.** A canvas that repaints constantly will
|
|
78
|
+
visibly cost a phone battery.
|
|
79
|
+
|
|
80
|
+
## Theme
|
|
81
|
+
|
|
82
|
+
The frame receives these CSS custom properties, already resolved for the current
|
|
83
|
+
light/dark theme. Use them instead of literal colors so the widget belongs to the
|
|
84
|
+
app:
|
|
85
|
+
|
|
86
|
+
| Property | Use |
|
|
87
|
+
|---|---|
|
|
88
|
+
| `--color-background-primary` / `-secondary` / `-tertiary` | page, card, inset |
|
|
89
|
+
| `--color-text-primary` / `-secondary` / `-tertiary` | headings, body, captions |
|
|
90
|
+
| `--color-border-primary` / `-secondary` / `-tertiary` | box edges |
|
|
91
|
+
| `--color-accent` | the one thing to look at |
|
|
92
|
+
| `--color-background-success` / `-warning` / `-danger` / `-info` | status fills |
|
|
93
|
+
| `--color-text-success` / `-warning` / `-danger` / `-info` | status text |
|
|
94
|
+
| `--color-chart-1` … `--color-chart-6` | categorical series |
|
|
95
|
+
| `--font-sans` / `--font-mono` | typography |
|
|
96
|
+
| `--radius-sm` / `-md` / `-lg` | corners |
|
|
97
|
+
|
|
98
|
+
Body text at 14 px, captions no smaller than 11 px. The theme can change while the
|
|
99
|
+
widget is on screen; anything styled with these properties follows automatically.
|
|
100
|
+
|
|
101
|
+
## Picking a form
|
|
102
|
+
|
|
103
|
+
| The question is about | Draw |
|
|
104
|
+
|---|---|
|
|
105
|
+
| a process, pipeline, or decision path | flowchart: boxes, arrows, one decision shape |
|
|
106
|
+
| change over time | line chart, or a timeline with labelled events |
|
|
107
|
+
| composition, proportions | stacked bar or a small multiple; a pie only for two or three parts |
|
|
108
|
+
| ranking | sorted horizontal bars, labels at the left |
|
|
109
|
+
| relationships | node-link diagram, at most ~15 nodes |
|
|
110
|
+
| a comparison of two things | two matching columns with the same rows |
|
|
111
|
+
|
|
112
|
+
Every widget needs a caption inside the page saying what it shows and in what
|
|
113
|
+
units. A picture with no units is decoration.
|
|
114
|
+
|
|
115
|
+
## Failure is visible
|
|
116
|
+
|
|
117
|
+
A script that throws, or a dependency that cannot load, degrades the widget in
|
|
118
|
+
place: the reader sees the drawing plus a notice and a link to the source. Nothing
|
|
119
|
+
you publish can break the conversation, the panel, or a later message. That is a
|
|
120
|
+
safety net, not a licence — publish a page you have reasoned about, not one that
|
|
121
|
+
might hang.
|