diff --git a/debug/index.html b/debug/index.html index 96a4e08..ad0222e 100644 --- a/debug/index.html +++ b/debug/index.html @@ -11,6 +11,7 @@ --bg: #0e0e0e; --bg2: #161616; --bg3: #1e1e1e; + --bg4: #222; --border: #252525; --border2: #2e2e2e; --text: #d4d4d4; @@ -22,15 +23,9 @@ --c-user: #569cd6; --c-assistant: #c586c0; --c-tool: #ce9178; - - --bg-system: #1e3a2f; - --bg-user: #1e2d40; - --bg-assistant: #2d1e3a; - --bg-tool: #3a2d1e; } html, body { height: 100%; } - body { font-family: ui-monospace, "Cascadia Code", "Fira Code", "JetBrains Mono", monospace; font-size: 13px; @@ -47,19 +42,52 @@ flex-shrink: 0; background: var(--bg2); border-bottom: 1px solid var(--border); - padding: 8px 14px; + padding: 0 14px; display: flex; - align-items: center; + align-items: stretch; gap: 10px; - flex-wrap: wrap; } - .logo { font-size: 11px; color: var(--text3); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; } + .logo { + font-size: 11px; + color: var(--text3); + letter-spacing: .1em; + text-transform: uppercase; + white-space: nowrap; + align-self: center; + padding: 10px 0; + } .logo b { color: var(--accent); } - .spacer { flex: 1; } + /* ── Tabs ── */ + .tabs { + display: flex; + align-items: stretch; + gap: 2px; + margin-left: 10px; + } + .tab { + padding: 0 14px; + font-family: inherit; + font-size: 12px; + color: var(--text3); + background: none; + border: none; + border-bottom: 2px solid transparent; + cursor: pointer; + transition: color .15s, border-color .15s; + } + .tab:hover { color: var(--text2); } + .tab.active { color: var(--text); border-bottom-color: var(--accent); } - select, button, input { + .header-right { + margin-left: auto; + display: flex; + align-items: center; + gap: 8px; + } + + input, button, select { font-family: inherit; font-size: 12px; background: var(--bg3); @@ -68,19 +96,13 @@ border-radius: 4px; outline: none; } - select { padding: 4px 8px; cursor: pointer; max-width: 320px; } - select:focus { border-color: #555; } - input { padding: 4px 8px; width: 280px; } + input { padding: 4px 8px; } input:focus { border-color: #555; } button { padding: 4px 10px; cursor: pointer; } - button:hover { background: #2a2a2a; border-color: #555; } + button:hover { background: var(--bg4); border-color: #555; } button.active { background: #1e3a2f; border-color: var(--accent); color: var(--accent); } - #stats { - font-size: 11px; - color: var(--text3); - white-space: nowrap; - } + #stats { font-size: 11px; color: var(--text3); white-space: nowrap; } #stats b { color: var(--text2); } /* ── Layout ── */ @@ -92,7 +114,7 @@ /* ── Sidebar ── */ aside { - width: 230px; + width: 220px; flex-shrink: 0; background: var(--bg2); border-right: 1px solid var(--border); @@ -100,7 +122,6 @@ flex-direction: column; overflow: hidden; } - .aside-title { font-size: 10px; color: var(--text3); @@ -110,59 +131,33 @@ border-bottom: 1px solid var(--border); flex-shrink: 0; } + .aside-scroll { flex: 1; overflow-y: auto; } - #session-list { - flex: 1; - overflow-y: auto; - } - - .session-item { + .list-item { padding: 7px 10px; cursor: pointer; border-bottom: 1px solid var(--border); transition: background .1s; } - .session-item:hover { background: var(--bg3); } - .session-item.selected { background: #1a1a2a; border-left: 2px solid var(--c-user); padding-left: 8px; } + .list-item:hover { background: var(--bg3); } + .list-item.selected { background: #1a1a2a; border-left: 2px solid var(--c-user); padding-left: 8px; } - .si-name { - font-size: 11px; - color: var(--text); - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } - .si-meta { - font-size: 10px; - color: var(--text3); - margin-top: 2px; - display: flex; - gap: 6px; - } - .si-profile { color: var(--text2); } - .si-pin { color: var(--accent); } + .li-name { font-size: 11px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } + .li-meta { font-size: 10px; color: var(--text3); margin-top: 2px; display: flex; gap: 6px; flex-wrap: wrap; } + .li-profile { color: var(--text2); } + .li-pin { color: var(--accent); } - /* ── Main content ── */ + /* ── Main ── */ main { flex: 1; overflow-y: auto; padding: 14px 16px; } - #placeholder { - text-align: center; - color: var(--text3); - padding: 80px 0; - font-size: 12px; - } + #placeholder { text-align: center; color: var(--text3); padding: 80px 0; font-size: 12px; } + #error-msg { color: #f48771; padding: 20px; text-align: center; } - #error-msg { - color: #f48771; - padding: 20px; - text-align: center; - } - - /* ── Message card ── */ + /* ── Context: message cards ── */ .msg { display: grid; grid-template-columns: 86px 1fr; @@ -171,7 +166,6 @@ border-radius: 6px; overflow: hidden; } - .msg-role { background: var(--bg2); border-right: 1px solid var(--border); @@ -182,25 +176,16 @@ gap: 4px; text-align: center; } - .role-badge { - font-size: 9px; - font-weight: 700; - letter-spacing: .05em; - text-transform: uppercase; - padding: 2px 6px; - border-radius: 3px; + font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; + padding: 2px 6px; border-radius: 3px; } - .role-system { background: var(--bg-system); color: var(--c-system); } - .role-user { background: var(--bg-user); color: var(--c-user); } - .role-assistant { background: var(--bg-assistant); color: var(--c-assistant); } - .role-tool { background: var(--bg-tool); color: var(--c-tool); } + .role-system { background: #1e3a2f; color: var(--c-system); } + .role-user { background: #1e2d40; color: var(--c-user); } + .role-assistant { background: #2d1e3a; color: var(--c-assistant); } + .role-tool { background: #3a2d1e; color: var(--c-tool); } - .tag { - font-size: 9px; - padding: 1px 5px; - border-radius: 3px; - } + .tag { font-size: 9px; padding: 1px 5px; border-radius: 3px; } .tag-summary { background: #3a3a1e; color: #dcdcaa; } .tag-plan { background: #1e2d1e; color: #6a9955; } .tag-images { background: #1e3a3a; color: var(--c-system); } @@ -208,159 +193,337 @@ .tag-think { background: #2d2d1e; color: #dcdcaa; } .msg-idx { font-size: 10px; color: var(--text3); } - - /* ── Message body ── */ .msg-body { padding: 8px 12px; overflow: hidden; min-width: 0; } .section-label { - font-size: 10px; - color: var(--text3); - text-transform: uppercase; - letter-spacing: .06em; + font-size: 10px; color: var(--text3); + text-transform: uppercase; letter-spacing: .06em; margin: 8px 0 4px; } pre.content { - white-space: pre-wrap; - word-break: break-word; - line-height: 1.55; - color: var(--text); - font-family: inherit; - font-size: 12px; + white-space: pre-wrap; word-break: break-word; + line-height: 1.55; color: var(--text); + font-family: inherit; font-size: 12px; } pre.content.dim { color: var(--text2); } - pre.content.thinking-text { color: #dcdcaa; background: #1e1e0e; padding: 6px 8px; border-radius: 4px; border-left: 2px solid #5a5a20; } + pre.content.thinking-text { + color: #dcdcaa; background: #1e1e0e; + padding: 6px 8px; border-radius: 4px; + border-left: 2px solid #5a5a20; + } .tool-call-block { - background: var(--bg2); - border: 1px solid var(--border2); - border-radius: 4px; - margin-bottom: 6px; - overflow: hidden; + background: var(--bg2); border: 1px solid var(--border2); + border-radius: 4px; margin-bottom: 6px; overflow: hidden; } - .tool-call-name { - background: #222; - color: var(--c-tool); - padding: 2px 8px; - font-size: 11px; - font-weight: 600; - } - .tool-call-args { - padding: 5px 8px; - white-space: pre-wrap; - word-break: break-word; - color: #9cdcfe; - font-size: 11px; - font-family: inherit; - } + .tool-call-name { background: var(--bg4); color: var(--c-tool); padding: 2px 8px; font-size: 11px; font-weight: 600; } + .tool-call-args { padding: 5px 8px; white-space: pre-wrap; word-break: break-word; color: #9cdcfe; font-size: 11px; font-family: inherit; } - .tool-id { font-size: 10px; color: var(--text3); margin-top: 4px; } + .tool-id { font-size: 10px; color: var(--text3); margin-top: 4px; } + .char-count{ font-size: 10px; color: var(--text3); margin-top: 6px; } .img-strip { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; } .img-thumb { width: 72px; height: 72px; object-fit: cover; border-radius: 3px; border: 1px solid var(--border2); cursor: pointer; } - .char-count { font-size: 10px; color: var(--text3); margin-top: 6px; } + /* ── Prompts tab ── */ + .prompt-card { + border: 1px solid var(--border); + border-radius: 6px; + overflow: hidden; + margin-bottom: 12px; + } + .prompt-section { + border-bottom: 1px solid var(--border); + } + .prompt-section:last-child { border-bottom: none; } + .prompt-section-header { + display: flex; + align-items: center; + gap: 8px; + padding: 6px 12px; + background: var(--bg2); + cursor: pointer; + user-select: none; + } + .prompt-section-header:hover { background: var(--bg3); } + .ps-label { + font-size: 10px; font-weight: 700; text-transform: uppercase; + letter-spacing: .07em; + } + .ps-label.lbl-persona { color: var(--accent); } + .ps-label.lbl-profile { color: var(--c-assistant); } + .ps-label.lbl-profiles { color: var(--c-user); } + .ps-chars { font-size: 10px; color: var(--text3); margin-left: auto; } + .ps-chevron { font-size: 11px; color: var(--text3); transition: transform .15s; } + .ps-chevron.open { transform: rotate(90deg); } + + .prompt-section-body { + padding: 10px 12px; + background: var(--bg); + } + .prompt-section-body pre { + white-space: pre-wrap; word-break: break-word; + line-height: 1.6; color: var(--text); font-family: inherit; font-size: 12px; + } + .prompt-section-body.hidden { display: none; } + + .profile-header { + display: flex; align-items: center; gap: 10px; + padding: 8px 12px; + background: var(--bg2); + border-bottom: 1px solid var(--border2); + } + .profile-header h2 { font-size: 13px; font-weight: 600; color: var(--text); } + .ph-model { font-size: 11px; color: var(--text3); margin-left: auto; } + .ph-chars { font-size: 11px; color: var(--text2); } + .ph-tools-badge { + font-size: 10px; padding: 1px 6px; border-radius: 3px; + background: #1e2d1e; color: #6a9955; cursor: pointer; + } + .ph-tools-badge:hover { background: #253d25; } + + .tools-inline { + padding: 6px 12px 8px; + background: var(--bg); + border-bottom: 1px solid var(--border); + display: flex; flex-wrap: wrap; gap: 5px; + } + .tools-inline.hidden { display: none; } + .tool-pill { + font-size: 10px; padding: 2px 7px; border-radius: 3px; + background: var(--bg3); border: 1px solid var(--border2); color: var(--text2); + } + + /* ── Tools tab ── */ + .tool-card { + border: 1px solid var(--border); + border-radius: 6px; + overflow: hidden; + margin-bottom: 10px; + } + .tool-card-header { + display: flex; align-items: center; gap: 8px; + padding: 7px 12px; + background: var(--bg2); + cursor: pointer; + user-select: none; + } + .tool-card-header:hover { background: var(--bg3); } + .tool-name { font-size: 12px; font-weight: 700; color: var(--c-tool); } + .tool-builtin { font-size: 9px; padding: 1px 5px; border-radius: 3px; background: #1e3a2f; color: var(--accent); } + .tool-user { font-size: 9px; padding: 1px 5px; border-radius: 3px; background: #2d1e3a; color: var(--c-assistant); } + .tool-chevron { font-size: 11px; color: var(--text3); margin-left: auto; transition: transform .15s; } + .tool-chevron.open { transform: rotate(90deg); } + + .tool-card-body { padding: 10px 12px; background: var(--bg); } + .tool-card-body.hidden { display: none; } + .tool-desc { color: var(--text2); line-height: 1.55; font-size: 12px; margin-bottom: 10px; white-space: pre-wrap; word-break: break-word; } + + .params-label { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; } + .param-row { + display: grid; grid-template-columns: 140px 80px 1fr; + gap: 0 10px; padding: 4px 0; + border-top: 1px solid var(--border); + font-size: 11px; line-height: 1.4; + } + .param-name { color: #9cdcfe; } + .param-type { color: #ce9178; } + .param-desc { color: var(--text2); word-break: break-word; } + .param-req { color: #f48771; font-size: 9px; margin-left: 3px; } /* ── Scrollbar ── */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: #333; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: #444; } + + .hidden { display: none !important; }