anycodex 0.0.19 → 0.0.21

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.
@@ -29,4 +29,4 @@
29
29
  * The original design remains. The terminal itself
30
30
  * has been extended to include xterm CSI codes, among
31
31
  * other features.
32
- */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.terminal-tab{height:100%;width:100%;background:var(--color-bg);padding:4px;position:relative}.terminal-xterm{height:100%;width:100%}.terminal-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text-dim);opacity:.5}.terminal-empty p{font-size:13px;margin:0}.terminal-tab .xterm{height:100%}.terminal-tab .xterm-cursor-layer{display:none!important}.terminal-tab .xterm-viewport{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.terminal-tab .xterm-viewport::-webkit-scrollbar{width:6px}.terminal-tab .xterm-viewport::-webkit-scrollbar-track{background:transparent}.terminal-tab .xterm-viewport::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.terminal-tab .xterm-viewport::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.main-view{flex:1;overflow:hidden;display:flex;flex-direction:column}.main-path-bar{display:flex;align-items:center;justify-content:center;padding:6px 12px;font-size:11px;color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.main-path-text{font-family:var(--font-mono);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-tab-area{flex:1;position:relative;overflow:hidden}.main-tab-panel{flex-direction:column;height:100%;width:100%;position:absolute;top:0;right:0;bottom:0;left:0}.main-view-iframe{width:100%;height:100%;border:none}.conversation-panel{display:flex;flex-direction:column;overflow:hidden}.conversation-floating{position:absolute;top:20px;right:20px;z-index:50;background:#1a1d2759;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius)}.conversation-sidebar{width:320px;flex-shrink:0;height:100%;background:var(--color-surface);border-left:1px solid var(--color-border)}.conversation-header{display:flex;flex-direction:column;align-items:center;padding:6px 12px 8px;font-size:12px;font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border)}.conversation-header-content{display:flex;align-items:center;gap:6px;width:100%}.drag-grip{width:20px;height:2px;background:var(--color-text-dim);border-radius:1px;opacity:.35;margin-bottom:4px}.conversation-messages{flex:1;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.conversation-messages::-webkit-scrollbar{width:3px}.conversation-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.co-user{font-size:11px;line-height:1.4;padding:5px 8px;border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;align-self:flex-end;max-width:90%;word-break:break-word;white-space:pre-wrap;margin-top:4px}.co-response{display:flex;flex-direction:column;gap:2px;margin-top:2px}.co-thinking{margin:1px 0}.co-thinking summary{cursor:pointer;font-size:10px;color:#c586c0;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px;padding:2px 0}.co-thinking summary:before{content:"▸";transition:transform .15s;display:inline-block;font-size:8px}.co-thinking[open] summary:before{transform:rotate(90deg)}.co-thinking-dur{font-size:9px;background:var(--color-surface-hover);color:var(--color-text-dim);padding:0 4px;border-radius:3px;margin-left:2px}.co-thinking-content{font-size:10px;color:var(--color-text-dim);line-height:1.4;padding:3px 0 3px 12px;white-space:pre-wrap;word-break:break-word;max-height:80px;overflow-y:auto;border-left:1px solid var(--color-border);margin-left:1px}.co-text{font-size:11px;line-height:1.45;color:var(--color-text);white-space:pre-wrap;word-break:break-word;padding:1px 0}.co-tool{display:flex;align-items:center;gap:4px;padding:2px 6px;margin:1px 0;border-radius:10px;font-family:var(--font-mono);font-size:10px;border:1px solid var(--color-border);background:var(--color-surface-hover);max-width:100%;min-width:0;overflow:hidden}.co-tool-icon{flex-shrink:0;font-size:9px}.co-tool-name{color:#cfc27a;white-space:nowrap;flex-shrink:0;font-weight:500}.co-tool-info{color:#bcc3cd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.co-tool-dur{color:#9ba3af;font-size:9px;margin-left:4px;flex-shrink:0}.co-tool.running{border-color:#0078d466}.co-tool.done{border-color:#89d1854d}.co-tool.error{border-color:#f14c4c4d;background:#f14c4c0f}.co-error{font-size:10px;color:var(--color-danger);padding:3px 6px;border-radius:var(--radius-sm);background:#f14c4c14;border:1px solid rgba(241,76,76,.2);margin:2px 0}.co-file-context{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0078d41a;border-top:1px solid rgba(0,120,212,.2);font-size:10px;font-family:var(--font-mono);color:var(--color-accent);overflow:hidden}.co-file-context-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-input{display:flex;align-items:center;gap:6px;padding:8px;border-top:1px solid var(--color-border)}.conversation-input input{flex:1;min-width:0;background:var(--color-surface-hover);border-radius:var(--radius-sm);padding:6px 8px;font-size:11px;height:36px}.mic-btn{flex:1;height:36px;background:var(--color-accent);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;transition:transform .1s ease,background .1s ease,box-shadow .1s ease;user-select:none;-webkit-user-select:none}.mic-btn:active{background:linear-gradient(to bottom,rgba(0,0,0,.25),transparent 60%) var(--color-accent)}.mic-btn.recording{background:linear-gradient(to bottom,rgba(0,0,0,.2),transparent 60%) var(--color-accent);border:1px solid rgba(255,255,255,.25)}.mic-wrapper{flex:1;position:relative}.mic-wrapper .mic-btn{width:100%}.mic-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 10px;font-size:11px;color:var(--color-text);white-space:nowrap;pointer-events:none}.mic-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-border)}.text-toggle-btn{width:36px;height:36px;border-radius:50%;background:var(--color-surface-hover);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--color-text-dim);flex-shrink:0}.text-send-btn,.text-close-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.text-send-btn{background:var(--color-accent);color:#fff}.text-stop-btn{background:var(--color-danger)}.text-close-btn{background:var(--color-surface-hover);color:var(--color-text-dim)}.co-resize-grip{position:absolute;bottom:0;width:16px;height:16px;z-index:10;touch-action:none}.co-resize-bl{left:0;cursor:ne-resize}.co-resize-br{right:0;cursor:nw-resize}.taskbar{display:flex;align-items:stretch;width:100%;height:30px;background:var(--color-surface);border-top:1px solid var(--color-border);padding:0;gap:0;flex-shrink:0;z-index:200}.taskbar-items{display:flex;align-items:stretch;gap:0;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.taskbar-items::-webkit-scrollbar{display:none}.taskbar-item{display:flex;align-items:center;gap:6px;padding:0 12px;border-radius:0;font-size:11px;color:var(--color-text-dim);background:transparent;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s;border-right:1px solid var(--color-border);position:relative}.taskbar-item:active{background:#ffffff0a}.taskbar-item.active{color:var(--color-text);background:#ffffff0f}.taskbar-label{overflow:hidden;text-overflow:ellipsis;max-width:120px}.taskbar-popover{position:fixed;transform:translate(-50%,-100%) translateY(-6px);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #00000080;z-index:400;overflow:visible}.taskbar-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-border)}.taskbar-popover-btn{display:block;width:100%;padding:8px 20px;font-size:12px;color:var(--color-text);white-space:nowrap;text-align:center}.taskbar-popover-btn:active{background:#ffffff0f}.taskbar-add{display:flex;align-items:center;justify-content:center;padding:0 14px;flex-shrink:0;font-size:14px;font-weight:300;line-height:1;color:var(--color-text);opacity:.6;transition:opacity .12s,background .12s}.taskbar-add:active{opacity:1;background:#ffffff0f}:root{--color-bg: #1e1e1e;--color-surface: #252526;--color-surface-hover: #2a2d2e;--color-border: #3c3c3c;--color-text: rgb(240, 240, 240);--color-text-dim: #858585;--color-accent: #0078d4;--color-accent-hover: #1a8ceb;--color-danger: #f14c4c;--color-success: #89d185;--color-warning: #cca700;--tab-height: 48px;--radius: 10px;--radius-sm: 6px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea{font-family:inherit;border:none;background:none;color:inherit;outline:none}.resize-handle{height:20px;background:var(--color-surface);border-top:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;cursor:row-resize;touch-action:none;flex-shrink:0}.resize-grip{width:32px;height:3px;border-radius:2px;background:var(--color-border)}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:rgba(255,255,255,.15) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}*:hover::-webkit-scrollbar-thumb{background:#ffffff26}*:hover::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app,.app-root{height:100%;width:100%;display:flex;flex-direction:column;position:relative}.app-content{flex:1;display:flex;overflow:hidden;position:relative}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
32
+ */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.terminal-tab{height:100%;width:100%;background:var(--color-bg);padding:4px;position:relative}.terminal-xterm{height:100%;width:100%}.terminal-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text-dim);opacity:.5}.terminal-empty p{font-size:13px;margin:0}.terminal-tab .xterm{height:100%}.terminal-tab .xterm-cursor-layer{display:none!important}.terminal-tab .xterm-viewport{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}.terminal-tab .xterm-viewport::-webkit-scrollbar{width:6px}.terminal-tab .xterm-viewport::-webkit-scrollbar-track{background:transparent}.terminal-tab .xterm-viewport::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}.terminal-tab .xterm-viewport::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.main-view{flex:1;overflow:hidden;display:flex;flex-direction:column}.main-path-bar{display:flex;align-items:center;justify-content:center;padding:6px 12px;font-size:11px;color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.main-path-text{font-family:var(--font-mono);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-tab-area{flex:1;position:relative;overflow:hidden}.main-tab-panel{flex-direction:column;height:100%;width:100%;position:absolute;top:0;right:0;bottom:0;left:0}.main-view-iframe{width:100%;height:100%;border:none}.conversation-panel{display:flex;flex-direction:column;overflow:hidden}.conversation-floating{position:absolute;top:20px;right:20px;z-index:50;background:#1a1d2759;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius)}.conversation-sidebar{width:320px;flex-shrink:0;height:100%;background:var(--color-surface);border-left:1px solid var(--color-border)}.conversation-header{display:flex;flex-direction:column;align-items:center;padding:6px 12px 8px;font-size:12px;font-weight:600;cursor:grab;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--color-border)}.conversation-header-content{display:flex;align-items:center;gap:6px;width:100%}.drag-grip{width:20px;height:2px;background:var(--color-text-dim);border-radius:1px;opacity:.35;margin-bottom:4px}.conversation-messages{flex:1;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.conversation-messages::-webkit-scrollbar{width:3px}.conversation-messages::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.co-user{font-size:11px;line-height:1.4;padding:5px 8px;border-radius:var(--radius-sm);background:var(--color-accent);color:#fff;align-self:flex-end;max-width:90%;word-break:break-word;white-space:pre-wrap;margin-top:4px}.co-response{display:flex;flex-direction:column;gap:2px;margin-top:2px}.co-thinking{margin:1px 0}.co-thinking summary{cursor:pointer;font-size:10px;color:#c586c0;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:4px;padding:2px 0}.co-thinking summary:before{content:"▸";transition:transform .15s;display:inline-block;font-size:8px}.co-thinking[open] summary:before{transform:rotate(90deg)}.co-thinking-dur{font-size:9px;background:var(--color-surface-hover);color:var(--color-text-dim);padding:0 4px;border-radius:3px;margin-left:2px}.co-thinking-content{font-size:10px;color:var(--color-text-dim);line-height:1.4;padding:3px 0 3px 12px;white-space:pre-wrap;word-break:break-word;max-height:80px;overflow-y:auto;border-left:1px solid var(--color-border);margin-left:1px}.co-text{font-size:11px;line-height:1.45;color:var(--color-text);white-space:pre-wrap;word-break:break-word;padding:1px 0}.co-tool{display:flex;align-items:center;gap:4px;padding:2px 6px;margin:1px 0;border-radius:10px;font-family:var(--font-mono);font-size:10px;border:1px solid var(--color-border);background:var(--color-surface-hover);max-width:100%;min-width:0;overflow:hidden}.co-tool-icon{flex-shrink:0;font-size:9px}.co-tool-name{color:#cfc27a;white-space:nowrap;flex-shrink:0;font-weight:500}.co-tool-info{color:#bcc3cd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}.co-tool-dur{color:#9ba3af;font-size:9px;margin-left:4px;flex-shrink:0}.co-tool.running{border-color:#0078d466}.co-tool.done{border-color:#89d1854d}.co-tool.error{border-color:#f14c4c4d;background:#f14c4c0f}.co-error{font-size:10px;color:var(--color-danger);padding:3px 6px;border-radius:var(--radius-sm);background:#f14c4c14;border:1px solid rgba(241,76,76,.2);margin:2px 0}.co-file-context{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#0078d41a;border-top:1px solid rgba(0,120,212,.2);font-size:10px;font-family:var(--font-mono);color:var(--color-accent);overflow:hidden}.co-file-context-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conversation-input{display:flex;align-items:center;gap:6px;padding:8px;border-top:1px solid var(--color-border)}.conversation-input input{flex:1;min-width:0;background:var(--color-surface-hover);border-radius:var(--radius-sm);padding:6px 8px;font-size:11px;height:36px}.mic-btn{flex:1;height:36px;background:var(--color-accent);border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:16px;color:#fff;transition:transform .1s ease,background .1s ease,box-shadow .1s ease;user-select:none;-webkit-user-select:none}.mic-btn:active{background:linear-gradient(to bottom,rgba(0,0,0,.25),transparent 60%) var(--color-accent)}.mic-btn.recording{background:linear-gradient(to bottom,rgba(0,0,0,.2),transparent 60%) var(--color-accent);border:1px solid rgba(255,255,255,.25)}.mic-wrapper{flex:1;position:relative}.mic-wrapper .mic-btn{width:100%}.mic-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 10px;font-size:11px;color:var(--color-text);white-space:nowrap;pointer-events:none}.mic-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-border)}.text-toggle-btn{width:36px;height:36px;border-radius:50%;background:var(--color-surface-hover);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--color-text-dim);flex-shrink:0}.text-send-btn,.text-close-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.text-send-btn{background:var(--color-accent);color:#fff}.text-stop-btn{background:var(--color-danger)}.text-close-btn{background:var(--color-surface-hover);color:var(--color-text-dim)}.co-resize-grip{position:absolute;bottom:0;width:16px;height:16px;z-index:10;touch-action:none}.co-resize-bl{left:0;cursor:ne-resize}.co-resize-br{right:0;cursor:nw-resize}.co-docked-tab{width:36px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#1a1d2799;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;transition:background .15s;color:var(--color-text-dim);font-size:16px}.co-docked-tab:active{background:#1a1d27d9}.co-docked-left{border-left:none;border-radius:0 var(--radius) var(--radius) 0}.co-docked-right{border-right:none;border-radius:var(--radius) 0 0 var(--radius)}.co-docked-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);animation:co-dot-pulse 1.2s ease-in-out infinite}@keyframes co-dot-pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.taskbar{display:flex;align-items:stretch;width:100%;height:30px;background:var(--color-surface);border-top:1px solid var(--color-border);padding:0;gap:0;flex-shrink:0;z-index:200}.taskbar-items{display:flex;align-items:stretch;gap:0;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.taskbar-items::-webkit-scrollbar{display:none}.taskbar-item{display:flex;align-items:center;gap:6px;padding:0 12px;border-radius:0;font-size:11px;color:var(--color-text-dim);background:transparent;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .12s,color .12s;border-right:1px solid var(--color-border);position:relative}.taskbar-item:active{background:#ffffff0a}.taskbar-item.active{color:var(--color-text);background:#ffffff0f}.taskbar-label{overflow:hidden;text-overflow:ellipsis;max-width:120px}.taskbar-popover{position:fixed;transform:translate(-50%,-100%) translateY(-6px);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:0 4px 12px #00000080;z-index:400;overflow:visible}.taskbar-popover:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-border)}.taskbar-popover-btn{display:block;width:100%;padding:8px 20px;font-size:12px;color:var(--color-text);white-space:nowrap;text-align:center}.taskbar-popover-btn:active{background:#ffffff0f}.taskbar-add{display:flex;align-items:center;justify-content:center;padding:0 14px;flex-shrink:0;font-size:14px;font-weight:300;line-height:1;color:var(--color-text);opacity:.6;transition:opacity .12s,background .12s}.taskbar-add:active{opacity:1;background:#ffffff0f}:root{--color-bg: #1e1e1e;--color-surface: #252526;--color-surface-hover: #2a2d2e;--color-border: #3c3c3c;--color-text: rgb(240, 240, 240);--color-text-dim: #858585;--color-accent: #0078d4;--color-accent-hover: #1a8ceb;--color-danger: #f14c4c;--color-success: #89d185;--color-warning: #cca700;--tab-height: 48px;--radius: 10px;--radius-sm: 6px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}button{font-family:inherit;border:none;background:none;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}input,textarea{font-family:inherit;border:none;background:none;color:inherit;outline:none}.resize-handle{height:20px;background:var(--color-surface);border-top:2px solid var(--color-border);display:flex;align-items:center;justify-content:center;cursor:row-resize;touch-action:none;flex-shrink:0}.resize-grip{width:32px;height:3px;border-radius:2px;background:var(--color-border)}*{scrollbar-width:thin;scrollbar-color:transparent transparent}*:hover{scrollbar-color:rgba(255,255,255,.15) transparent}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:transparent;border-radius:3px}*:hover::-webkit-scrollbar-thumb{background:#ffffff26}*:hover::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app,.app-root{height:100%;width:100%;display:flex;flex-direction:column;position:relative}.app-content{flex:1;display:flex;overflow:hidden;position:relative}.app-main{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}
@@ -4,8 +4,8 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
6
6
  <title>AnyCode Playground</title>
7
- <script type="module" crossorigin src="/assets/index-Dh2tvIsD.js"></script>
8
- <link rel="stylesheet" crossorigin href="/assets/index-DU8KNBjo.css">
7
+ <script type="module" crossorigin src="/assets/index-BsjQZRyc.js"></script>
8
+ <link rel="stylesheet" crossorigin href="/assets/index-BxA94Xpg.css">
9
9
  </head>
10
10
  <body>
11
11
  <div id="root"></div>
package/dist/bin.js CHANGED
@@ -22,7 +22,7 @@ import fs5 from "fs";
22
22
  import readline from "readline";
23
23
  import { fileURLToPath as fileURLToPath2 } from "url";
24
24
 
25
- // ../server/dist/chunk-ZLQT6VM3.js
25
+ // ../server/dist/chunk-BNE5CZR2.js
26
26
  import http from "http";
27
27
  import https from "https";
28
28
  import { fileURLToPath } from "url";
@@ -1589,23 +1589,24 @@ async function startServer() {
1589
1589
  const cols = sharedStorage.query(`PRAGMA table_info("user_session")`);
1590
1590
  if (cols.length > 0) {
1591
1591
  const hasIsDefault = cols.some((c2) => c2.name === "is_default");
1592
+ const hasUserId = cols.some((c2) => c2.name === "user_id");
1592
1593
  const pkCol = cols.find((c2) => c2.pk === 1);
1593
1594
  const needsPkMigration = pkCol && pkCol.name === "user_id";
1594
- if (!hasIsDefault || needsPkMigration) {
1595
+ const needsMigration = !hasIsDefault || needsPkMigration || hasUserId;
1596
+ if (needsMigration) {
1595
1597
  console.log("\u{1F504} Migrating user_session table\u2026");
1596
1598
  if (!hasIsDefault) {
1597
1599
  sharedStorage.exec(`ALTER TABLE "user_session" ADD COLUMN "is_default" INTEGER NOT NULL DEFAULT 0`);
1598
1600
  sharedStorage.exec(`UPDATE "user_session" SET "is_default" = 1`);
1599
1601
  }
1600
- if (needsPkMigration) {
1602
+ if (needsPkMigration || hasUserId) {
1601
1603
  sharedStorage.exec(`CREATE TABLE "user_session_new" (
1602
1604
  "session_id" TEXT PRIMARY KEY,
1603
- "user_id" TEXT NOT NULL,
1604
1605
  "directory" TEXT NOT NULL DEFAULT '',
1605
1606
  "time_created" INTEGER NOT NULL,
1606
1607
  "is_default" INTEGER NOT NULL DEFAULT 0
1607
1608
  )`);
1608
- sharedStorage.exec(`INSERT INTO "user_session_new" SELECT "session_id","user_id","directory","time_created","is_default" FROM "user_session"`);
1609
+ sharedStorage.exec(`INSERT INTO "user_session_new" SELECT "session_id","directory","time_created","is_default" FROM "user_session"`);
1609
1610
  sharedStorage.exec(`DROP TABLE "user_session"`);
1610
1611
  sharedStorage.exec(`ALTER TABLE "user_session_new" RENAME TO "user_session"`);
1611
1612
  }
@@ -1615,7 +1616,6 @@ async function startServer() {
1615
1616
  sharedStorage.exec(`
1616
1617
  CREATE TABLE IF NOT EXISTS "user_session" (
1617
1618
  "session_id" TEXT PRIMARY KEY,
1618
- "user_id" TEXT NOT NULL,
1619
1619
  "directory" TEXT NOT NULL DEFAULT '',
1620
1620
  "time_created" INTEGER NOT NULL,
1621
1621
  "is_default" INTEGER NOT NULL DEFAULT 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anycodex",
3
- "version": "0.0.19",
3
+ "version": "0.0.21",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"