anycodex 0.0.23 → 0.0.25

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.
File without changes
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ ToolRegistry
4
+ } from "./chunk-2X6YJUFL.js";
5
+ import "./chunk-4SPBQLA5.js";
6
+ import "./chunk-DU4BGORD.js";
7
+ import "./chunk-6Q6QFZOB.js";
8
+ import "./chunk-NRFXEZ7N.js";
9
+ import "./chunk-M6C7CWX3.js";
10
+ import "./chunk-77HVPD4G.js";
11
+ export {
12
+ ToolRegistry
13
+ };
@@ -3,9 +3,8 @@ import {
3
3
  MessageID,
4
4
  PartID,
5
5
  SessionID
6
- } from "./chunk-LD436475.js";
7
- import "./chunk-3KUWIT4H.js";
8
- import "./chunk-XXVDY7BO.js";
6
+ } from "./chunk-6Q6QFZOB.js";
7
+ import "./chunk-M6C7CWX3.js";
9
8
  import "./chunk-77HVPD4G.js";
10
9
  export {
11
10
  MessageID,
@@ -4,13 +4,11 @@ import {
4
4
  SessionService,
5
5
  SessionStatus,
6
6
  Todo
7
- } from "./chunk-6SEC53MI.js";
8
- import "./chunk-RKQHI4QK.js";
9
- import "./chunk-H3TAXRCT.js";
7
+ } from "./chunk-4SPBQLA5.js";
10
8
  import "./chunk-DU4BGORD.js";
11
- import "./chunk-LD436475.js";
12
- import "./chunk-3KUWIT4H.js";
13
- import "./chunk-XXVDY7BO.js";
9
+ import "./chunk-6Q6QFZOB.js";
10
+ import "./chunk-NRFXEZ7N.js";
11
+ import "./chunk-M6C7CWX3.js";
14
12
  import "./chunk-77HVPD4G.js";
15
13
  export {
16
14
  Session,
@@ -10,10 +10,8 @@ import {
10
10
  Storage,
11
11
  Timestamps,
12
12
  TodoTable
13
- } from "./chunk-RKQHI4QK.js";
14
- import "./chunk-H3TAXRCT.js";
15
- import "./chunk-3KUWIT4H.js";
16
- import "./chunk-XXVDY7BO.js";
13
+ } from "./chunk-NRFXEZ7N.js";
14
+ import "./chunk-M6C7CWX3.js";
17
15
  import "./chunk-77HVPD4G.js";
18
16
  export {
19
17
  Database,
File without changes
File without changes
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
- "name": "anycodex",
3
- "version": "0.0.23",
4
- "type": "module",
5
- "files": [
6
- "dist"
7
- ],
8
- "bin": {
9
- "anycode": "dist/bin.js",
10
- "anycodex": "dist/bin.js"
11
- },
12
- "scripts": {
13
- "build": "tsup"
14
- },
15
- "dependencies": {
16
- "@lydell/node-pty": "^1.0.1",
17
- "sql.js": "^1.12.0",
18
- "ws": "^8.19.0"
19
- },
20
- "devDependencies": {
21
- "@any-code/app": "workspace:*",
22
- "@any-code/server": "workspace:*",
23
- "@types/node": "^25.5.0",
24
- "tsup": "^8.4.0",
25
- "typescript": "^5.7.0"
26
- }
27
- }
2
+ "name": "anycodex",
3
+ "version": "0.0.25",
4
+ "type": "module",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "bin": {
9
+ "anycode": "dist/bin.js",
10
+ "anycodex": "dist/bin.js"
11
+ },
12
+ "dependencies": {
13
+ "@lydell/node-pty": "^1.0.1",
14
+ "sql.js": "^1.12.0",
15
+ "ws": "^8.19.0"
16
+ },
17
+ "devDependencies": {
18
+ "@types/node": "^25.5.0",
19
+ "tsup": "^8.4.0",
20
+ "typescript": "^5.7.0",
21
+ "@any-code/app": "0.0.2",
22
+ "@any-code/server": "0.0.6"
23
+ },
24
+ "scripts": {
25
+ "build": "tsup"
26
+ }
27
+ }
@@ -1,32 +0,0 @@
1
- .tab-bar{display:flex;align-items:center;min-height:var(--tab-height);background:var(--color-surface);border-top:1px solid var(--color-border);padding:6px 12px;gap:4px;flex-shrink:0;z-index:100}.tab-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 14px;border-radius:var(--radius-sm);transition:background .15s,color .15s;color:var(--color-text-dim);min-width:56px}.tab-item:active{background:var(--color-surface-hover)}.tab-item.active{background:var(--color-surface-hover);color:var(--color-text)}.tab-icon{display:flex;align-items:center;justify-content:center;line-height:1;position:relative}.tab-badge{position:absolute;top:-6px;right:-10px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--color-accent);color:#fff;font-size:10px;font-weight:600;line-height:16px;text-align:center}.tab-label{font-size:10px;font-weight:500}.tab-spacer{flex:1}.tab-chat.active{color:var(--color-accent)}.code-viewer{font-family:var(--font-mono);font-size:12px;line-height:1.6;-moz-tab-size:4;tab-size:4;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.code-viewer pre{margin:0;padding:12px 0;overflow:visible;width:fit-content;min-width:100%;background:transparent!important}.code-viewer code{counter-reset:line}.code-viewer .line{display:inline-block;width:100%;padding:0 12px 0 0;min-height:1.6em}.code-viewer .line:before{content:attr(data-line);display:inline-block;width:3.5em;padding-right:1em;text-align:right;color:#555;-webkit-user-select:none;user-select:none;flex-shrink:0}.code-viewer .line.diff-added{background:#23863633}.code-viewer .line.diff-added:before{color:var(--color-success)}.code-viewer .line.diff-removed{background:#da363333}.code-viewer .line.diff-removed:before{color:var(--color-danger)}.code-viewer .line.line-selected{background:#0078d440}.code-viewer .line.line-selected:before{color:var(--color-accent)}.code-viewer-fallback{margin:0;padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text-dim);white-space:pre-wrap;word-break:break-all;-moz-tab-size:4;tab-size:4}.code-viewer-loading{padding:12px;font-family:var(--font-mono);font-size:12px;color:var(--color-text-dim);opacity:.5}.code-viewer-wrapper{position:relative}.cv-drag-handle{position:absolute;left:50%;transform:translate(-50%);width:36px;height:24px;display:flex;flex-direction:column;touch-action:none;z-index:10;cursor:row-resize;-webkit-tap-highlight-color:transparent}.cv-drag-handle--top{justify-content:flex-end}.cv-drag-handle--top .cv-drag-handle-pill{border-top:1px solid rgba(0,120,212,.25);border-bottom:none;border-radius:4px 4px 0 0}.cv-drag-handle-pill{width:36px;height:10px;display:flex;align-items:center;justify-content:center;background:#0078d426;border:1px solid rgba(0,120,212,.25);border-top:none;border-radius:0 0 4px 4px;transition:background .15s}.cv-drag-handle-pill:after{content:"";width:14px;height:1px;background:#0078d480;border-radius:.5px;transition:background .15s}.cv-drag-handle:active .cv-drag-handle-pill{background:#0078d440}.cv-drag-handle:active .cv-drag-handle-pill:after{background:var(--color-accent)}.file-browser{height:100%;display:flex;flex-direction:column}.file-browser-sidebar{flex-shrink:0;overflow-y:auto;background:var(--color-surface)}.file-browser-content{flex:1;overflow-y:auto;display:flex;flex-direction:column}.panel-header{padding:8px 12px;font-size:12px;font-weight:600;color:var(--color-text);border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0}.file-tree{padding:4px 0;height:100%;box-sizing:border-box}.file-tree-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--color-text-dim);opacity:.5}.file-tree-empty p{font-size:13px;margin:0}.file-tree-item{padding:6px 12px;font-size:13px;line-height:1.4;display:flex;align-items:center;gap:8px;cursor:pointer}.file-tree-item:active{background:var(--color-surface-hover)}.file-icon{display:flex;align-items:center;flex-shrink:0}.chevron{display:flex;align-items:center;flex-shrink:0;transition:transform .15s;opacity:.5}.chevron.expanded{transform:rotate(90deg)}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text)}.file-tree-item.indent{padding-left:46px}.file-content{padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--color-text-dim);white-space:pre-wrap;word-break:break-all}.file-content-header{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:600;color:var(--color-text);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1}.file-content-path{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text);font-weight:400;font-family:var(--font-mono);font-size:11px}.file-content-body{flex:1;overflow:auto}.file-content-code{margin:0;padding:12px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--color-text-dim);white-space:pre-wrap;word-break:break-all;-moz-tab-size:4;tab-size:4}.file-content-loading,.file-content-error{display:flex;align-items:center;justify-content:center;height:100%;font-size:12px;color:var(--color-text-dim);opacity:.5}.file-tree-item.selected{background:var(--color-surface-hover);color:var(--color-text)}.file-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--color-text-dim);opacity:.5}.file-empty p{font-size:13px;margin:0}.changes-view{height:100%;display:flex;flex-direction:column}.changes-list{flex-shrink:0;overflow-y:auto;background:var(--color-surface)}.change-items{padding:4px 0;height:100%;box-sizing:border-box}.change-item{padding:6px 12px;font-size:13px;line-height:1.4;display:flex;align-items:center;gap:8px;cursor:pointer}.change-item span:first-of-type{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-item:active{background:var(--color-surface-hover)}.change-item.selected{background:var(--color-surface-hover);color:var(--color-text)}.change-badge{font-size:11px;font-weight:600;flex-shrink:0}.change-item.added .change-badge{color:var(--color-success)}.change-item.modified .change-badge{color:var(--color-warning)}.change-item.deleted .change-badge{color:var(--color-danger)}.changes-diff{flex:1;overflow-y:auto;display:flex;flex-direction:column}.diff-content{padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--color-text-dim);white-space:pre-wrap;word-break:break-all}.changes-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--color-text-dim);opacity:.5}.changes-empty p{font-size:13px;margin:0}.preview-tab{height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-bg)}.preview-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--color-text-dim);opacity:.5;padding:24px}.preview-empty p{font-size:13px;margin:0}.preview-iframe{width:100%;height:100%;border:none}/**
2
- * Copyright (c) 2014 The xterm.js authors. All rights reserved.
3
- * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
4
- * https://github.com/chjj/term.js
5
- * @license MIT
6
- *
7
- * Permission is hereby granted, free of charge, to any person obtaining a copy
8
- * of this software and associated documentation files (the "Software"), to deal
9
- * in the Software without restriction, including without limitation the rights
10
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
- * copies of the Software, and to permit persons to whom the Software is
12
- * furnished to do so, subject to the following conditions:
13
- *
14
- * The above copyright notice and this permission notice shall be included in
15
- * all copies or substantial portions of the Software.
16
- *
17
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
- * THE SOFTWARE.
24
- *
25
- * Originally forked from (with the author's permission):
26
- * Fabrice Bellard's javascript vt100 for jslinux:
27
- * http://bellard.org/jslinux/
28
- * Copyright (c) 2011 Fabrice Bellard
29
- * The original design remains. The terminal itself
30
- * has been extended to include xterm CSI codes, among
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:0;left:0;z-index:50;background:#1a1d2780;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}.conversation-panel{transition:transform .3s cubic-bezier(.175,.885,.32,1.15),width .3s cubic-bezier(.2,0,0,1),height .3s cubic-bezier(.2,0,0,1),background .3s ease,border-radius .3s ease;will-change:transform,width,height}.co-panel-content{display:flex;flex-direction:column;height:100%;width:100%;transition:opacity .2s ease}.co-panel-docked{background:transparent;border:none;box-shadow:none;cursor:pointer}.co-panel-docked:hover{background:transparent}.co-panel-docked:active{transform:scale(.96)!important}.co-docked-left,.co-docked-right{border-radius:0!important}.co-panel-docked:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:3px;height:48px;border-radius:2px;background:#ffffff26;transition:background .2s,height .2s,width .2s;pointer-events:none}.co-panel-docked:hover:after{background:#ffffff80;height:54px;width:4px}.co-docked-dot{position:absolute;top:8px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--color-accent);animation:co-dot-pulse 1.2s ease-in-out infinite;box-shadow:0 0 6px var(--color-accent)}@keyframes co-dot-pulse{0%,to{opacity:.3;transform:translate(-50%) scale(.8)}50%{opacity:1;transform:translate(-50%) scale(1.3)}}.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}