page-agent-sdk 1.3.13 → 1.4.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/README.md +1 -0
- package/README.zh-CN.md +1 -0
- package/dist/page-agent-sdk.css +1 -1
- package/dist/page-agent-sdk.iife.js +120 -118
- package/dist/page-agent-sdk.js +1135 -1027
- package/dist/page-agent-sdk.umd.cjs +65 -63
- package/package.json +1 -1
- package/types/index.d.ts +35 -0
package/README.md
CHANGED
|
@@ -28,6 +28,7 @@ At its core, it gives the AI a **standardized, safe JSON-operation channel**. AI
|
|
|
28
28
|
| **Validity check** | zod schema — `set`/`edit` validated against schema | Invalid type/enum/structure → structured error, no write |
|
|
29
29
|
| **Incremental op** | `edit_window_prop` patches by `jsonPath` (set/remove/merge/append) | Avoid re-sending the whole large JSON; precise local edits |
|
|
30
30
|
| **Rollbackable** | per-path snapshots (auto-stacked) + session checkpoint | Bad edit → one-click restore to the last good state |
|
|
31
|
+
| **Optimistic lock** | `expectedHash` on `set`/`edit`/`delete` + conflict human-in-the-loop | Concurrent external edits detected → suspend, user picks keep/overwrite/restore |
|
|
31
32
|
|
|
32
33
|
"Editing JSON" moves from free-form LLM text generation to **structured, validatable, auditable, rollbackable** tool operations. This is the fundamental difference from "let the AI output a JSON string directly".
|
|
33
34
|
|
package/README.zh-CN.md
CHANGED
|
@@ -28,6 +28,7 @@
|
|
|
28
28
|
| **合法性校验** | zod schema —— `set`/`edit` 按 schema 校验 | 类型/枚举/结构不合法 → 结构化错误,不写入 |
|
|
29
29
|
| **增量操作** | `edit_window_prop` 按 `jsonPath` 发 patch(set/remove/merge/append) | 避免重传整个大 JSON,精确改局部 |
|
|
30
30
|
| **可回滚** | per-path 快照(自动入栈)+ 会话 checkpoint | 改坏了一键回退到上次正常态 |
|
|
31
|
+
| **乐观锁** | `set`/`edit`/`delete` 传 `expectedHash` + 冲突人工介入 | 检测并发外部修改 → 挂起,用户选保留/覆盖/回退 |
|
|
31
32
|
|
|
32
33
|
「改 JSON」从 LLM 自由生成文本 → **结构化、可校验、可审计、可回滚**的工具操作。这是它区别于「让 AI 直接输出 JSON 字符串」的根本所在。
|
|
33
34
|
|
package/dist/page-agent-sdk.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
.code-preview-overlay[data-v-1e52dc9d]{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.code-preview-modal[data-v-1e52dc9d]{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:900px;height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.preview-header[data-v-1e52dc9d]{color:#fff;background:#1f2937;align-items:center;gap:12px;padding:10px 16px;display:flex}.preview-title[data-v-1e52dc9d]{font-size:14px;font-weight:600}.preview-tabs[data-v-1e52dc9d]{gap:4px;margin-left:auto;display:flex}.preview-tabs button[data-v-1e52dc9d]{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:6px;padding:4px 12px;font-size:13px}.preview-tabs button.active[data-v-1e52dc9d]{background:#667eea}.preview-tabs button[data-v-1e52dc9d]:disabled{opacity:.4;cursor:not-allowed}.preview-actions[data-v-1e52dc9d]{gap:4px;display:flex}.icon-btn[data-v-1e52dc9d]{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.icon-btn[data-v-1e52dc9d]:hover{background:#ffffff40}.preview-body[data-v-1e52dc9d]{background:#f9fafb;flex:1;overflow:hidden}.preview-iframe[data-v-1e52dc9d]{background:#fff;border:none;width:100%;height:100%}.preview-source[data-v-1e52dc9d]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;height:100%;margin:0;padding:16px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}.message-md{word-break:break-word;font-size:14px;line-height:1.6}.message-md p{margin:0 0 8px}.message-md p:last-child{margin-bottom:0}.message-md ul,.message-md ol{margin:6px 0;padding-left:20px}.message-md li{margin:2px 0}.message-md h1,.message-md h2,.message-md h3{margin:10px 0 6px;font-weight:600}.message-md h1{font-size:18px}.message-md h2{font-size:16px}.message-md h3{font-size:15px}.message-md a{color:#667eea;text-decoration:underline}.message-md code:not(.hljs){color:#4338ca;background:#667eea1a;border-radius:4px;padding:1px 5px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.message-md .code-block{background:#1f2937;border-radius:8px;margin:10px 0;padding:0;position:relative;overflow:hidden}.message-md .code-block code{color:#e5e7eb;background:0 0;padding:12px 14px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.message-md .code-toolbar{background:#00000040;border-bottom:1px solid #ffffff14;align-items:center;gap:8px;padding:6px 12px;display:flex}.message-md .code-lang{color:#9ca3af;text-transform:lowercase;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.message-md .code-action-btn{color:#e5e7eb;cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;margin-left:auto;padding:3px 10px;font-size:12px;transition:background .2s}.message-md .code-action-btn:hover{background:#fff3}.message-md .code-action-btn.preview-btn{color:#fff;background:#667eea;margin-left:4px}.message-md .code-action-btn.preview-btn:hover{background:#5568d3}.message-md .hljs{color:#e5e7eb}.message-md .hljs-keyword{color:#c084fc}.message-md .hljs-string{color:#86efac}.message-md .hljs-comment{color:#6b7280;font-style:italic}.message-md .hljs-number{color:#fca5a5}.message-md .hljs-function .hljs-title,.message-md .hljs-title{color:#93c5fd}.message-md .hljs-tag{color:#fca5a5}.message-md .hljs-attr{color:#fcd34d}.message-md .hljs-built_in{color:#67e8f9}.debug-drawer[data-v-1bf2e689]{z-index:9000;pointer-events:none;position:fixed;inset:0}.drawer-mask[data-v-1bf2e689]{pointer-events:auto;background:#00000040;position:absolute;inset:0}.drawer-panel[data-v-1bf2e689]{--cs-primary:#1f4d3a;--cs-primary-rgb:31, 77, 58;pointer-events:auto;z-index:2;background:#fff;flex-direction:column;width:520px;max-width:90vw;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #00000026}.drawer-mask[data-v-1bf2e689]{z-index:1}.drawer-header[data-v-1bf2e689]{color:#fff;background:linear-gradient(135deg,#1f2937,#111827);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.drawer-title[data-v-1bf2e689]{font-size:15px;font-weight:600}.tab-group[data-v-1bf2e689]{gap:4px;display:flex}.tab-btn[data-v-1bf2e689]{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:6px;padding:4px 12px;font-size:13px;transition:background .2s}.tab-btn[data-v-1bf2e689]:hover{background:#ffffff38}.tab-btn.active[data-v-1bf2e689]{background:#ffffff73;font-weight:600}.info-body[data-v-1bf2e689]{padding:4px 0}.info-section[data-v-1bf2e689]{margin-bottom:14px}.info-title[data-v-1bf2e689]{color:#2d5a47;border-bottom:1px solid #f3f4f6;margin-bottom:6px;padding-bottom:4px;font-size:12px;font-weight:600}.info-item[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;margin-bottom:4px;padding:6px 8px}.info-name[data-v-1bf2e689]{color:#1f2937;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;font-weight:600}.info-desc[data-v-1bf2e689]{color:#6b7280;margin-top:2px;font-size:11px;line-height:1.5}.info-desc.muted[data-v-1bf2e689]{color:#9ca3af}.src-tag[data-v-1bf2e689]{vertical-align:middle;border-radius:8px;margin-left:6px;padding:0 6px;font-size:10px;font-weight:600;display:inline-block}.src-tag.builtin[data-v-1bf2e689]{color:#6b7280;background:#f3f4f6}.src-tag.mcp[data-v-1bf2e689]{color:#7c3aed;background:#f3e8ff}.src-tag.user[data-v-1bf2e689]{color:#2563eb;background:#dbeafe}.info-todo[data-v-1bf2e689]{color:#374151;background:#f9fafb;border-radius:6px;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;font-size:12px;display:flex}.todo-tag[data-v-1bf2e689]{color:#fff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px}.info-pre[data-v-1bf2e689]{color:#4b5563;white-space:pre-wrap;word-break:break-word;background:#f9fafb;border-radius:6px;max-height:200px;margin:0;padding:8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;overflow-y:auto}.header-actions[data-v-1bf2e689]{gap:4px;display:flex}.hd-btn[data-v-1bf2e689]{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:6px;width:28px;height:28px}.hd-btn[data-v-1bf2e689]:hover{background:#ffffff40}.drawer-filters[data-v-1bf2e689]{background:#fafafa;border-bottom:1px solid #f3f4f6;flex-wrap:wrap;gap:6px;padding:10px 16px;display:flex}.filter-chip[data-v-1bf2e689]{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:14px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .2s;display:inline-flex}.filter-chip[data-v-1bf2e689]:hover{border-color:var(--chip-color,var(--cs-primary))}.filter-chip.active[data-v-1bf2e689]{background:var(--chip-color,var(--cs-primary));border-color:var(--chip-color,var(--cs-primary));color:#fff}.chip-count[data-v-1bf2e689]{background:#00000014;border-radius:8px;padding:0 5px;font-size:11px}.filter-chip.active .chip-count[data-v-1bf2e689]{background:#ffffff40}.drawer-body[data-v-1bf2e689]{flex:1;padding:12px;overflow-y:auto}.empty[data-v-1bf2e689]{text-align:center;color:#9ca3af;padding:40px 20px;font-size:13px}.log-item[data-v-1bf2e689]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;overflow:hidden}.log-head[data-v-1bf2e689]{background:#f9fafb;align-items:center;gap:8px;padding:8px 10px;display:flex}.log-type[data-v-1bf2e689]{color:#fff;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.log-source[data-v-1bf2e689]{color:#7c3aed;white-space:nowrap;background:#f3e8ff;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.log-time[data-v-1bf2e689]{color:#9ca3af;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.log-body[data-v-1bf2e689]{padding:10px 12px}.log-footer[data-v-1bf2e689]{border-top:1px dashed #f3f4f6;gap:8px;padding:6px 12px;display:flex}.raw-toggle[data-v-1bf2e689]{color:var(--cs-primary);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.raw-toggle[data-v-1bf2e689]:hover{text-decoration:underline}.log-raw[data-v-1bf2e689]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;border-top:1px solid #f3f4f6;max-height:280px;margin:0;padding:10px 12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.kv-grid[data-v-1bf2e689]{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;display:grid}.kv[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;flex-direction:column;padding:6px 8px;display:flex}.kv .k[data-v-1bf2e689]{color:#9ca3af;text-transform:uppercase;font-size:10px}.kv .v[data-v-1bf2e689]{color:#1f2937;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;font-weight:600}.section-label[data-v-1bf2e689]{color:#6b7280;margin:10px 0 4px;font-size:11px;font-weight:600}.chip-row[data-v-1bf2e689]{flex-wrap:wrap;gap:4px;display:flex}.tool-chip[data-v-1bf2e689]{color:#2d5a47;background:#ecf5ef;border-radius:10px;padding:2px 8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.msg-list[data-v-1bf2e689]{flex-direction:column;gap:4px;display:flex}.msg-row[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;align-items:flex-start;gap:6px;padding:5px 8px;display:flex}.msg-role[data-v-1bf2e689]{color:#fff;border-radius:3px;flex-shrink:0;margin-top:1px;padding:2px 6px;font-size:9px;font-weight:700}.msg-text[data-v-1bf2e689]{color:#374151;white-space:pre-wrap;word-break:break-word;flex:1;font-size:12px;line-height:1.5}.msg-tool-hint[data-v-1bf2e689]{color:#7c3aed;flex-shrink:0;font-size:10px}.badge-row[data-v-1bf2e689]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.badge[data-v-1bf2e689]{color:#2d5a47;background:#dbeee4;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.badge.muted[data-v-1bf2e689]{color:#6b7280;background:#f3f4f6}.badge.warn[data-v-1bf2e689]{color:#92400e;background:#fef3c7}.resp-content[data-v-1bf2e689]{color:#1f2937;white-space:pre-wrap;word-break:break-word;background:#fffbeb;border-left:3px solid #d97706;border-radius:4px;margin-bottom:8px;padding:6px 10px;font-size:12px}.tc-list[data-v-1bf2e689]{flex-direction:column;gap:6px;display:flex}.tc-card[data-v-1bf2e689]{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.tc-card.inline[data-v-1bf2e689]{margin-top:4px}.tc-name[data-v-1bf2e689]{color:#2d5a47;background:#ecf5ef;padding:5px 8px;font-size:12px;font-weight:600}.tc-args[data-v-1bf2e689]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;max-height:200px;margin:0;padding:8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.usage-row[data-v-1bf2e689]{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.usage[data-v-1bf2e689]{color:#047857;background:#ecfdf5;border-radius:10px;padding:2px 8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.err-box[data-v-1bf2e689]{color:#991b1b;white-space:pre-wrap;word-break:break-word;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 10px;font-size:12px}.msg-detail[data-v-1bf2e689]{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tc-inline[data-v-1bf2e689]{background:#f0f7f3;border:1px solid #c3dcd0;border-radius:4px;align-items:baseline;gap:4px;padding:2px 6px;font-size:11px;display:flex}.tc-inline-name[data-v-1bf2e689]{color:#2d5a47;white-space:nowrap;font-weight:600}.tc-inline-args[data-v-1bf2e689]{color:#16402f;word-break:break-all;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.tc-id[data-v-1bf2e689]{color:#9ca3af;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.view-toggle[data-v-1bf2e689]{color:#2d5a47;cursor:pointer;background:#ecf5ef;border:1px solid #b8d4c5;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px}.view-toggle[data-v-1bf2e689]:hover{background:#dbeee4}.drawer-enter-active[data-v-1bf2e689],.drawer-leave-active[data-v-1bf2e689]{transition:opacity .25s}.drawer-enter-active .drawer-panel[data-v-1bf2e689],.drawer-leave-active .drawer-panel[data-v-1bf2e689]{transition:transform .25s}.drawer-enter-from[data-v-1bf2e689],.drawer-leave-to[data-v-1bf2e689]{opacity:0}.drawer-enter-from .drawer-panel[data-v-1bf2e689],.drawer-leave-to .drawer-panel[data-v-1bf2e689]{transform:translate(100%)}.flow-section[data-v-1bf2e689]{margin-bottom:14px}.flow-section-title[data-v-1bf2e689]{color:#6b7280;margin-bottom:6px;padding-left:2px;font-size:11px;font-weight:600}.flow-round[data-v-1bf2e689]{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;overflow:hidden}.flow-round-head[data-v-1bf2e689]{color:#fff;background:var(--cs-primary);padding:5px 10px;font-size:12px;font-weight:600}.flow-round-body[data-v-1bf2e689]{flex-direction:column;gap:3px;padding:6px;display:flex}.flow-node[data-v-1bf2e689]{border-left:3px solid var(--cs-primary);background:#f9fafb;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.flow-node.llm_request[data-v-1bf2e689]{border-left-color:#059669}.flow-node.llm_response[data-v-1bf2e689]{border-left-color:#d97706}.flow-node.tool_call[data-v-1bf2e689]{border-left-color:#7c3aed}.flow-node.tool_result[data-v-1bf2e689]{border-left-color:#2563eb}.flow-node.error[data-v-1bf2e689]{background:#fef2f2;border-left-color:#dc2626}.flow-node.middleware[data-v-1bf2e689]{border-left-color:#0891b2}.flow-ico[data-v-1bf2e689]{flex-shrink:0;font-size:13px}.flow-label[data-v-1bf2e689]{color:#374151;white-space:nowrap;flex-shrink:0;font-weight:600}.flow-detail[data-v-1bf2e689]{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;overflow:hidden}.flow-time[data-v-1bf2e689]{color:#9ca3af;flex-shrink:0;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.chat-dialog[data-v-10d2a0a3]{--cs-primary:#1f4d3a;--cs-primary-rgb:31, 77, 58;--cs-bg:#fff;--cs-bubble-ai:#f3f4f6;--cs-radius:12px;border-radius:var(--cs-radius);background:var(--cs-bg);flex-direction:column;width:100%;height:100%;transition:all .3s;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014}.chat-dialog.collapsed[data-v-10d2a0a3]{height:52px}.chat-header[data-v-10d2a0a3]{background:var(--cs-primary);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.header-left[data-v-10d2a0a3]{align-items:center;gap:8px;display:flex}.header-icon[data-v-10d2a0a3]{font-size:20px}.header-title[data-v-10d2a0a3]{font-size:15px;font-weight:600}.status-dot[data-v-10d2a0a3]{background:#4ade80;border-radius:50%;width:8px;height:8px}.status-dot.pulse[data-v-10d2a0a3]{animation:1.5s infinite pulse-10d2a0a3}@keyframes pulse-10d2a0a3{0%,to{opacity:1}50%{opacity:.4}}.header-actions[data-v-10d2a0a3]{gap:4px;display:flex}.action-btn[data-v-10d2a0a3]{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .2s;display:flex}.action-btn[data-v-10d2a0a3]:hover:not(:disabled){background:#ffffff4d}.action-btn[data-v-10d2a0a3]:disabled{opacity:.4;cursor:not-allowed}.action-btn.debug-btn[data-v-10d2a0a3]{position:relative}.action-btn.debug-btn.active[data-v-10d2a0a3]{background:#ffffff73}.debug-badge[data-v-10d2a0a3]{color:#fff;background:#ef4444;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:-2px;right:-2px}.chat-body[data-v-10d2a0a3]{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;overflow-y:auto}.empty-state[data-v-10d2a0a3]{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;height:200px;display:flex}.empty-icon[data-v-10d2a0a3]{margin-bottom:12px;font-size:48px}.empty-state p[data-v-10d2a0a3]{font-size:14px}.message-row[data-v-10d2a0a3]{align-items:flex-start;gap:10px;margin-bottom:16px;display:flex}.message-row.user[data-v-10d2a0a3]{flex-direction:row-reverse}.message-avatar[data-v-10d2a0a3]{background:#f3f4f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.message-row.user .message-avatar[data-v-10d2a0a3]{background:#ecf5ef}.message-content[data-v-10d2a0a3]{max-width:75%}.message-bubble[data-v-10d2a0a3]{word-break:break-word;white-space:pre-wrap;border-radius:12px;padding:10px 14px;font-size:14px;line-height:1.5}.message-row.assistant .message-bubble[data-v-10d2a0a3]{color:#1f2937;white-space:normal;background:#f3f4f6;border-bottom-left-radius:4px}.message-row.user .message-bubble[data-v-10d2a0a3]{background:var(--cs-primary);color:#fff;border-bottom-right-radius:4px}.message-row.user .message-content[data-v-10d2a0a3]{flex-direction:column;align-items:flex-end;display:flex}.message-time[data-v-10d2a0a3]{color:#9ca3af;margin-top:4px;padding:0 4px;font-size:11px}.typing[data-v-10d2a0a3]{gap:4px;padding:12px 16px;display:flex}.typing .dot[data-v-10d2a0a3]{background:#9ca3af;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite bounce-10d2a0a3}.typing .dot[data-v-10d2a0a3]:nth-child(2){animation-delay:.2s}.typing .dot[data-v-10d2a0a3]:nth-child(3){animation-delay:.4s}@keyframes bounce-10d2a0a3{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.typing-text[data-v-10d2a0a3]{color:#9ca3af;font-size:13px}.reasoning-block[data-v-10d2a0a3]{background:#f0f7f3;border:1px dashed #b8d4c5;border-radius:8px;margin-bottom:6px;overflow:hidden}.reasoning-header[data-v-10d2a0a3]{cursor:pointer;-webkit-user-select:none;user-select:none;color:#2d5a47;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.reasoning-icon[data-v-10d2a0a3]{font-size:13px}.reasoning-title[data-v-10d2a0a3]{font-weight:600}.reasoning-toggle[data-v-10d2a0a3]{margin-left:auto}.reasoning-body[data-v-10d2a0a3]{color:#16402f;white-space:pre-wrap;word-break:break-word;border-top:1px dashed #b8d4c5;max-height:240px;padding:8px 10px;font-size:12px;line-height:1.6;overflow-y:auto}.steps-block[data-v-10d2a0a3]{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.step-item[data-v-10d2a0a3]{color:#0e7490;background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;flex-direction:column;align-self:flex-start;align-items:flex-start;gap:3px;max-width:100%;padding:2px 8px;font-size:11px;display:flex}.step-head[data-v-10d2a0a3]{align-items:center;gap:5px;display:inline-flex}.step-icon[data-v-10d2a0a3]{font-size:11px}.step-name[data-v-10d2a0a3]{font-family:SF Mono,Monaco,Consolas,monospace}.step-count[data-v-10d2a0a3]{color:#0891b2;font-size:10px;font-weight:600}.step-status.running[data-v-10d2a0a3]{color:#0891b2}.step-children[data-v-10d2a0a3]{background:#faf5ff;border-left:2px solid #c4b5fd;border-radius:0 8px 8px 0;flex-direction:column;gap:3px;margin-top:4px;padding:4px 8px 4px 10px;display:flex}.step-children-label[data-v-10d2a0a3]{color:#7c3aed;letter-spacing:.3px;font-size:10px;font-weight:600}.step-child[data-v-10d2a0a3]{color:#6d28d9;background:#ede9fe;border:1px solid #ddd6fe;border-radius:8px;align-items:center;gap:5px;padding:1px 7px;font-size:10px;display:inline-flex}.step-child .step-name[data-v-10d2a0a3]{color:#6d28d9}.step-child .step-status.running[data-v-10d2a0a3]{color:#8b5cf6}.stream-cursor[data-v-10d2a0a3],.typing-cursor[data-v-10d2a0a3]{vertical-align:text-bottom;background:var(--cs-primary);width:7px;height:14px;margin-left:2px;animation:1s steps(2,end) infinite blink-10d2a0a3;display:inline-block}@keyframes blink-10d2a0a3{0%,50%{opacity:1}51%,to{opacity:0}}.error-bar[data-v-10d2a0a3]{color:#dc2626;background:#fef2f2;border-radius:8px;align-items:flex-start;gap:10px;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.error-text[data-v-10d2a0a3]{word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;flex:1;min-width:0;max-height:120px;line-height:1.5;overflow-y:auto}.error-bar .retry-btn[data-v-10d2a0a3],.error-bar .undo-btn[data-v-10d2a0a3]{flex-shrink:0;margin-top:1px}.retry-btn[data-v-10d2a0a3]{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;flex-shrink:0;padding:3px 12px;font-size:12px;font-weight:600;transition:background .2s}.retry-btn[data-v-10d2a0a3]:hover{background:#b91c1c}.chat-footer[data-v-10d2a0a3]{background:#fafafa;border-top:1px solid #f3f4f6;align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.chat-input[data-v-10d2a0a3]{resize:none;border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;max-height:100px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.4;transition:border-color .2s;overflow-y:auto}.chat-input[data-v-10d2a0a3]:focus{border-color:var(--cs-primary);box-shadow:0 0 0 2px rgba(var(--cs-primary-rgb), .1)}.send-btn[data-v-10d2a0a3]{background:var(--cs-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:opacity .2s,transform .1s;display:flex}.send-btn[data-v-10d2a0a3]:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.send-btn[data-v-10d2a0a3]:active:not(:disabled){transform:scale(.95)}.send-btn[data-v-10d2a0a3]:disabled{opacity:.4;cursor:not-allowed}.send-btn.stop-btn[data-v-10d2a0a3]{background:#9ca3af}.send-btn.stop-btn[data-v-10d2a0a3]:hover:not(:disabled){background:#6b7280;transform:none}.cap-badge[data-v-10d2a0a3]{color:#6b7280;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;flex-shrink:0;align-self:center;padding:4px 10px;font-size:11px}.msg-actions[data-v-10d2a0a3]{opacity:0;gap:6px;margin-top:4px;transition:opacity .2s;display:flex}.message-row.assistant:hover .msg-actions[data-v-10d2a0a3]{opacity:1}.msg-action-btn[data-v-10d2a0a3]{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:2px 8px;font-size:11px;transition:all .2s}.msg-action-btn[data-v-10d2a0a3]:hover{border-color:var(--cs-primary);color:var(--cs-primary);background:#f0f7f3}.undo-btn[data-v-10d2a0a3]{color:#92400e;cursor:pointer;background:#fffbeb;border:1px solid #f59e0b;border-radius:6px;margin-left:6px;padding:2px 10px;font-size:11px;transition:all .2s}.undo-btn[data-v-10d2a0a3]:hover{background:#fde68a}.undo-foot-btn[data-v-10d2a0a3]{color:#6b7280;cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;flex-shrink:0;align-self:center;padding:4px 10px;font-size:11px;transition:all .2s}.undo-foot-btn[data-v-10d2a0a3]:hover{border-color:var(--cs-primary);color:var(--cs-primary);background:#f0f7f3}.approval-bar[data-v-10d2a0a3]{background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;margin:8px 12px;padding:10px 12px}.approval-head[data-v-10d2a0a3]{color:#92400e;align-items:center;gap:6px;font-size:13px;display:flex}.approval-icon[data-v-10d2a0a3]{font-size:15px}.approval-title code[data-v-10d2a0a3]{color:#78350f;background:#fef3c7;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.approval-toggle[data-v-10d2a0a3]{color:#92400e;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:12px}.approval-toggle[data-v-10d2a0a3]:hover{background:#fef3c7}.approval-args[data-v-10d2a0a3]{color:#57534e;white-space:pre-wrap;word-break:break-all;background:#fff;border:1px solid #fde68a;border-radius:6px;max-height:140px;margin:8px 0;padding:8px;font-size:12px;overflow:auto}.approval-actions[data-v-10d2a0a3]{justify-content:flex-end;gap:8px;display:flex}.approval-actions button[data-v-10d2a0a3]{cursor:pointer;border:none;border-radius:6px;padding:5px 16px;font-size:13px;transition:opacity .2s}.approval-deny[data-v-10d2a0a3]{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.approval-deny[data-v-10d2a0a3]:hover{color:#374151;background:#e5e7eb}.approval-allow[data-v-10d2a0a3]{background:var(--cs-primary);color:#fff}.approval-allow[data-v-10d2a0a3]:hover{opacity:.9}.approval-question[data-v-10d2a0a3]{color:#57534e;white-space:pre-wrap;background:#fff;border:1px solid #fde68a;border-radius:6px;margin:8px 0;padding:8px 10px;font-size:13px;line-height:1.5}.approval-context[data-v-10d2a0a3]{color:#92400e;margin:4px 0 8px;font-size:12px;line-height:1.5}.approval-recommend[data-v-10d2a0a3]{color:#1f4d3a;margin:4px 0 8px;font-size:12px}.approval-opt[data-v-10d2a0a3]{border:1px solid var(--cs-primary);color:var(--cs-primary);cursor:pointer;background:#fff;border-radius:6px;padding:5px 14px;font-size:13px;transition:all .2s}.approval-opt[data-v-10d2a0a3]:hover{background:var(--cs-primary);color:#fff}
|
|
1
|
+
.code-preview-overlay[data-v-245729f1]{z-index:9999;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.code-preview-modal[data-v-245729f1]{background:#fff;border-radius:12px;flex-direction:column;width:90%;max-width:900px;height:80vh;display:flex;overflow:hidden;box-shadow:0 20px 60px #0000004d}.preview-header[data-v-245729f1]{color:#fff;background:#1f2937;align-items:center;gap:12px;padding:10px 16px;display:flex}.preview-title[data-v-245729f1]{font-size:14px;font-weight:600}.preview-tabs[data-v-245729f1]{gap:4px;margin-left:auto;display:flex}.preview-tabs button[data-v-245729f1]{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:6px;padding:4px 12px;font-size:13px}.preview-tabs button.active[data-v-245729f1]{background:#667eea}.preview-tabs button[data-v-245729f1]:disabled{opacity:.4;cursor:not-allowed}.preview-actions[data-v-245729f1]{gap:4px;display:flex}.icon-btn[data-v-245729f1]{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.icon-btn[data-v-245729f1]:hover{background:#ffffff40}.preview-body[data-v-245729f1]{background:#f9fafb;flex:1;overflow:hidden}.preview-iframe[data-v-245729f1]{background:#fff;border:none;width:100%;height:100%}.preview-source[data-v-245729f1]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;height:100%;margin:0;padding:16px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;overflow:auto}.message-md{overflow-wrap:anywhere;word-break:break-word;font-size:13px;line-height:1.6}.message-md p{margin:0 0 8px}.message-md p:last-child{margin-bottom:0}.message-md table{border-collapse:collapse;max-width:100%;margin:8px 0;display:block;overflow-x:auto}.message-md th,.message-md td{white-space:nowrap;border:1px solid #e5e7eb;padding:4px 8px;font-size:12px}.message-md th{background:#f9fafb}.message-md img{max-width:100%}.message-md ul,.message-md ol{margin:6px 0;padding-left:20px}.message-md li{margin:2px 0}.message-md h1,.message-md h2,.message-md h3{margin:10px 0 6px;font-weight:600}.message-md h1{font-size:18px}.message-md h2{font-size:16px}.message-md h3{font-size:15px}.message-md a{color:#667eea;text-decoration:underline}.message-md code:not(.hljs){color:#4338ca;background:#667eea1a;border-radius:4px;padding:1px 5px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px}.message-md .code-block{background:#1f2937;border-radius:8px;margin:10px 0;padding:0;position:relative;overflow:hidden}.message-md .code-block code{color:#e5e7eb;background:0 0;padding:12px 14px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.5;display:block;overflow-x:auto}.message-md .code-toolbar{background:#00000040;border-bottom:1px solid #ffffff14;align-items:center;gap:8px;padding:6px 12px;display:flex}.message-md .code-lang{color:#9ca3af;text-transform:lowercase;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.message-md .code-action-btn{color:#e5e7eb;cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;margin-left:auto;padding:3px 10px;font-size:12px;transition:background .2s}.message-md .code-action-btn:hover{background:#fff3}.message-md .code-action-btn.preview-btn{color:#fff;background:#667eea;margin-left:4px}.message-md .code-action-btn.preview-btn:hover{background:#5568d3}.message-md .hljs{color:#e5e7eb}.message-md .hljs-keyword{color:#c084fc}.message-md .hljs-string{color:#86efac}.message-md .hljs-comment{color:#6b7280;font-style:italic}.message-md .hljs-number{color:#fca5a5}.message-md .hljs-function .hljs-title,.message-md .hljs-title{color:#93c5fd}.message-md .hljs-tag{color:#fca5a5}.message-md .hljs-attr{color:#fcd34d}.message-md .hljs-built_in{color:#67e8f9}.debug-drawer[data-v-1bf2e689]{z-index:9000;pointer-events:none;position:fixed;inset:0}.drawer-mask[data-v-1bf2e689]{pointer-events:auto;background:#00000040;position:absolute;inset:0}.drawer-panel[data-v-1bf2e689]{--cs-primary:#1f4d3a;--cs-primary-rgb:31, 77, 58;pointer-events:auto;z-index:2;background:#fff;flex-direction:column;width:520px;max-width:90vw;display:flex;position:absolute;top:0;bottom:0;right:0;box-shadow:-8px 0 32px #00000026}.drawer-mask[data-v-1bf2e689]{z-index:1}.drawer-header[data-v-1bf2e689]{color:#fff;background:linear-gradient(135deg,#1f2937,#111827);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.drawer-title[data-v-1bf2e689]{font-size:15px;font-weight:600}.tab-group[data-v-1bf2e689]{gap:4px;display:flex}.tab-btn[data-v-1bf2e689]{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:6px;padding:4px 12px;font-size:13px;transition:background .2s}.tab-btn[data-v-1bf2e689]:hover{background:#ffffff38}.tab-btn.active[data-v-1bf2e689]{background:#ffffff73;font-weight:600}.info-body[data-v-1bf2e689]{padding:4px 0}.info-section[data-v-1bf2e689]{margin-bottom:14px}.info-title[data-v-1bf2e689]{color:#2d5a47;border-bottom:1px solid #f3f4f6;margin-bottom:6px;padding-bottom:4px;font-size:12px;font-weight:600}.info-item[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;margin-bottom:4px;padding:6px 8px}.info-name[data-v-1bf2e689]{color:#1f2937;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;font-weight:600}.info-desc[data-v-1bf2e689]{color:#6b7280;margin-top:2px;font-size:11px;line-height:1.5}.info-desc.muted[data-v-1bf2e689]{color:#9ca3af}.src-tag[data-v-1bf2e689]{vertical-align:middle;border-radius:8px;margin-left:6px;padding:0 6px;font-size:10px;font-weight:600;display:inline-block}.src-tag.builtin[data-v-1bf2e689]{color:#6b7280;background:#f3f4f6}.src-tag.mcp[data-v-1bf2e689]{color:#7c3aed;background:#f3e8ff}.src-tag.user[data-v-1bf2e689]{color:#2563eb;background:#dbeafe}.info-todo[data-v-1bf2e689]{color:#374151;background:#f9fafb;border-radius:6px;align-items:center;gap:6px;margin-bottom:4px;padding:4px 8px;font-size:12px;display:flex}.todo-tag[data-v-1bf2e689]{color:#fff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px}.info-pre[data-v-1bf2e689]{color:#4b5563;white-space:pre-wrap;word-break:break-word;background:#f9fafb;border-radius:6px;max-height:200px;margin:0;padding:8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;overflow-y:auto}.header-actions[data-v-1bf2e689]{gap:4px;display:flex}.hd-btn[data-v-1bf2e689]{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:6px;width:28px;height:28px}.hd-btn[data-v-1bf2e689]:hover{background:#ffffff40}.drawer-filters[data-v-1bf2e689]{background:#fafafa;border-bottom:1px solid #f3f4f6;flex-wrap:wrap;gap:6px;padding:10px 16px;display:flex}.filter-chip[data-v-1bf2e689]{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:14px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;transition:all .2s;display:inline-flex}.filter-chip[data-v-1bf2e689]:hover{border-color:var(--chip-color,var(--cs-primary))}.filter-chip.active[data-v-1bf2e689]{background:var(--chip-color,var(--cs-primary));border-color:var(--chip-color,var(--cs-primary));color:#fff}.chip-count[data-v-1bf2e689]{background:#00000014;border-radius:8px;padding:0 5px;font-size:11px}.filter-chip.active .chip-count[data-v-1bf2e689]{background:#ffffff40}.drawer-body[data-v-1bf2e689]{flex:1;padding:12px;overflow-y:auto}.empty[data-v-1bf2e689]{text-align:center;color:#9ca3af;padding:40px 20px;font-size:13px}.log-item[data-v-1bf2e689]{background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:10px;overflow:hidden}.log-head[data-v-1bf2e689]{background:#f9fafb;align-items:center;gap:8px;padding:8px 10px;display:flex}.log-type[data-v-1bf2e689]{color:#fff;white-space:nowrap;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.log-source[data-v-1bf2e689]{color:#7c3aed;white-space:nowrap;background:#f3e8ff;border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.log-time[data-v-1bf2e689]{color:#9ca3af;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.log-body[data-v-1bf2e689]{padding:10px 12px}.log-footer[data-v-1bf2e689]{border-top:1px dashed #f3f4f6;gap:8px;padding:6px 12px;display:flex}.raw-toggle[data-v-1bf2e689]{color:var(--cs-primary);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:11px}.raw-toggle[data-v-1bf2e689]:hover{text-decoration:underline}.log-raw[data-v-1bf2e689]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;border-top:1px solid #f3f4f6;max-height:280px;margin:0;padding:10px 12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.5;overflow:auto}.kv-grid[data-v-1bf2e689]{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px;display:grid}.kv[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;flex-direction:column;padding:6px 8px;display:flex}.kv .k[data-v-1bf2e689]{color:#9ca3af;text-transform:uppercase;font-size:10px}.kv .v[data-v-1bf2e689]{color:#1f2937;font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;font-weight:600}.section-label[data-v-1bf2e689]{color:#6b7280;margin:10px 0 4px;font-size:11px;font-weight:600}.chip-row[data-v-1bf2e689]{flex-wrap:wrap;gap:4px;display:flex}.tool-chip[data-v-1bf2e689]{color:#2d5a47;background:#ecf5ef;border-radius:10px;padding:2px 8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.msg-list[data-v-1bf2e689]{flex-direction:column;gap:4px;display:flex}.msg-row[data-v-1bf2e689]{background:#f9fafb;border-radius:6px;align-items:flex-start;gap:6px;padding:5px 8px;display:flex}.msg-role[data-v-1bf2e689]{color:#fff;border-radius:3px;flex-shrink:0;margin-top:1px;padding:2px 6px;font-size:9px;font-weight:700}.msg-text[data-v-1bf2e689]{color:#374151;white-space:pre-wrap;word-break:break-word;flex:1;font-size:12px;line-height:1.5}.msg-tool-hint[data-v-1bf2e689]{color:#7c3aed;flex-shrink:0;font-size:10px}.badge-row[data-v-1bf2e689]{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.badge[data-v-1bf2e689]{color:#2d5a47;background:#dbeee4;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.badge.muted[data-v-1bf2e689]{color:#6b7280;background:#f3f4f6}.badge.warn[data-v-1bf2e689]{color:#92400e;background:#fef3c7}.resp-content[data-v-1bf2e689]{color:#1f2937;white-space:pre-wrap;word-break:break-word;background:#fffbeb;border-left:3px solid #d97706;border-radius:4px;margin-bottom:8px;padding:6px 10px;font-size:12px}.tc-list[data-v-1bf2e689]{flex-direction:column;gap:6px;display:flex}.tc-card[data-v-1bf2e689]{border:1px solid #e5e7eb;border-radius:6px;overflow:hidden}.tc-card.inline[data-v-1bf2e689]{margin-top:4px}.tc-name[data-v-1bf2e689]{color:#2d5a47;background:#ecf5ef;padding:5px 8px;font-size:12px;font-weight:600}.tc-args[data-v-1bf2e689]{color:#e5e7eb;white-space:pre-wrap;word-break:break-word;background:#1f2937;max-height:200px;margin:0;padding:8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;line-height:1.5;overflow-y:auto}.usage-row[data-v-1bf2e689]{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.usage[data-v-1bf2e689]{color:#047857;background:#ecfdf5;border-radius:10px;padding:2px 8px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px}.err-box[data-v-1bf2e689]{color:#991b1b;white-space:pre-wrap;word-break:break-word;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:8px 10px;font-size:12px}.msg-detail[data-v-1bf2e689]{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.tc-inline[data-v-1bf2e689]{background:#f0f7f3;border:1px solid #c3dcd0;border-radius:4px;align-items:baseline;gap:4px;padding:2px 6px;font-size:11px;display:flex}.tc-inline-name[data-v-1bf2e689]{color:#2d5a47;white-space:nowrap;font-weight:600}.tc-inline-args[data-v-1bf2e689]{color:#16402f;word-break:break-all;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.tc-id[data-v-1bf2e689]{color:#9ca3af;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.view-toggle[data-v-1bf2e689]{color:#2d5a47;cursor:pointer;background:#ecf5ef;border:1px solid #b8d4c5;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:11px}.view-toggle[data-v-1bf2e689]:hover{background:#dbeee4}.drawer-enter-active[data-v-1bf2e689],.drawer-leave-active[data-v-1bf2e689]{transition:opacity .25s}.drawer-enter-active .drawer-panel[data-v-1bf2e689],.drawer-leave-active .drawer-panel[data-v-1bf2e689]{transition:transform .25s}.drawer-enter-from[data-v-1bf2e689],.drawer-leave-to[data-v-1bf2e689]{opacity:0}.drawer-enter-from .drawer-panel[data-v-1bf2e689],.drawer-leave-to .drawer-panel[data-v-1bf2e689]{transform:translate(100%)}.flow-section[data-v-1bf2e689]{margin-bottom:14px}.flow-section-title[data-v-1bf2e689]{color:#6b7280;margin-bottom:6px;padding-left:2px;font-size:11px;font-weight:600}.flow-round[data-v-1bf2e689]{border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px;overflow:hidden}.flow-round-head[data-v-1bf2e689]{color:#fff;background:var(--cs-primary);padding:5px 10px;font-size:12px;font-weight:600}.flow-round-body[data-v-1bf2e689]{flex-direction:column;gap:3px;padding:6px;display:flex}.flow-node[data-v-1bf2e689]{border-left:3px solid var(--cs-primary);background:#f9fafb;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.flow-node.llm_request[data-v-1bf2e689]{border-left-color:#059669}.flow-node.llm_response[data-v-1bf2e689]{border-left-color:#d97706}.flow-node.tool_call[data-v-1bf2e689]{border-left-color:#7c3aed}.flow-node.tool_result[data-v-1bf2e689]{border-left-color:#2563eb}.flow-node.error[data-v-1bf2e689]{background:#fef2f2;border-left-color:#dc2626}.flow-node.middleware[data-v-1bf2e689]{border-left-color:#0891b2}.flow-ico[data-v-1bf2e689]{flex-shrink:0;font-size:13px}.flow-label[data-v-1bf2e689]{color:#374151;white-space:nowrap;flex-shrink:0;font-weight:600}.flow-detail[data-v-1bf2e689]{color:#6b7280;text-overflow:ellipsis;white-space:nowrap;flex:1;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;overflow:hidden}.flow-time[data-v-1bf2e689]{color:#9ca3af;flex-shrink:0;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.chat-dialog[data-v-ee351851]{--cs-primary:#1f4d3a;--cs-primary-rgb:31, 77, 58;--cs-bg:#fff;--cs-bubble-ai:#f3f4f6;--cs-radius:12px;border-radius:var(--cs-radius);background:var(--cs-bg);flex-direction:column;width:100%;height:100%;transition:all .3s;display:flex;overflow:hidden;box-shadow:0 8px 32px #0000001f,0 2px 8px #00000014}.chat-dialog.collapsed[data-v-ee351851]{height:52px}.chat-header[data-v-ee351851]{background:var(--cs-primary);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.header-left[data-v-ee351851]{align-items:center;gap:8px;display:flex}.header-icon[data-v-ee351851]{font-size:20px}.header-title[data-v-ee351851]{font-size:15px;font-weight:600}.status-dot[data-v-ee351851]{background:#4ade80;border-radius:50%;width:8px;height:8px}.status-dot.pulse[data-v-ee351851]{animation:1.5s infinite pulse-ee351851}@keyframes pulse-ee351851{0%,to{opacity:1}50%{opacity:.4}}.header-actions[data-v-ee351851]{gap:4px;display:flex}.action-btn[data-v-ee351851]{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .2s;display:flex}.action-btn[data-v-ee351851]:hover:not(:disabled){background:#ffffff4d}.action-btn[data-v-ee351851]:disabled{opacity:.4;cursor:not-allowed}.action-btn.debug-btn[data-v-ee351851]{position:relative}.action-btn.debug-btn.active[data-v-ee351851]{background:#ffffff73}.debug-badge[data-v-ee351851]{color:#fff;background:#ef4444;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:-2px;right:-2px}.chat-body[data-v-ee351851]{overscroll-behavior:contain;flex:1;min-height:0;padding:16px;overflow-y:auto}.empty-state[data-v-ee351851]{color:#9ca3af;flex-direction:column;justify-content:center;align-items:center;height:200px;display:flex}.empty-icon[data-v-ee351851]{margin-bottom:12px;font-size:48px}.empty-state p[data-v-ee351851]{font-size:14px}.message-row[data-v-ee351851]{align-items:flex-start;gap:10px;margin-bottom:16px;display:flex}.message-row.user[data-v-ee351851]{flex-direction:row-reverse}.message-avatar[data-v-ee351851]{background:#f3f4f6;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.message-row.user .message-avatar[data-v-ee351851]{background:#ecf5ef}.message-content[data-v-ee351851]{min-width:0;max-width:80%}.message-bubble[data-v-ee351851]{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;border-radius:12px;padding:9px 13px;font-size:13px;line-height:1.6}.message-row.assistant .message-bubble[data-v-ee351851]{color:#1f2937;white-space:normal;overflow-wrap:anywhere;background:#f3f4f6;border-bottom-left-radius:4px}.message-row.user .message-bubble[data-v-ee351851]{background:var(--cs-primary);color:#fff;border-bottom-right-radius:4px}.message-row.user .message-content[data-v-ee351851]{flex-direction:column;align-items:flex-end;display:flex}.message-time[data-v-ee351851]{color:#9ca3af;margin-top:4px;padding:0 4px;font-size:11px}.typing[data-v-ee351851]{gap:4px;padding:12px 16px;display:flex}.typing .dot[data-v-ee351851]{background:#9ca3af;border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite bounce-ee351851}.typing .dot[data-v-ee351851]:nth-child(2){animation-delay:.2s}.typing .dot[data-v-ee351851]:nth-child(3){animation-delay:.4s}@keyframes bounce-ee351851{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.typing-text[data-v-ee351851]{color:#9ca3af;font-size:13px}.reasoning-block[data-v-ee351851]{background:#f0f7f3;border:1px dashed #b8d4c5;border-radius:8px;margin-bottom:6px;overflow:hidden}.reasoning-header[data-v-ee351851]{cursor:pointer;-webkit-user-select:none;user-select:none;color:#2d5a47;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:flex}.reasoning-icon[data-v-ee351851]{font-size:13px}.reasoning-title[data-v-ee351851]{font-weight:600}.reasoning-toggle[data-v-ee351851]{margin-left:auto}.reasoning-body[data-v-ee351851]{color:#16402f;white-space:pre-wrap;word-break:break-word;border-top:1px dashed #b8d4c5;max-height:240px;padding:8px 10px;font-size:12px;line-height:1.6;overflow-y:auto}.steps-block[data-v-ee351851]{flex-direction:column;gap:4px;margin-bottom:6px;display:flex}.step-item[data-v-ee351851]{color:#0e7490;background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px;flex-direction:column;align-self:flex-start;align-items:flex-start;gap:3px;max-width:100%;padding:2px 8px;font-size:11px;display:flex}.step-head[data-v-ee351851]{align-items:center;gap:5px;display:inline-flex}.step-icon[data-v-ee351851]{font-size:11px}.step-name[data-v-ee351851]{font-family:SF Mono,Monaco,Consolas,monospace}.step-count[data-v-ee351851]{color:#0891b2;font-size:10px;font-weight:600}.step-status.running[data-v-ee351851]{color:#0891b2}.step-children[data-v-ee351851]{background:#faf5ff;border-left:2px solid #c4b5fd;border-radius:0 8px 8px 0;flex-direction:column;gap:3px;margin-top:4px;padding:4px 8px 4px 10px;display:flex}.step-children-label[data-v-ee351851]{color:#7c3aed;letter-spacing:.3px;font-size:10px;font-weight:600}.step-child[data-v-ee351851]{color:#6d28d9;background:#ede9fe;border:1px solid #ddd6fe;border-radius:8px;align-items:center;gap:5px;padding:1px 7px;font-size:10px;display:inline-flex}.step-child .step-name[data-v-ee351851]{color:#6d28d9}.step-child .step-status.running[data-v-ee351851]{color:#8b5cf6}.stream-cursor[data-v-ee351851],.typing-cursor[data-v-ee351851]{vertical-align:text-bottom;background:var(--cs-primary);width:7px;height:14px;margin-left:2px;animation:1s steps(2,end) infinite blink-ee351851;display:inline-block}@keyframes blink-ee351851{0%,50%{opacity:1}51%,to{opacity:0}}.error-bar[data-v-ee351851]{color:#dc2626;background:#fef2f2;border-radius:8px;align-items:flex-start;gap:10px;margin-top:8px;padding:8px 12px;font-size:13px;display:flex}.error-text[data-v-ee351851]{word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;flex:1;min-width:0;max-height:120px;line-height:1.5;overflow-y:auto}.error-bar .retry-btn[data-v-ee351851],.error-bar .undo-btn[data-v-ee351851]{flex-shrink:0;margin-top:1px}.retry-btn[data-v-ee351851]{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;flex-shrink:0;padding:3px 12px;font-size:12px;font-weight:600;transition:background .2s}.retry-btn[data-v-ee351851]:hover{background:#b91c1c}.chat-footer[data-v-ee351851]{background:#fafafa;border-top:1px solid #f3f4f6;align-items:flex-end;gap:8px;padding:12px 16px;display:flex}.chat-input[data-v-ee351851]{resize:none;overflow-wrap:anywhere;word-break:break-word;border:1px solid #e5e7eb;border-radius:8px;outline:none;flex:1;max-height:100px;padding:9px 12px;font-family:inherit;font-size:13px;line-height:1.5;transition:border-color .2s;overflow-y:auto}.chat-input[data-v-ee351851]:focus{border-color:var(--cs-primary);box-shadow:0 0 0 2px rgba(var(--cs-primary-rgb), .1)}.send-btn[data-v-ee351851]{background:var(--cs-primary);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;transition:opacity .2s,transform .1s;display:flex}.send-btn[data-v-ee351851]:hover:not(:disabled){opacity:.9;transform:scale(1.05)}.send-btn[data-v-ee351851]:active:not(:disabled){transform:scale(.95)}.send-btn[data-v-ee351851]:disabled{opacity:.4;cursor:not-allowed}.send-btn.stop-btn[data-v-ee351851]{background:#9ca3af}.send-btn.stop-btn[data-v-ee351851]:hover:not(:disabled){background:#6b7280;transform:none}.cap-badge[data-v-ee351851]{color:#6b7280;white-space:nowrap;-webkit-user-select:none;user-select:none;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;flex-shrink:0;align-self:center;padding:4px 10px;font-size:11px}.msg-actions[data-v-ee351851]{opacity:0;gap:6px;margin-top:4px;transition:opacity .2s;display:flex}.message-row.assistant:hover .msg-actions[data-v-ee351851]{opacity:1}.msg-action-btn[data-v-ee351851]{color:#6b7280;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:2px 8px;font-size:11px;transition:all .2s}.msg-action-btn[data-v-ee351851]:hover{border-color:var(--cs-primary);color:var(--cs-primary);background:#f0f7f3}.undo-btn[data-v-ee351851]{color:#92400e;cursor:pointer;background:#fffbeb;border:1px solid #f59e0b;border-radius:6px;margin-left:6px;padding:2px 10px;font-size:11px;transition:all .2s}.undo-btn[data-v-ee351851]:hover{background:#fde68a}.undo-foot-btn[data-v-ee351851]{color:#6b7280;cursor:pointer;background:#f9fafb;border:1px solid #e5e7eb;border-radius:14px;flex-shrink:0;align-self:center;padding:4px 10px;font-size:11px;transition:all .2s}.undo-foot-btn[data-v-ee351851]:hover{border-color:var(--cs-primary);color:var(--cs-primary);background:#f0f7f3}.approval-bar[data-v-ee351851]{background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;margin:8px 12px;padding:10px 12px}.approval-head[data-v-ee351851]{color:#92400e;align-items:center;gap:6px;font-size:13px;display:flex}.approval-icon[data-v-ee351851]{font-size:15px}.approval-title code[data-v-ee351851]{color:#78350f;background:#fef3c7;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.approval-toggle[data-v-ee351851]{color:#92400e;cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:12px}.approval-toggle[data-v-ee351851]:hover{background:#fef3c7}.approval-args[data-v-ee351851]{color:#57534e;white-space:pre-wrap;word-break:break-all;background:#fff;border:1px solid #fde68a;border-radius:6px;max-height:140px;margin:8px 0;padding:8px;font-size:12px;overflow:auto}.approval-actions[data-v-ee351851]{justify-content:flex-end;gap:8px;display:flex}.approval-actions button[data-v-ee351851]{cursor:pointer;border:none;border-radius:6px;padding:5px 16px;font-size:13px;transition:opacity .2s}.approval-deny[data-v-ee351851]{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.approval-deny[data-v-ee351851]:hover{color:#374151;background:#e5e7eb}.approval-allow[data-v-ee351851]{background:var(--cs-primary);color:#fff}.approval-allow[data-v-ee351851]:hover{opacity:.9}.approval-question[data-v-ee351851]{color:#57534e;white-space:pre-wrap;background:#fff;border:1px solid #fde68a;border-radius:6px;margin:8px 0;padding:8px 10px;font-size:13px;line-height:1.5}.approval-context[data-v-ee351851]{color:#92400e;margin:4px 0 8px;font-size:12px;line-height:1.5}.approval-recommend[data-v-ee351851]{color:#1f4d3a;margin:4px 0 8px;font-size:12px}.approval-opt[data-v-ee351851]{border:1px solid var(--cs-primary);color:var(--cs-primary);cursor:pointer;background:#fff;border-radius:6px;padding:5px 14px;font-size:13px;transition:all .2s}.approval-opt[data-v-ee351851]:hover{background:var(--cs-primary);color:#fff}.conflict-bar[data-v-ee351851]{background:#fef2f2;border:1px solid #dc2626;border-radius:10px;margin:8px 12px;padding:10px 12px}.conflict-head[data-v-ee351851]{color:#991b1b;align-items:center;gap:6px;font-size:13px;display:flex}.conflict-icon[data-v-ee351851]{font-size:15px}.conflict-title code[data-v-ee351851]{color:#7f1d1d;background:#fee2e2;border-radius:4px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.conflict-detail[data-v-ee351851]{color:#7f1d1d;margin:6px 0 8px;font-size:12px;line-height:1.5}.conflict-actions[data-v-ee351851]{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.conflict-actions button[data-v-ee351851]{cursor:pointer;border:none;border-radius:6px;padding:5px 14px;font-size:13px;transition:opacity .2s}.conflict-keep[data-v-ee351851]{color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb}.conflict-keep[data-v-ee351851]:hover{color:#374151;background:#e5e7eb}.conflict-overwrite[data-v-ee351851]{color:#fff;background:#dc2626}.conflict-overwrite[data-v-ee351851]:hover{opacity:.9}.conflict-restore[data-v-ee351851]{color:#dc2626;background:#fff;border:1px solid #dc2626}.conflict-restore[data-v-ee351851]:hover{background:#fee2e2}.conflict-toggle[data-v-ee351851]{color:#991b1b;cursor:pointer;background:0 0;border:none;border-radius:4px;margin:2px 0 6px;padding:2px 8px;font-size:12px}.conflict-toggle[data-v-ee351851]:hover{background:#fee2e2}.conflict-diff[data-v-ee351851]{gap:8px;margin:4px 0 8px;display:flex}.conflict-diff-col[data-v-ee351851]{flex:1;min-width:0}.conflict-diff-label[data-v-ee351851]{color:#7f1d1d;margin-bottom:2px;font-size:11px}.conflict-diff-pre[data-v-ee351851]{color:#57534e;white-space:pre-wrap;word-break:break-all;background:#fff;border:1px solid #fecaca;border-radius:6px;max-height:140px;margin:0;padding:6px;font-size:11px;overflow:auto}
|
|
2
2
|
/*$vite$:1*/
|