@hsupu/copilot-api 0.7.18-beta.2 → 0.7.18-beta.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hsupu/copilot-api",
3
- "version": "0.7.18-beta.2",
3
+ "version": "0.7.18-beta.3",
4
4
  "description": "Turn GitHub Copilot into OpenAI/Anthropic API compatible server.",
5
5
  "keywords": [
6
6
  "proxy",
@@ -62,6 +62,7 @@
62
62
  "hono": "^4.12.3",
63
63
  "picocolors": "^1.1.1",
64
64
  "proxy-from-env": "^2.0.0",
65
+ "socks": "^2.8.7",
65
66
  "srvx": "^0.11.8",
66
67
  "tiny-invariant": "^1.3.3",
67
68
  "undici": "^7.22.0",
@@ -1 +1 @@
1
- .base-btn[data-v-5d391870]{display:inline-flex;align-items:center;gap:var(--spacing-xs);border-radius:var(--border-radius-sm);font-weight:500;white-space:nowrap;transition:all var(--transition-fast);border:1px solid var(--border);line-height:1}.base-btn[data-v-5d391870]:disabled{opacity:.5;cursor:not-allowed}.btn-size-sm[data-v-5d391870]{padding:4px 8px;font-size:var(--font-size-xs)}.btn-size-md[data-v-5d391870]{padding:6px 12px;font-size:var(--font-size-sm)}.btn-default[data-v-5d391870]{background:var(--bg-tertiary);color:var(--text)}.btn-default[data-v-5d391870]:hover:not(:disabled){background:var(--bg-hover)}.btn-primary[data-v-5d391870]{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.btn-primary[data-v-5d391870]:hover:not(:disabled){opacity:.9}.btn-danger[data-v-5d391870]{background:transparent;color:var(--error);border-color:var(--error)}.btn-danger[data-v-5d391870]:hover:not(:disabled){background:var(--error-muted)}.btn-ghost[data-v-5d391870]{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost[data-v-5d391870]:hover:not(:disabled){color:var(--text);background:var(--bg-tertiary)}.spinner[data-v-5d391870]{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin-5d391870 .6s linear infinite}@keyframes spin-5d391870{to{transform:rotate(360deg)}}.base-select[data-v-1a8e761a]{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:4px 8px;font-size:var(--font-size-xs);cursor:pointer;outline:none;min-width:80px;appearance:auto}.base-select[data-v-1a8e761a]:focus{border-color:var(--primary)}.base-select[data-v-1a8e761a]:hover{border-color:var(--text-dim)}.icon-svg[data-v-ae6caa74]{display:inline-block;vertical-align:middle;flex-shrink:0}.status-dot[data-v-f0facb12]{display:inline-block;border-radius:50%;flex-shrink:0}.status-success[data-v-f0facb12]{background:var(--success);box-shadow:0 0 4px var(--success)}.status-error[data-v-f0facb12]{background:var(--error);box-shadow:0 0 4px var(--error)}.status-pending[data-v-f0facb12]{background:var(--warning);box-shadow:0 0 4px var(--warning);animation:pulse-f0facb12 1.5s ease-in-out infinite}@keyframes pulse-f0facb12{0%,to{opacity:1}50%{opacity:.4}}.app-header[data-v-ba112819]{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.header-left[data-v-ba112819]{display:flex;align-items:center;gap:var(--spacing-md)}.header-title[data-v-ba112819]{font-size:var(--font-size-lg);font-weight:600;color:var(--text)}.version-tag[data-v-ba112819]{font-size:var(--font-size-xs);font-weight:500;color:var(--text-dim);vertical-align:super}.header-right[data-v-ba112819]{display:flex;align-items:center;gap:var(--spacing-sm)}.ws-label[data-v-ba112819]{font-size:var(--font-size-xs);color:var(--text-dim);margin-right:var(--spacing-sm)}.export-dropdown[data-v-ba112819]{position:relative}.export-menu[data-v-ba112819]{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-tertiary);border:1px solid var(--border);min-width:120px;z-index:100;box-shadow:var(--shadow-md)}.export-item[data-v-ba112819]{display:block;width:100%;padding:8px 12px;text-align:left;font-size:var(--font-size-sm);color:var(--text);background:transparent}.export-item[data-v-ba112819]:hover{background:var(--bg-hover)}@keyframes spin-ba112819{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning[data-v-ba112819]{animation:spin-ba112819 1s linear infinite}@media(max-width:768px){.app-header[data-v-ba112819]{flex-wrap:wrap;height:auto;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}}.stats-bar[data-v-7ebe7ed2]{height:var(--stats-height);display:flex;align-items:center;gap:var(--spacing-lg);padding:0 var(--spacing-lg);background:var(--bg);border-bottom:1px solid var(--border-light);flex-shrink:0;font-size:var(--font-size-xs)}.stat-item[data-v-7ebe7ed2]{display:flex;align-items:center;gap:var(--spacing-xs)}.stat-value[data-v-7ebe7ed2]{font-weight:600;color:var(--text);font-family:var(--font-mono)}.stat-label[data-v-7ebe7ed2]{color:var(--text-dim)}.stat-success .stat-value[data-v-7ebe7ed2]{color:var(--success)}.stat-error .stat-value[data-v-7ebe7ed2]{color:var(--error)}@media(max-width:768px){.stats-bar[data-v-7ebe7ed2]{flex-wrap:wrap;height:auto;padding:var(--spacing-xs) var(--spacing-md);gap:var(--spacing-sm) var(--spacing-md)}}.split-pane[data-v-77cb6608]{display:flex;flex:1;overflow:hidden}.split-pane.dragging[data-v-77cb6608]{-webkit-user-select:none;user-select:none;cursor:col-resize}.split-left[data-v-77cb6608]{flex-shrink:0;overflow:hidden;display:flex;flex-direction:column}.split-handle[data-v-77cb6608]{width:4px;background:var(--border);cursor:col-resize;flex-shrink:0;transition:background var(--transition-fast)}.split-handle[data-v-77cb6608]:hover,.dragging .split-handle[data-v-77cb6608]{background:var(--primary)}.split-right[data-v-77cb6608]{flex:1;overflow:hidden;display:flex;flex-direction:column}@media(max-width:768px){.split-pane[data-v-77cb6608]{flex-direction:column}.split-left[data-v-77cb6608]{width:100%!important;height:40%;border-bottom:1px solid var(--border)}.split-handle[data-v-77cb6608]{display:none}.split-right[data-v-77cb6608]{height:60%}}.base-input[data-v-77e6d433]{position:relative;display:flex;align-items:center}.base-input input[data-v-77e6d433]{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:4px 8px;font-size:var(--font-size-xs);color:var(--text);outline:none}.base-input input[data-v-77e6d433]:focus{border-color:var(--primary)}.base-input input[data-v-77e6d433]::placeholder{color:var(--text-dim)}.has-icon input[data-v-77e6d433]{padding-left:26px}.input-icon[data-v-77e6d433]{position:absolute;left:8px;color:var(--text-dim);pointer-events:none}.base-badge[data-v-226d8817]{display:inline-flex;align-items:center;padding:1px 6px;border-radius:0;font-size:var(--font-size-xs);font-weight:500;white-space:nowrap;line-height:1.2}.badge-default[data-v-226d8817]{background:var(--bg-tertiary);color:var(--text-muted)}.badge-primary[data-v-226d8817]{background:var(--primary-muted);color:var(--primary)}.badge-success[data-v-226d8817]{background:var(--success-muted);color:var(--success)}.badge-error[data-v-226d8817]{background:var(--error-muted);color:var(--error)}.badge-warning[data-v-226d8817]{background:var(--warning-muted);color:var(--warning)}.badge-purple[data-v-226d8817]{background:var(--purple-muted);color:var(--purple)}.badge-cyan[data-v-226d8817]{background:var(--cyan-muted);color:var(--cyan)}.badge-pink[data-v-226d8817]{background:var(--pink-muted);color:var(--pink)}.badge-green[data-v-226d8817]{background:var(--success-muted);color:var(--success)}.request-item[data-v-31ccfa5f]{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-light);cursor:pointer;border-left:3px solid transparent;transition:all var(--transition-fast)}.request-item[data-v-31ccfa5f]:hover{background:var(--bg-hover)}.request-item.selected[data-v-31ccfa5f]{background:var(--bg-selected);border-left-color:var(--primary)}.item-header[data-v-31ccfa5f]{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:2px}.item-time[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text-muted);font-family:var(--font-mono)}.item-id[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px;text-decoration:none}.item-id[data-v-31ccfa5f]:hover{opacity:1;text-decoration:underline}.item-model[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text);font-weight:500;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.item-meta[data-v-31ccfa5f]{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.item-tokens[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);margin-left:auto}.item-duration[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.item-preview[data-v-31ccfa5f]{font-size:var(--font-size-xs);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-pagination[data-v-c52e0777]{display:flex;align-items:center;justify-content:center;gap:2px;padding:var(--spacing-sm);border-top:1px solid var(--border-light);flex-shrink:0}.page-btn[data-v-c52e0777]{font-size:var(--font-size-xs);color:var(--text-muted);padding:2px 8px;min-width:24px;text-align:center}.page-btn[data-v-c52e0777]:hover:not(:disabled){background:var(--primary-muted);color:var(--primary)}.page-btn.active[data-v-c52e0777]{background:var(--primary);color:var(--primary-contrast);font-weight:600}.page-btn[data-v-c52e0777]:disabled{color:var(--text-dim);cursor:not-allowed}.nav-btn[data-v-c52e0777]{color:var(--primary)}.page-ellipsis[data-v-c52e0777]{font-size:var(--font-size-xs);color:var(--text-dim);padding:0 4px}.request-list[data-v-f3026da6]{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary)}.list-controls[data-v-f3026da6]{padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-xs);flex-shrink:0}.list-filters[data-v-f3026da6]{display:flex;gap:var(--spacing-xs)}.list-body[data-v-f3026da6]{flex:1;overflow-y:auto}.list-empty[data-v-f3026da6]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:var(--font-size-sm)}.empty-subtitle[data-v-f3026da6]{font-size:var(--font-size-xs);color:var(--text-dim);opacity:.6;margin-top:var(--spacing-xs)}.search-count[data-v-f3026da6]{font-size:var(--font-size-xs);color:var(--text-dim);padding-left:var(--spacing-xs)}.base-checkbox[data-v-b169bfe7]{display:inline-flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:var(--font-size-xs);color:var(--text-muted);-webkit-user-select:none;user-select:none}.base-checkbox input[type=checkbox][data-v-b169bfe7]{appearance:none;width:14px;height:14px;border:1px solid var(--border);border-radius:0;background:var(--bg-tertiary);cursor:pointer;position:relative;flex-shrink:0}.base-checkbox input[type=checkbox][data-v-b169bfe7]:checked{background:var(--primary);border-color:var(--primary)}.base-checkbox input[type=checkbox][data-v-b169bfe7]:checked:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--primary-contrast);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label[data-v-b169bfe7]{white-space:nowrap}.detail-toolbar[data-v-3ed4a3af]{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);flex-shrink:0;background:var(--bg-secondary)}.toolbar-row[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.rewrite-row[data-v-3ed4a3af]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);justify-content:space-between}.rewrite-stats[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-xs)}.rewrite-label[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--warning);font-weight:600}.rewrite-stat[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--text-muted);padding:1px 6px;background:var(--warning-muted);border-radius:3px}.rewrite-stat-truncated[data-v-3ed4a3af]{background:var(--error-muted);color:var(--error)}.rewrite-controls[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-sm)}.rewrite-nav[data-v-3ed4a3af]{display:flex;align-items:center;gap:2px}.nav-btn[data-v-3ed4a3af]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;color:var(--text-dim);background:var(--bg-tertiary);border:1px solid var(--border-light)}.nav-btn[data-v-3ed4a3af]:hover{color:var(--text);background:var(--bg-hover)}.nav-label[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);min-width:32px;text-align:center}.section-block[data-v-6d33a6f9]{border:1px solid var(--border-light);margin-bottom:var(--spacing-sm);overflow:hidden}.section-header[data-v-6d33a6f9]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.section-header[data-v-6d33a6f9]:hover{background:var(--bg-hover)}.section-chevron[data-v-6d33a6f9]{color:var(--text-dim);flex-shrink:0}.section-title[data-v-6d33a6f9]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.section-badge[data-v-6d33a6f9]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.section-raw-btn[data-v-6d33a6f9]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent;margin-left:auto}.section-raw-btn[data-v-6d33a6f9]:hover{color:var(--text);background:var(--bg-hover)}.section-body[data-v-6d33a6f9]{padding:var(--spacing-sm)}.sse-timeline[data-v-2edf43f6]{font-family:var(--font-mono);font-size:var(--font-size-xs)}.sse-event[data-v-2edf43f6]{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:2px 0;border-bottom:1px solid var(--border-light)}.sse-event[data-v-2edf43f6]:last-child{border-bottom:none}.sse-offset[data-v-2edf43f6]{flex-shrink:0;width:64px;text-align:right;color:var(--text-dim)}.sse-type[data-v-2edf43f6]{flex-shrink:0;min-width:160px;font-weight:500}.sse-type-green[data-v-2edf43f6]{color:var(--success)}.sse-type-blue[data-v-2edf43f6]{color:var(--info)}.sse-type-cyan[data-v-2edf43f6]{color:var(--primary)}.sse-type-red[data-v-2edf43f6]{color:var(--error)}.sse-type-dim[data-v-2edf43f6]{color:var(--text-dim)}.sse-type-default[data-v-2edf43f6]{color:var(--text)}.sse-summary[data-v-2edf43f6]{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-grid[data-v-ac9f5ec1]{display:flex;flex-direction:column;gap:4px}.meta-row[data-v-ac9f5ec1]{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:2px 0}.meta-label[data-v-ac9f5ec1]{font-size:var(--font-size-xs);color:var(--text-dim);min-width:90px;flex-shrink:0}.meta-label--attempt[data-v-ac9f5ec1]{font-weight:600;color:var(--text-muted)}.meta-value[data-v-ac9f5ec1]{font-size:var(--font-size-xs);color:var(--text)}.meta-value.mono[data-v-ac9f5ec1]{font-family:var(--font-mono)}.meta-section[data-v-ac9f5ec1]{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light)}.meta-section .meta-row[data-v-ac9f5ec1]{display:flex;align-items:baseline;gap:var(--spacing-md);padding:2px 0}.meta-section-title[data-v-ac9f5ec1]{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.error-text[data-v-ac9f5ec1]{color:var(--error)}.truncation-divider[data-v-9cfada0f]{display:flex;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-md) 0}.divider-line[data-v-9cfada0f]{flex:1;height:1px;background:var(--error);opacity:.4;border-style:dashed}.divider-content[data-v-9cfada0f]{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.divider-icon[data-v-9cfada0f]{font-size:var(--font-size-sm)}.divider-text[data-v-9cfada0f]{font-size:var(--font-size-xs);color:var(--error);font-weight:500}.divider-detail[data-v-9cfada0f]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.line-number-pre[data-v-a98c3fb0]{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.6;overflow-x:auto}.line[data-v-a98c3fb0]{display:flex;white-space:pre-wrap;word-wrap:break-word}.line[data-v-a98c3fb0]:hover{background:var(--bg-hover)}.line-no[data-v-a98c3fb0]{flex-shrink:0;width:3.5em;padding-right:1em;text-align:right;color:var(--text-dim);-webkit-user-select:none;user-select:none;opacity:.5}.line-content[data-v-a98c3fb0]{flex:1;min-width:0;color:var(--text)}[data-v-a98c3fb0] .search-highlight{background:var(--warning);color:var(--bg);padding:0 2px}.diff-view[data-v-1175ff40]{overflow-x:auto;font-size:var(--font-size-sm)}.system-message[data-v-eac28575]{border:1px solid rgba(163,113,247,.3);overflow:hidden;margin-bottom:var(--spacing-sm)}.system-header[data-v-eac28575]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--purple-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.system-header[data-v-eac28575]:hover{background:#a371f733}.system-header-left[data-v-eac28575]{display:flex;align-items:center;gap:var(--spacing-xs);min-width:0;overflow:hidden}.collapse-icon[data-v-eac28575]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.collapsed-summary[data-v-eac28575]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.system-header-right[data-v-eac28575]{display:flex;align-items:center;gap:8px;flex-shrink:0}.view-toggle[data-v-eac28575]{display:flex;gap:1px;background:var(--bg);overflow:hidden}.view-toggle button[data-v-eac28575]{font-size:var(--font-size-xs);padding:2px 8px;color:var(--text-muted);background:var(--bg-secondary)}.view-toggle button[data-v-eac28575]:hover{color:var(--text)}.view-toggle button.active[data-v-eac28575]{color:var(--primary);background:var(--primary-muted)}.reset-btn[data-v-eac28575]{font-size:var(--font-size-sm);padding:2px 6px;color:var(--text-dim);background:var(--bg-secondary);line-height:1}.reset-btn[data-v-eac28575]:hover{color:var(--error)}.action-btn[data-v-eac28575]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-eac28575]:hover{color:var(--text);background:var(--bg-hover)}.system-body[data-v-eac28575]{padding:var(--spacing-sm);max-height:400px;overflow-y:auto}.system-body.body-expanded[data-v-eac28575]{max-height:none}.system-block-item[data-v-eac28575]{margin-bottom:var(--spacing-sm)}.system-block-item[data-v-eac28575]:last-child{margin-bottom:0}.cache-label[data-v-eac28575]{font-size:var(--font-size-xs);color:var(--warning);font-style:italic;margin-bottom:2px}.content-block[data-v-0742d16c]{border:1px solid var(--border)}.content-block-header[data-v-0742d16c]{display:flex;align-items:baseline;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.content-block-header[data-v-0742d16c]:hover{background:var(--bg-hover)}.content-block-header-left[data-v-0742d16c]{display:flex;align-items:baseline;gap:var(--spacing-sm);min-width:0;overflow:hidden}.content-block-header-right[data-v-0742d16c]{display:flex;align-items:center;gap:8px;flex-shrink:0}.collapse-icon[data-v-0742d16c]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.content-type-label[data-v-0742d16c]{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;flex-shrink:0}.label-text[data-v-0742d16c]{color:var(--text-muted)}.label-cyan[data-v-0742d16c]{color:var(--cyan)}.label-success[data-v-0742d16c]{color:var(--success)}.label-error[data-v-0742d16c]{color:var(--error)}.label-purple[data-v-0742d16c]{color:var(--purple)}.label-pink[data-v-0742d16c]{color:var(--pink)}.label-warning[data-v-0742d16c]{color:var(--warning)}.label-text-muted[data-v-0742d16c]{color:var(--text-muted)}.collapsed-summary[data-v-0742d16c]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-btn[data-v-0742d16c]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-0742d16c]:hover{color:var(--text);background:var(--bg-hover)}.content-block-body[data-v-0742d16c]{padding:var(--spacing-sm)}.body-collapsed[data-v-0742d16c]{max-height:200px;overflow-y:auto}.redacted[data-v-7878f7b8]{opacity:.6}.redacted-label[data-v-7878f7b8]{font-size:var(--font-size-xs);color:var(--text-dim);font-style:italic}.thinking-text[data-v-7878f7b8]{font-size:var(--font-size-sm);color:var(--text);white-space:pre-wrap;word-wrap:break-word;line-height:1.6}[data-v-7878f7b8] .search-highlight{background:var(--warning);color:var(--bg);padding:0 2px}[data-v-7878f7b8] .content-block{border-color:#a371f74d}[data-v-7878f7b8] .content-block-header{background:var(--purple-muted)}.image-media-type[data-v-7e48d486]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.image-content[data-v-7e48d486]{max-width:100%;max-height:400px;border:1px solid var(--border)}.aggregated-stub[data-v-ef1fc34e]{display:flex;align-items:center;gap:8px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border);font-size:var(--font-size-xs)}.stub-label[data-v-ef1fc34e]{font-weight:600;letter-spacing:.5px;flex-shrink:0}.label-success[data-v-ef1fc34e]{color:var(--success)}.label-error[data-v-ef1fc34e]{color:var(--error)}.result-tool-name[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--text-muted);font-family:var(--font-mono)}.result-tool-id[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.result-error-badge[data-v-ef1fc34e]{font-size:var(--font-size-xs);font-weight:600;color:var(--error)}.tool-jump[data-v-ef1fc34e]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);margin-top:var(--spacing-sm);margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));margin-bottom:calc(-1 * var(--spacing-sm));padding-left:var(--spacing-sm);padding-bottom:var(--spacing-xs)}.jump-link[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--primary);cursor:pointer}.jump-link[data-v-ef1fc34e]:hover{text-decoration:underline}.vjs-tree-brackets{cursor:pointer}.vjs-tree-brackets:hover{color:#1890ff}.vjs-check-controller{position:absolute;left:0}.vjs-check-controller.is-checked .vjs-check-controller-inner{background-color:#1890ff;border-color:#0076e4}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-checkbox:after{transform:rotate(45deg) scaleY(1)}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-radio:after{transform:translate(-50%,-50%) scale(1)}.vjs-check-controller .vjs-check-controller-inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:2px;vertical-align:middle;box-sizing:border-box;width:16px;height:16px;background-color:#fff;z-index:1;cursor:pointer;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-check-controller .vjs-check-controller-inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-check-controller .vjs-check-controller-inner.is-radio{border-radius:100%}.vjs-check-controller .vjs-check-controller-inner.is-radio:after{border-radius:100%;height:4px;background-color:#fff;left:50%;top:50%}.vjs-check-controller .vjs-check-controller-original{opacity:0;outline:none;position:absolute;z-index:-1;inset:0;margin:0}.vjs-carets{position:absolute;right:0;cursor:pointer}.vjs-carets svg{transition:transform .3s}.vjs-carets:hover{color:#1890ff}.vjs-carets-close{transform:rotate(-90deg)}.vjs-tree-node{display:flex;position:relative;line-height:20px}.vjs-tree-node.has-carets{padding-left:15px}.vjs-tree-node.has-carets.has-selector,.vjs-tree-node.has-selector{padding-left:30px}.vjs-tree-node.is-highlight,.vjs-tree-node:hover{background-color:#e6f7ff;border-radius:4px}.vjs-tree-node.is-highlight .vjs-tree-node-actions,.vjs-tree-node:hover .vjs-tree-node-actions{display:block}.vjs-tree-node .vjs-indent{display:flex;position:relative}.vjs-tree-node .vjs-indent-unit.has-line{border-left:1px dashed #bfcbd9}.vjs-tree-node .vjs-tree-node-actions{display:none;position:absolute;right:0;top:0;padding:0 4px;background-color:#e6f7ff;border-radius:4px}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item{cursor:pointer}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item:hover{color:#1890ff}.vjs-tree-node.dark.is-highlight,.vjs-tree-node.dark .vjs-tree-node-actions,.vjs-tree-node.dark:hover{background-color:#2e4558}.vjs-node-index{position:absolute;right:100%;margin-right:4px;-webkit-user-select:none;user-select:none}.vjs-colon{white-space:pre}.vjs-comment{color:#bfcbd9}.vjs-key{white-space:nowrap}.vjs-value{word-break:break-word}.vjs-tree-node.dynamic-height .vjs-value{white-space:pre-wrap}.vjs-value-null,.vjs-value-undefined{color:#d55fde}.vjs-value-boolean,.vjs-value-number{color:#1d8ce0}.vjs-value-string{color:#13ce66}.vjs-tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono,monospace;font-size:14px;text-align:left}.vjs-tree.is-virtual{overflow:auto}.vjs-tree.is-virtual .vjs-tree-node{white-space:nowrap}.tool-name[data-v-06ade624]{font-size:var(--font-size-sm);color:var(--primary);font-weight:600;font-family:var(--font-mono)}.tool-id[data-v-06ade624]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.tool-input[data-v-06ade624]{font-size:var(--font-size-sm);color:var(--text)}.tool-aggregate-result[data-v-06ade624]{border-top:1px solid var(--border);margin-top:var(--spacing-sm)}.tool-jump[data-v-06ade624]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);margin-top:var(--spacing-sm);margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));margin-bottom:calc(-1 * var(--spacing-sm));padding-left:var(--spacing-sm);padding-bottom:var(--spacing-xs)}.jump-link[data-v-06ade624]{font-size:var(--font-size-xs);color:var(--primary);cursor:pointer}.jump-link[data-v-06ade624]:hover{text-decoration:underline}[data-v-06ade624] .vjs-tree{font-family:var(--font-mono);font-size:var(--font-size-sm);background:transparent!important;color:var(--text)!important}[data-v-06ade624] .vjs-tree-node:hover{background:var(--bg-hover)!important}[data-v-06ade624] .vjs-key{color:var(--cyan)!important}[data-v-06ade624] .vjs-value-string{color:var(--success)!important}[data-v-06ade624] .vjs-value-number{color:var(--warning)!important}[data-v-06ade624] .vjs-value-boolean{color:var(--purple)!important}[data-v-06ade624] .vjs-value-null{color:var(--text-dim)!important}[data-v-06ade624] .vjs-tree__brackets{color:var(--text-muted)!important}[data-v-06ade624] .vjs-tree__brackets:hover{color:var(--primary)!important;cursor:pointer}[data-v-06ade624] .vjs-tree__content.has-line{border-left:1px solid var(--border-light)!important}[data-v-06ade624] .vjs-tree__indent--line-number{color:var(--text-dim)!important;border-right:1px solid var(--border-light)!important;padding-right:8px!important;margin-right:4px!important}.generic-content[data-v-f03251db]{font-size:var(--font-size-sm);color:var(--text-muted)}.content-renderer[data-v-6d7c503e]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.message-block[data-v-2faca0f0]{border:1px solid var(--border-light);overflow:hidden}.message-block.truncated[data-v-2faca0f0]{border-color:var(--error);opacity:.7;text-decoration:line-through}.msg-header[data-v-2faca0f0]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.msg-header[data-v-2faca0f0]:hover{background:var(--bg-hover)}.msg-header-left[data-v-2faca0f0]{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.msg-header-right[data-v-2faca0f0]{display:flex;align-items:center;gap:8px;flex-shrink:0}.collapse-icon[data-v-2faca0f0]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.msg-index[data-v-2faca0f0]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.collapsed-summary[data-v-2faca0f0]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-toggle[data-v-2faca0f0]{display:flex;gap:1px;background:var(--bg);overflow:hidden}.view-toggle button[data-v-2faca0f0]{font-size:var(--font-size-xs);padding:2px 8px;color:var(--text-muted);background:var(--bg-secondary)}.view-toggle button[data-v-2faca0f0]:hover{color:var(--text)}.view-toggle button.active[data-v-2faca0f0]{color:var(--primary);background:var(--primary-muted)}.reset-btn[data-v-2faca0f0]{font-size:var(--font-size-sm);padding:2px 6px;color:var(--text-dim);background:var(--bg-secondary);line-height:1}.reset-btn[data-v-2faca0f0]:hover{color:var(--error)}.message-block.is-rewritten[data-v-2faca0f0]{border-left:2px solid var(--warning)}.action-btn[data-v-2faca0f0]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-2faca0f0]:hover{color:var(--text);background:var(--bg-hover)}.msg-body[data-v-2faca0f0]{padding:var(--spacing-sm)}.msg-body.body-limited[data-v-2faca0f0]{max-height:200px;overflow-y:auto}.modal-overlay[data-v-c68c542d]{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-c68c542d]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-height:95vh;display:flex;flex-direction:column}.modal-header[data-v-c68c542d]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);flex-shrink:0}.modal-title[data-v-c68c542d]{font-size:var(--font-size-lg);font-weight:600;color:var(--text)}.modal-header-actions[data-v-c68c542d]{display:flex;align-items:center;gap:var(--spacing-sm)}.modal-close[data-v-c68c542d]{color:var(--text-muted);padding:var(--spacing-xs);border-radius:var(--border-radius-sm);transition:all var(--transition-fast)}.modal-close[data-v-c68c542d]:hover{color:var(--text);background:var(--bg-tertiary)}.modal-body[data-v-c68c542d]{padding:var(--spacing-lg);overflow-y:auto;flex:1}.raw-copy-btn[data-v-ef71cc4a]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:4px 8px;background:transparent}.raw-copy-btn[data-v-ef71cc4a]:hover{color:var(--text);background:var(--bg-hover)}.json-viewer[data-v-ef71cc4a]{overflow:auto}.json-split[data-v-ef71cc4a]{display:flex;height:100%;overflow:hidden}.json-pane[data-v-ef71cc4a]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.json-pane .json-viewer[data-v-ef71cc4a]{flex:1;overflow:auto}.pane-divider[data-v-ef71cc4a]{width:1px;background:var(--border-light);flex-shrink:0}.pane-header[data-v-ef71cc4a]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--border-light);background:var(--bg-tertiary);flex-shrink:0}.pane-label[data-v-ef71cc4a]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.pane-label-rewritten[data-v-ef71cc4a]{color:var(--warning)}[data-v-ef71cc4a] .vjs-tree{font-family:var(--font-mono);font-size:var(--font-size-sm);background:transparent!important;color:var(--text)!important}[data-v-ef71cc4a] .vjs-tree-node:hover{background:var(--bg-hover)!important}[data-v-ef71cc4a] .vjs-key{color:var(--cyan)!important}[data-v-ef71cc4a] .vjs-value-string{color:var(--success)!important}[data-v-ef71cc4a] .vjs-value-number{color:var(--warning)!important}[data-v-ef71cc4a] .vjs-value-boolean{color:var(--purple)!important}[data-v-ef71cc4a] .vjs-value-null{color:var(--text-dim)!important}[data-v-ef71cc4a] .vjs-tree__brackets{color:var(--text-muted)!important}[data-v-ef71cc4a] .vjs-tree__brackets:hover{color:var(--primary)!important;cursor:pointer}[data-v-ef71cc4a] .vjs-tree__content.has-line{border-left:1px solid var(--border-light)!important}[data-v-ef71cc4a] .vjs-tree__indent--line-number{color:var(--text-dim)!important;border-right:1px solid var(--border-light)!important}.detail-panel[data-v-5595f986]{display:flex;flex-direction:column;height:100%;background:var(--bg)}.detail-empty[data-v-5595f986]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);gap:var(--spacing-xs)}.detail-hint[data-v-5595f986]{font-size:var(--font-size-xs);opacity:.6}.detail-body[data-v-5595f986]{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.messages-list[data-v-5595f986]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.response-error[data-v-5595f986]{background:var(--error-muted);border:1px solid var(--error);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex;align-items:baseline;gap:var(--spacing-sm)}.error-label[data-v-5595f986]{font-size:var(--font-size-xs);font-weight:600;color:var(--error);letter-spacing:.5px}.error-text[data-v-5595f986]{font-size:var(--font-size-sm);color:var(--error);white-space:pre-wrap;word-wrap:break-word}.toast-container[data-v-75e1dc4a]{position:fixed;bottom:16px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item[data-v-75e1dc4a]{padding:8px 16px;border-radius:var(--border-radius);font-size:var(--font-size-sm);box-shadow:var(--shadow-md);pointer-events:auto;max-width:320px}.toast-info[data-v-75e1dc4a]{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border)}.toast-success[data-v-75e1dc4a]{background:var(--success-muted);color:var(--success);border:1px solid var(--success)}.toast-error[data-v-75e1dc4a]{background:var(--error-muted);color:var(--error);border:1px solid var(--error)}.app[data-v-3c06e93c]{display:flex;flex-direction:column;height:100vh;overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}ul,ol{list-style:none}a{text-decoration:none;color:inherit}button{border:none;background:none;cursor:pointer;font:inherit;color:inherit}input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}:root{--bg: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-hover: #30363d;--bg-selected: #1f2a37;--text: #e6edf3;--text-muted: #8b949e;--text-dim: #6e7681;--border: #30363d;--border-light: #21262d;--primary: #58a6ff;--primary-muted: rgba(88, 166, 255, .15);--success: #3fb950;--success-muted: rgba(63, 185, 80, .15);--error: #f85149;--error-muted: rgba(248, 81, 73, .15);--warning: #d29922;--warning-muted: rgba(210, 153, 34, .15);--purple: #a371f7;--purple-muted: rgba(163, 113, 247, .15);--cyan: #39c5cf;--cyan-muted: rgba(57, 197, 207, .15);--pink: #db61a2;--pink-muted: rgba(219, 97, 162, .15);--primary-contrast: #ffffff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--font-mono: "SF Mono", Monaco, "Courier New", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 14px;--header-height: 48px;--stats-height: 36px;--border-radius: 0;--border-radius-sm: 0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .2s ease}@media(prefers-color-scheme:light){:root{--bg: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #eaeef2;--bg-hover: #d0d7de;--bg-selected: #ddf4ff;--text: #1f2328;--text-muted: #656d76;--text-dim: #8c959f;--border: #d0d7de;--border-light: #eaeef2;--primary: #0969da;--primary-muted: rgba(9, 105, 218, .1);--success: #1a7f37;--success-muted: rgba(26, 127, 55, .1);--error: #cf222e;--error-muted: rgba(207, 34, 46, .1);--warning: #9a6700;--warning-muted: rgba(154, 103, 0, .1);--purple: #8250df;--purple-muted: rgba(130, 80, 223, .1);--cyan: #0598bc;--cyan-muted: rgba(5, 152, 188, .1);--pink: #bf3989;--pink-muted: rgba(191, 57, 137, .1);--primary-contrast: #ffffff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16)}}body{font-family:var(--font-sans);font-size:var(--font-size-md);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}code,pre{font-family:var(--font-mono);font-size:var(--font-size-sm)}pre{white-space:pre-wrap;word-wrap:break-word}::selection{background:var(--primary-muted);color:var(--text)}@keyframes highlight-flash{0%,to{border-color:var(--border)}25%,75%{border-color:var(--primary)}}.highlight-flash{animation:highlight-flash .4s ease-in-out 2}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}*{scrollbar-width:thin;scrollbar-color:var(--bg-hover) transparent}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-down-enter-active,.slide-down-leave-active{transition:all var(--transition-normal)}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-8px)}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s ease}.slide-up-enter-from{opacity:0;transform:translateY(16px)}.slide-up-leave-to{opacity:0;transform:translateY(-8px)}.collapse-enter-active,.collapse-leave-active{transition:all var(--transition-normal);overflow:hidden}.collapse-enter-from,.collapse-leave-to{max-height:0;opacity:0}@keyframes highlight-flash{0%,to{border-color:var(--border)}25%,75%{border-color:var(--primary)}50%{border-color:var(--primary);box-shadow:0 0 8px #58a6ff4d}}.highlight-flash{animation:highlight-flash 1s ease}.d2h-wrapper{font-family:var(--font-mono);font-size:var(--font-size-sm)}.d2h-file-wrapper{border:1px solid var(--border);border-radius:var(--border-radius);margin-bottom:var(--spacing-sm);background:var(--bg-secondary)}.d2h-file-header{display:none}.d2h-diff-table{font-size:var(--font-size-sm)}.d2h-code-line-ctn{background:var(--bg-secondary);color:var(--text)}.d2h-code-side-line{background:var(--bg-secondary)}.d2h-code-line-prefix{color:var(--text-dim)}.d2h-ins{background:var(--success-muted)!important;border-color:var(--success)!important}.d2h-ins .d2h-code-line-ctn,.d2h-code-side-line.d2h-ins{background:var(--success-muted)!important}.d2h-del{background:var(--error-muted)!important;border-color:var(--error)!important}.d2h-del .d2h-code-line-ctn,.d2h-code-side-line.d2h-del{background:var(--error-muted)!important}.d2h-ins .d2h-code-line-ctn ins{background:#3fb9504d;text-decoration:none}.d2h-del .d2h-code-line-ctn del{background:#f851494d;text-decoration:none}.d2h-code-linenumber,.d2h-code-side-linenumber{background:var(--bg-tertiary);color:var(--text-dim);border-right:1px solid var(--border)}.d2h-info{background:var(--primary-muted);color:var(--text-muted);border-bottom:1px solid var(--border)}
1
+ .base-btn[data-v-5d391870]{display:inline-flex;align-items:center;gap:var(--spacing-xs);border-radius:var(--border-radius-sm);font-weight:500;white-space:nowrap;transition:all var(--transition-fast);border:1px solid var(--border);line-height:1}.base-btn[data-v-5d391870]:disabled{opacity:.5;cursor:not-allowed}.btn-size-sm[data-v-5d391870]{padding:4px 8px;font-size:var(--font-size-xs)}.btn-size-md[data-v-5d391870]{padding:6px 12px;font-size:var(--font-size-sm)}.btn-default[data-v-5d391870]{background:var(--bg-tertiary);color:var(--text)}.btn-default[data-v-5d391870]:hover:not(:disabled){background:var(--bg-hover)}.btn-primary[data-v-5d391870]{background:var(--primary);color:var(--primary-contrast);border-color:var(--primary)}.btn-primary[data-v-5d391870]:hover:not(:disabled){opacity:.9}.btn-danger[data-v-5d391870]{background:transparent;color:var(--error);border-color:var(--error)}.btn-danger[data-v-5d391870]:hover:not(:disabled){background:var(--error-muted)}.btn-ghost[data-v-5d391870]{background:transparent;border-color:transparent;color:var(--text-muted)}.btn-ghost[data-v-5d391870]:hover:not(:disabled){color:var(--text);background:var(--bg-tertiary)}.spinner[data-v-5d391870]{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin-5d391870 .6s linear infinite}@keyframes spin-5d391870{to{transform:rotate(360deg)}}.base-select[data-v-1a8e761a]{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:4px 8px;font-size:var(--font-size-xs);cursor:pointer;outline:none;min-width:80px;appearance:auto}.base-select[data-v-1a8e761a]:focus{border-color:var(--primary)}.base-select[data-v-1a8e761a]:hover{border-color:var(--text-dim)}.icon-svg[data-v-ae6caa74]{display:inline-block;vertical-align:middle;flex-shrink:0}.status-dot[data-v-f0facb12]{display:inline-block;border-radius:50%;flex-shrink:0}.status-success[data-v-f0facb12]{background:var(--success);box-shadow:0 0 4px var(--success)}.status-error[data-v-f0facb12]{background:var(--error);box-shadow:0 0 4px var(--error)}.status-pending[data-v-f0facb12]{background:var(--warning);box-shadow:0 0 4px var(--warning);animation:pulse-f0facb12 1.5s ease-in-out infinite}@keyframes pulse-f0facb12{0%,to{opacity:1}50%{opacity:.4}}.app-header[data-v-ba112819]{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-lg);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.header-left[data-v-ba112819]{display:flex;align-items:center;gap:var(--spacing-md)}.header-title[data-v-ba112819]{font-size:var(--font-size-lg);font-weight:600;color:var(--text)}.version-tag[data-v-ba112819]{font-size:var(--font-size-xs);font-weight:500;color:var(--text-dim);vertical-align:super}.header-right[data-v-ba112819]{display:flex;align-items:center;gap:var(--spacing-sm)}.ws-label[data-v-ba112819]{font-size:var(--font-size-xs);color:var(--text-dim);margin-right:var(--spacing-sm)}.export-dropdown[data-v-ba112819]{position:relative}.export-menu[data-v-ba112819]{position:absolute;top:100%;right:0;margin-top:4px;background:var(--bg-tertiary);border:1px solid var(--border);min-width:120px;z-index:100;box-shadow:var(--shadow-md)}.export-item[data-v-ba112819]{display:block;width:100%;padding:8px 12px;text-align:left;font-size:var(--font-size-sm);color:var(--text);background:transparent}.export-item[data-v-ba112819]:hover{background:var(--bg-hover)}@keyframes spin-ba112819{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning[data-v-ba112819]{animation:spin-ba112819 1s linear infinite}@media(max-width:768px){.app-header[data-v-ba112819]{flex-wrap:wrap;height:auto;padding:var(--spacing-sm) var(--spacing-md);gap:var(--spacing-sm)}}.stats-bar[data-v-7ebe7ed2]{height:var(--stats-height);display:flex;align-items:center;gap:var(--spacing-lg);padding:0 var(--spacing-lg);background:var(--bg);border-bottom:1px solid var(--border-light);flex-shrink:0;font-size:var(--font-size-xs)}.stat-item[data-v-7ebe7ed2]{display:flex;align-items:center;gap:var(--spacing-xs)}.stat-value[data-v-7ebe7ed2]{font-weight:600;color:var(--text);font-family:var(--font-mono)}.stat-label[data-v-7ebe7ed2]{color:var(--text-dim)}.stat-success .stat-value[data-v-7ebe7ed2]{color:var(--success)}.stat-error .stat-value[data-v-7ebe7ed2]{color:var(--error)}@media(max-width:768px){.stats-bar[data-v-7ebe7ed2]{flex-wrap:wrap;height:auto;padding:var(--spacing-xs) var(--spacing-md);gap:var(--spacing-sm) var(--spacing-md)}}.split-pane[data-v-77cb6608]{display:flex;flex:1;overflow:hidden}.split-pane.dragging[data-v-77cb6608]{-webkit-user-select:none;user-select:none;cursor:col-resize}.split-left[data-v-77cb6608]{flex-shrink:0;overflow:hidden;display:flex;flex-direction:column}.split-handle[data-v-77cb6608]{width:4px;background:var(--border);cursor:col-resize;flex-shrink:0;transition:background var(--transition-fast)}.split-handle[data-v-77cb6608]:hover,.dragging .split-handle[data-v-77cb6608]{background:var(--primary)}.split-right[data-v-77cb6608]{flex:1;overflow:hidden;display:flex;flex-direction:column}@media(max-width:768px){.split-pane[data-v-77cb6608]{flex-direction:column}.split-left[data-v-77cb6608]{width:100%!important;height:40%;border-bottom:1px solid var(--border)}.split-handle[data-v-77cb6608]{display:none}.split-right[data-v-77cb6608]{height:60%}}.base-input[data-v-77e6d433]{position:relative;display:flex;align-items:center}.base-input input[data-v-77e6d433]{width:100%;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--border-radius-sm);padding:4px 8px;font-size:var(--font-size-xs);color:var(--text);outline:none}.base-input input[data-v-77e6d433]:focus{border-color:var(--primary)}.base-input input[data-v-77e6d433]::placeholder{color:var(--text-dim)}.has-icon input[data-v-77e6d433]{padding-left:26px}.input-icon[data-v-77e6d433]{position:absolute;left:8px;color:var(--text-dim);pointer-events:none}.base-badge[data-v-226d8817]{display:inline-flex;align-items:center;padding:1px 6px;border-radius:0;font-size:var(--font-size-xs);font-weight:500;white-space:nowrap;line-height:1.2}.badge-default[data-v-226d8817]{background:var(--bg-tertiary);color:var(--text-muted)}.badge-primary[data-v-226d8817]{background:var(--primary-muted);color:var(--primary)}.badge-success[data-v-226d8817]{background:var(--success-muted);color:var(--success)}.badge-error[data-v-226d8817]{background:var(--error-muted);color:var(--error)}.badge-warning[data-v-226d8817]{background:var(--warning-muted);color:var(--warning)}.badge-purple[data-v-226d8817]{background:var(--purple-muted);color:var(--purple)}.badge-cyan[data-v-226d8817]{background:var(--cyan-muted);color:var(--cyan)}.badge-pink[data-v-226d8817]{background:var(--pink-muted);color:var(--pink)}.badge-green[data-v-226d8817]{background:var(--success-muted);color:var(--success)}.request-item[data-v-0c9ef106]{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-light);cursor:pointer;border-left:3px solid transparent;transition:all var(--transition-fast)}.request-item[data-v-0c9ef106]:hover{background:var(--bg-hover)}.request-item.selected[data-v-0c9ef106]{background:var(--bg-selected);border-left-color:var(--primary)}.item-header[data-v-0c9ef106]{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:2px}.item-time[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text-muted);font-family:var(--font-mono)}.item-id[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);opacity:.7;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px;text-decoration:none}.item-id[data-v-0c9ef106]:hover{opacity:1;text-decoration:underline}.item-model[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text);font-weight:500;margin-left:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.item-meta[data-v-0c9ef106]{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:2px}.item-tokens[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);margin-left:auto}.item-duration[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.item-preview[data-v-0c9ef106]{font-size:var(--font-size-xs);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-pagination[data-v-c52e0777]{display:flex;align-items:center;justify-content:center;gap:2px;padding:var(--spacing-sm);border-top:1px solid var(--border-light);flex-shrink:0}.page-btn[data-v-c52e0777]{font-size:var(--font-size-xs);color:var(--text-muted);padding:2px 8px;min-width:24px;text-align:center}.page-btn[data-v-c52e0777]:hover:not(:disabled){background:var(--primary-muted);color:var(--primary)}.page-btn.active[data-v-c52e0777]{background:var(--primary);color:var(--primary-contrast);font-weight:600}.page-btn[data-v-c52e0777]:disabled{color:var(--text-dim);cursor:not-allowed}.nav-btn[data-v-c52e0777]{color:var(--primary)}.page-ellipsis[data-v-c52e0777]{font-size:var(--font-size-xs);color:var(--text-dim);padding:0 4px}.request-list[data-v-28ea6559]{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary)}.list-controls[data-v-28ea6559]{padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);display:flex;flex-direction:column;gap:var(--spacing-xs);flex-shrink:0}.list-filters[data-v-28ea6559]{display:flex;gap:var(--spacing-xs)}.list-body[data-v-28ea6559]{flex:1;overflow-y:auto}.list-empty[data-v-28ea6559]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);font-size:var(--font-size-sm)}.empty-subtitle[data-v-28ea6559]{font-size:var(--font-size-xs);color:var(--text-dim);opacity:.6;margin-top:var(--spacing-xs)}.search-count[data-v-28ea6559]{font-size:var(--font-size-xs);color:var(--text-dim);padding-left:var(--spacing-xs)}.base-checkbox[data-v-b169bfe7]{display:inline-flex;align-items:center;gap:var(--spacing-xs);cursor:pointer;font-size:var(--font-size-xs);color:var(--text-muted);-webkit-user-select:none;user-select:none}.base-checkbox input[type=checkbox][data-v-b169bfe7]{appearance:none;width:14px;height:14px;border:1px solid var(--border);border-radius:0;background:var(--bg-tertiary);cursor:pointer;position:relative;flex-shrink:0}.base-checkbox input[type=checkbox][data-v-b169bfe7]:checked{background:var(--primary);border-color:var(--primary)}.base-checkbox input[type=checkbox][data-v-b169bfe7]:checked:after{content:"";position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid var(--primary-contrast);border-width:0 2px 2px 0;transform:rotate(45deg)}.checkbox-label[data-v-b169bfe7]{white-space:nowrap}.detail-toolbar[data-v-3ed4a3af]{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-sm);border-bottom:1px solid var(--border-light);flex-shrink:0;background:var(--bg-secondary)}.toolbar-row[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.rewrite-row[data-v-3ed4a3af]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);justify-content:space-between}.rewrite-stats[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-xs)}.rewrite-label[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--warning);font-weight:600}.rewrite-stat[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--text-muted);padding:1px 6px;background:var(--warning-muted);border-radius:3px}.rewrite-stat-truncated[data-v-3ed4a3af]{background:var(--error-muted);color:var(--error)}.rewrite-controls[data-v-3ed4a3af]{display:flex;align-items:center;gap:var(--spacing-sm)}.rewrite-nav[data-v-3ed4a3af]{display:flex;align-items:center;gap:2px}.nav-btn[data-v-3ed4a3af]{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;color:var(--text-dim);background:var(--bg-tertiary);border:1px solid var(--border-light)}.nav-btn[data-v-3ed4a3af]:hover{color:var(--text);background:var(--bg-hover)}.nav-label[data-v-3ed4a3af]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono);min-width:32px;text-align:center}.section-block[data-v-6d33a6f9]{border:1px solid var(--border-light);margin-bottom:var(--spacing-sm);overflow:hidden}.section-header[data-v-6d33a6f9]{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.section-header[data-v-6d33a6f9]:hover{background:var(--bg-hover)}.section-chevron[data-v-6d33a6f9]{color:var(--text-dim);flex-shrink:0}.section-title[data-v-6d33a6f9]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.section-badge[data-v-6d33a6f9]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.section-raw-btn[data-v-6d33a6f9]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent;margin-left:auto}.section-raw-btn[data-v-6d33a6f9]:hover{color:var(--text);background:var(--bg-hover)}.section-body[data-v-6d33a6f9]{padding:var(--spacing-sm)}.sse-timeline[data-v-2edf43f6]{font-family:var(--font-mono);font-size:var(--font-size-xs)}.sse-event[data-v-2edf43f6]{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:2px 0;border-bottom:1px solid var(--border-light)}.sse-event[data-v-2edf43f6]:last-child{border-bottom:none}.sse-offset[data-v-2edf43f6]{flex-shrink:0;width:64px;text-align:right;color:var(--text-dim)}.sse-type[data-v-2edf43f6]{flex-shrink:0;min-width:160px;font-weight:500}.sse-type-green[data-v-2edf43f6]{color:var(--success)}.sse-type-blue[data-v-2edf43f6]{color:var(--info)}.sse-type-cyan[data-v-2edf43f6]{color:var(--primary)}.sse-type-red[data-v-2edf43f6]{color:var(--error)}.sse-type-dim[data-v-2edf43f6]{color:var(--text-dim)}.sse-type-default[data-v-2edf43f6]{color:var(--text)}.sse-summary[data-v-2edf43f6]{color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-grid[data-v-6471221f]{display:flex;flex-direction:column;gap:4px}.meta-row[data-v-6471221f]{display:flex;align-items:baseline;gap:var(--spacing-sm);padding:2px 0}.meta-label[data-v-6471221f]{font-size:var(--font-size-xs);color:var(--text-dim);min-width:90px;flex-shrink:0}.meta-label--attempt[data-v-6471221f]{font-weight:600;color:var(--text-muted)}.meta-value[data-v-6471221f]{font-size:var(--font-size-xs);color:var(--text)}.meta-value.mono[data-v-6471221f]{font-family:var(--font-mono)}.meta-section[data-v-6471221f]{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--border-light)}.meta-section .meta-row[data-v-6471221f]{display:flex;align-items:baseline;gap:var(--spacing-md);padding:2px 0}.meta-section-title[data-v-6471221f]{font-size:var(--font-size-xs);font-weight:600;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.error-text[data-v-6471221f]{color:var(--error)}.truncation-divider[data-v-9cfada0f]{display:flex;align-items:center;gap:var(--spacing-sm);margin:var(--spacing-md) 0}.divider-line[data-v-9cfada0f]{flex:1;height:1px;background:var(--error);opacity:.4;border-style:dashed}.divider-content[data-v-9cfada0f]{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.divider-icon[data-v-9cfada0f]{font-size:var(--font-size-sm)}.divider-text[data-v-9cfada0f]{font-size:var(--font-size-xs);color:var(--error);font-weight:500}.divider-detail[data-v-9cfada0f]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.line-number-pre[data-v-a98c3fb0]{font-family:var(--font-mono);font-size:var(--font-size-sm);line-height:1.6;overflow-x:auto}.line[data-v-a98c3fb0]{display:flex;white-space:pre-wrap;word-wrap:break-word}.line[data-v-a98c3fb0]:hover{background:var(--bg-hover)}.line-no[data-v-a98c3fb0]{flex-shrink:0;width:3.5em;padding-right:1em;text-align:right;color:var(--text-dim);-webkit-user-select:none;user-select:none;opacity:.5}.line-content[data-v-a98c3fb0]{flex:1;min-width:0;color:var(--text)}[data-v-a98c3fb0] .search-highlight{background:var(--warning);color:var(--bg);padding:0 2px}.diff-view[data-v-1175ff40]{overflow-x:auto;font-size:var(--font-size-sm)}.system-message[data-v-eac28575]{border:1px solid rgba(163,113,247,.3);overflow:hidden;margin-bottom:var(--spacing-sm)}.system-header[data-v-eac28575]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--purple-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.system-header[data-v-eac28575]:hover{background:#a371f733}.system-header-left[data-v-eac28575]{display:flex;align-items:center;gap:var(--spacing-xs);min-width:0;overflow:hidden}.collapse-icon[data-v-eac28575]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.collapsed-summary[data-v-eac28575]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.system-header-right[data-v-eac28575]{display:flex;align-items:center;gap:8px;flex-shrink:0}.view-toggle[data-v-eac28575]{display:flex;gap:1px;background:var(--bg);overflow:hidden}.view-toggle button[data-v-eac28575]{font-size:var(--font-size-xs);padding:2px 8px;color:var(--text-muted);background:var(--bg-secondary)}.view-toggle button[data-v-eac28575]:hover{color:var(--text)}.view-toggle button.active[data-v-eac28575]{color:var(--primary);background:var(--primary-muted)}.reset-btn[data-v-eac28575]{font-size:var(--font-size-sm);padding:2px 6px;color:var(--text-dim);background:var(--bg-secondary);line-height:1}.reset-btn[data-v-eac28575]:hover{color:var(--error)}.action-btn[data-v-eac28575]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-eac28575]:hover{color:var(--text);background:var(--bg-hover)}.system-body[data-v-eac28575]{padding:var(--spacing-sm);max-height:400px;overflow-y:auto}.system-body.body-expanded[data-v-eac28575]{max-height:none}.system-block-item[data-v-eac28575]{margin-bottom:var(--spacing-sm)}.system-block-item[data-v-eac28575]:last-child{margin-bottom:0}.cache-label[data-v-eac28575]{font-size:var(--font-size-xs);color:var(--warning);font-style:italic;margin-bottom:2px}.content-block[data-v-0742d16c]{border:1px solid var(--border)}.content-block-header[data-v-0742d16c]{display:flex;align-items:baseline;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.content-block-header[data-v-0742d16c]:hover{background:var(--bg-hover)}.content-block-header-left[data-v-0742d16c]{display:flex;align-items:baseline;gap:var(--spacing-sm);min-width:0;overflow:hidden}.content-block-header-right[data-v-0742d16c]{display:flex;align-items:center;gap:8px;flex-shrink:0}.collapse-icon[data-v-0742d16c]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.content-type-label[data-v-0742d16c]{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.5px;flex-shrink:0}.label-text[data-v-0742d16c]{color:var(--text-muted)}.label-cyan[data-v-0742d16c]{color:var(--cyan)}.label-success[data-v-0742d16c]{color:var(--success)}.label-error[data-v-0742d16c]{color:var(--error)}.label-purple[data-v-0742d16c]{color:var(--purple)}.label-pink[data-v-0742d16c]{color:var(--pink)}.label-warning[data-v-0742d16c]{color:var(--warning)}.label-text-muted[data-v-0742d16c]{color:var(--text-muted)}.collapsed-summary[data-v-0742d16c]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-btn[data-v-0742d16c]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-0742d16c]:hover{color:var(--text);background:var(--bg-hover)}.content-block-body[data-v-0742d16c]{padding:var(--spacing-sm)}.body-collapsed[data-v-0742d16c]{max-height:200px;overflow-y:auto}.redacted[data-v-7878f7b8]{opacity:.6}.redacted-label[data-v-7878f7b8]{font-size:var(--font-size-xs);color:var(--text-dim);font-style:italic}.thinking-text[data-v-7878f7b8]{font-size:var(--font-size-sm);color:var(--text);white-space:pre-wrap;word-wrap:break-word;line-height:1.6}[data-v-7878f7b8] .search-highlight{background:var(--warning);color:var(--bg);padding:0 2px}[data-v-7878f7b8] .content-block{border-color:#a371f74d}[data-v-7878f7b8] .content-block-header{background:var(--purple-muted)}.image-media-type[data-v-7e48d486]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.image-content[data-v-7e48d486]{max-width:100%;max-height:400px;border:1px solid var(--border)}.aggregated-stub[data-v-ef1fc34e]{display:flex;align-items:center;gap:8px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--bg-tertiary);border:1px solid var(--border);font-size:var(--font-size-xs)}.stub-label[data-v-ef1fc34e]{font-weight:600;letter-spacing:.5px;flex-shrink:0}.label-success[data-v-ef1fc34e]{color:var(--success)}.label-error[data-v-ef1fc34e]{color:var(--error)}.result-tool-name[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--text-muted);font-family:var(--font-mono)}.result-tool-id[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.result-error-badge[data-v-ef1fc34e]{font-size:var(--font-size-xs);font-weight:600;color:var(--error)}.tool-jump[data-v-ef1fc34e]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);margin-top:var(--spacing-sm);margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));margin-bottom:calc(-1 * var(--spacing-sm));padding-left:var(--spacing-sm);padding-bottom:var(--spacing-xs)}.jump-link[data-v-ef1fc34e]{font-size:var(--font-size-xs);color:var(--primary);cursor:pointer}.jump-link[data-v-ef1fc34e]:hover{text-decoration:underline}.vjs-tree-brackets{cursor:pointer}.vjs-tree-brackets:hover{color:#1890ff}.vjs-check-controller{position:absolute;left:0}.vjs-check-controller.is-checked .vjs-check-controller-inner{background-color:#1890ff;border-color:#0076e4}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-checkbox:after{transform:rotate(45deg) scaleY(1)}.vjs-check-controller.is-checked .vjs-check-controller-inner.is-radio:after{transform:translate(-50%,-50%) scale(1)}.vjs-check-controller .vjs-check-controller-inner{display:inline-block;position:relative;border:1px solid #bfcbd9;border-radius:2px;vertical-align:middle;box-sizing:border-box;width:16px;height:16px;background-color:#fff;z-index:1;cursor:pointer;transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46)}.vjs-check-controller .vjs-check-controller-inner:after{box-sizing:content-box;content:"";border:2px solid #fff;border-left:0;border-top:0;height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg) scaleY(0);width:4px;transition:transform .15s cubic-bezier(.71,-.46,.88,.6) .05s;transform-origin:center}.vjs-check-controller .vjs-check-controller-inner.is-radio{border-radius:100%}.vjs-check-controller .vjs-check-controller-inner.is-radio:after{border-radius:100%;height:4px;background-color:#fff;left:50%;top:50%}.vjs-check-controller .vjs-check-controller-original{opacity:0;outline:none;position:absolute;z-index:-1;inset:0;margin:0}.vjs-carets{position:absolute;right:0;cursor:pointer}.vjs-carets svg{transition:transform .3s}.vjs-carets:hover{color:#1890ff}.vjs-carets-close{transform:rotate(-90deg)}.vjs-tree-node{display:flex;position:relative;line-height:20px}.vjs-tree-node.has-carets{padding-left:15px}.vjs-tree-node.has-carets.has-selector,.vjs-tree-node.has-selector{padding-left:30px}.vjs-tree-node.is-highlight,.vjs-tree-node:hover{background-color:#e6f7ff;border-radius:4px}.vjs-tree-node.is-highlight .vjs-tree-node-actions,.vjs-tree-node:hover .vjs-tree-node-actions{display:block}.vjs-tree-node .vjs-indent{display:flex;position:relative}.vjs-tree-node .vjs-indent-unit.has-line{border-left:1px dashed #bfcbd9}.vjs-tree-node .vjs-tree-node-actions{display:none;position:absolute;right:0;top:0;padding:0 4px;background-color:#e6f7ff;border-radius:4px}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item{cursor:pointer}.vjs-tree-node .vjs-tree-node-actions .vjs-tree-node-actions-item:hover{color:#1890ff}.vjs-tree-node.dark.is-highlight,.vjs-tree-node.dark .vjs-tree-node-actions,.vjs-tree-node.dark:hover{background-color:#2e4558}.vjs-node-index{position:absolute;right:100%;margin-right:4px;-webkit-user-select:none;user-select:none}.vjs-colon{white-space:pre}.vjs-comment{color:#bfcbd9}.vjs-key{white-space:nowrap}.vjs-value{word-break:break-word}.vjs-tree-node.dynamic-height .vjs-value{white-space:pre-wrap}.vjs-value-null,.vjs-value-undefined{color:#d55fde}.vjs-value-boolean,.vjs-value-number{color:#1d8ce0}.vjs-value-string{color:#13ce66}.vjs-tree{font-family:Monaco,Menlo,Consolas,Bitstream Vera Sans Mono,monospace;font-size:14px;text-align:left}.vjs-tree.is-virtual{overflow:auto}.vjs-tree.is-virtual .vjs-tree-node{white-space:nowrap}.tool-name[data-v-06ade624]{font-size:var(--font-size-sm);color:var(--primary);font-weight:600;font-family:var(--font-mono)}.tool-id[data-v-06ade624]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.tool-input[data-v-06ade624]{font-size:var(--font-size-sm);color:var(--text)}.tool-aggregate-result[data-v-06ade624]{border-top:1px solid var(--border);margin-top:var(--spacing-sm)}.tool-jump[data-v-06ade624]{padding-top:var(--spacing-xs);border-top:1px solid var(--border-light);margin-top:var(--spacing-sm);margin-left:calc(-1 * var(--spacing-sm));margin-right:calc(-1 * var(--spacing-sm));margin-bottom:calc(-1 * var(--spacing-sm));padding-left:var(--spacing-sm);padding-bottom:var(--spacing-xs)}.jump-link[data-v-06ade624]{font-size:var(--font-size-xs);color:var(--primary);cursor:pointer}.jump-link[data-v-06ade624]:hover{text-decoration:underline}[data-v-06ade624] .vjs-tree{font-family:var(--font-mono);font-size:var(--font-size-sm);background:transparent!important;color:var(--text)!important}[data-v-06ade624] .vjs-tree-node:hover{background:var(--bg-hover)!important}[data-v-06ade624] .vjs-key{color:var(--cyan)!important}[data-v-06ade624] .vjs-value-string{color:var(--success)!important}[data-v-06ade624] .vjs-value-number{color:var(--warning)!important}[data-v-06ade624] .vjs-value-boolean{color:var(--purple)!important}[data-v-06ade624] .vjs-value-null{color:var(--text-dim)!important}[data-v-06ade624] .vjs-tree__brackets{color:var(--text-muted)!important}[data-v-06ade624] .vjs-tree__brackets:hover{color:var(--primary)!important;cursor:pointer}[data-v-06ade624] .vjs-tree__content.has-line{border-left:1px solid var(--border-light)!important}[data-v-06ade624] .vjs-tree__indent--line-number{color:var(--text-dim)!important;border-right:1px solid var(--border-light)!important;padding-right:8px!important;margin-right:4px!important}.generic-content[data-v-f03251db]{font-size:var(--font-size-sm);color:var(--text-muted)}.content-renderer[data-v-6d7c503e]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.message-block[data-v-2faca0f0]{border:1px solid var(--border-light);overflow:hidden}.message-block.truncated[data-v-2faca0f0]{border-color:var(--error);opacity:.7;text-decoration:line-through}.msg-header[data-v-2faca0f0]{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-tertiary);cursor:pointer;-webkit-user-select:none;user-select:none}.msg-header[data-v-2faca0f0]:hover{background:var(--bg-hover)}.msg-header-left[data-v-2faca0f0]{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.msg-header-right[data-v-2faca0f0]{display:flex;align-items:center;gap:8px;flex-shrink:0}.collapse-icon[data-v-2faca0f0]{font-size:10px;color:var(--text-dim);width:10px;flex-shrink:0}.msg-index[data-v-2faca0f0]{font-size:var(--font-size-xs);color:var(--text-dim);font-family:var(--font-mono)}.collapsed-summary[data-v-2faca0f0]{font-size:var(--font-size-xs);color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-toggle[data-v-2faca0f0]{display:flex;gap:1px;background:var(--bg);overflow:hidden}.view-toggle button[data-v-2faca0f0]{font-size:var(--font-size-xs);padding:2px 8px;color:var(--text-muted);background:var(--bg-secondary)}.view-toggle button[data-v-2faca0f0]:hover{color:var(--text)}.view-toggle button.active[data-v-2faca0f0]{color:var(--primary);background:var(--primary-muted)}.reset-btn[data-v-2faca0f0]{font-size:var(--font-size-sm);padding:2px 6px;color:var(--text-dim);background:var(--bg-secondary);line-height:1}.reset-btn[data-v-2faca0f0]:hover{color:var(--error)}.message-block.is-rewritten[data-v-2faca0f0]{border-left:2px solid var(--warning)}.action-btn[data-v-2faca0f0]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:2px 6px;background:transparent}.action-btn[data-v-2faca0f0]:hover{color:var(--text);background:var(--bg-hover)}.msg-body[data-v-2faca0f0]{padding:var(--spacing-sm)}.msg-body.body-limited[data-v-2faca0f0]{max-height:200px;overflow-y:auto}.modal-overlay[data-v-c68c542d]{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-c68c542d]{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow-lg);max-height:95vh;display:flex;flex-direction:column}.modal-header[data-v-c68c542d]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border);flex-shrink:0}.modal-title[data-v-c68c542d]{font-size:var(--font-size-lg);font-weight:600;color:var(--text)}.modal-header-actions[data-v-c68c542d]{display:flex;align-items:center;gap:var(--spacing-sm)}.modal-close[data-v-c68c542d]{color:var(--text-muted);padding:var(--spacing-xs);border-radius:var(--border-radius-sm);transition:all var(--transition-fast)}.modal-close[data-v-c68c542d]:hover{color:var(--text);background:var(--bg-tertiary)}.modal-body[data-v-c68c542d]{padding:var(--spacing-lg);overflow-y:auto;flex:1}.raw-copy-btn[data-v-ef71cc4a]{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--text-dim);padding:4px 8px;background:transparent}.raw-copy-btn[data-v-ef71cc4a]:hover{color:var(--text);background:var(--bg-hover)}.json-viewer[data-v-ef71cc4a]{overflow:auto}.json-split[data-v-ef71cc4a]{display:flex;height:100%;overflow:hidden}.json-pane[data-v-ef71cc4a]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.json-pane .json-viewer[data-v-ef71cc4a]{flex:1;overflow:auto}.pane-divider[data-v-ef71cc4a]{width:1px;background:var(--border-light);flex-shrink:0}.pane-header[data-v-ef71cc4a]{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--border-light);background:var(--bg-tertiary);flex-shrink:0}.pane-label[data-v-ef71cc4a]{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.pane-label-rewritten[data-v-ef71cc4a]{color:var(--warning)}[data-v-ef71cc4a] .vjs-tree{font-family:var(--font-mono);font-size:var(--font-size-sm);background:transparent!important;color:var(--text)!important}[data-v-ef71cc4a] .vjs-tree-node:hover{background:var(--bg-hover)!important}[data-v-ef71cc4a] .vjs-key{color:var(--cyan)!important}[data-v-ef71cc4a] .vjs-value-string{color:var(--success)!important}[data-v-ef71cc4a] .vjs-value-number{color:var(--warning)!important}[data-v-ef71cc4a] .vjs-value-boolean{color:var(--purple)!important}[data-v-ef71cc4a] .vjs-value-null{color:var(--text-dim)!important}[data-v-ef71cc4a] .vjs-tree__brackets{color:var(--text-muted)!important}[data-v-ef71cc4a] .vjs-tree__brackets:hover{color:var(--primary)!important;cursor:pointer}[data-v-ef71cc4a] .vjs-tree__content.has-line{border-left:1px solid var(--border-light)!important}[data-v-ef71cc4a] .vjs-tree__indent--line-number{color:var(--text-dim)!important;border-right:1px solid var(--border-light)!important}.detail-panel[data-v-5595f986]{display:flex;flex-direction:column;height:100%;background:var(--bg)}.detail-empty[data-v-5595f986]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--text-dim);gap:var(--spacing-xs)}.detail-hint[data-v-5595f986]{font-size:var(--font-size-xs);opacity:.6}.detail-body[data-v-5595f986]{flex:1;overflow-y:auto;padding:var(--spacing-sm)}.messages-list[data-v-5595f986]{display:flex;flex-direction:column;gap:var(--spacing-sm)}.response-error[data-v-5595f986]{background:var(--error-muted);border:1px solid var(--error);padding:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex;align-items:baseline;gap:var(--spacing-sm)}.error-label[data-v-5595f986]{font-size:var(--font-size-xs);font-weight:600;color:var(--error);letter-spacing:.5px}.error-text[data-v-5595f986]{font-size:var(--font-size-sm);color:var(--error);white-space:pre-wrap;word-wrap:break-word}.toast-container[data-v-75e1dc4a]{position:fixed;bottom:16px;right:16px;z-index:2000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast-item[data-v-75e1dc4a]{padding:8px 16px;border-radius:var(--border-radius);font-size:var(--font-size-sm);box-shadow:var(--shadow-md);pointer-events:auto;max-width:320px}.toast-info[data-v-75e1dc4a]{background:var(--bg-tertiary);color:var(--text);border:1px solid var(--border)}.toast-success[data-v-75e1dc4a]{background:var(--success-muted);color:var(--success);border:1px solid var(--success)}.toast-error[data-v-75e1dc4a]{background:var(--error-muted);color:var(--error);border:1px solid var(--error)}.app[data-v-3c06e93c]{display:flex;flex-direction:column;height:100vh;overflow:hidden}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}ul,ol{list-style:none}a{text-decoration:none;color:inherit}button{border:none;background:none;cursor:pointer;font:inherit;color:inherit}input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}:root{--bg: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-hover: #30363d;--bg-selected: #1f2a37;--text: #e6edf3;--text-muted: #8b949e;--text-dim: #6e7681;--border: #30363d;--border-light: #21262d;--primary: #58a6ff;--primary-muted: rgba(88, 166, 255, .15);--success: #3fb950;--success-muted: rgba(63, 185, 80, .15);--error: #f85149;--error-muted: rgba(248, 81, 73, .15);--warning: #d29922;--warning-muted: rgba(210, 153, 34, .15);--purple: #a371f7;--purple-muted: rgba(163, 113, 247, .15);--cyan: #39c5cf;--cyan-muted: rgba(57, 197, 207, .15);--pink: #db61a2;--pink-muted: rgba(219, 97, 162, .15);--primary-contrast: #ffffff;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--font-mono: "SF Mono", Monaco, "Courier New", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 14px;--header-height: 48px;--stats-height: 36px;--border-radius: 0;--border-radius-sm: 0;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--transition-fast: .15s ease;--transition-normal: .2s ease}@media(prefers-color-scheme:light){:root{--bg: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #eaeef2;--bg-hover: #d0d7de;--bg-selected: #ddf4ff;--text: #1f2328;--text-muted: #656d76;--text-dim: #8c959f;--border: #d0d7de;--border-light: #eaeef2;--primary: #0969da;--primary-muted: rgba(9, 105, 218, .1);--success: #1a7f37;--success-muted: rgba(26, 127, 55, .1);--error: #cf222e;--error-muted: rgba(207, 34, 46, .1);--warning: #9a6700;--warning-muted: rgba(154, 103, 0, .1);--purple: #8250df;--purple-muted: rgba(130, 80, 223, .1);--cyan: #0598bc;--cyan-muted: rgba(5, 152, 188, .1);--pink: #bf3989;--pink-muted: rgba(191, 57, 137, .1);--primary-contrast: #ffffff;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .08);--shadow-md: 0 4px 12px rgba(0, 0, 0, .12);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .16)}}body{font-family:var(--font-sans);font-size:var(--font-size-md);color:var(--text);background:var(--bg);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100vh;display:flex;flex-direction:column;overflow:hidden}code,pre{font-family:var(--font-mono);font-size:var(--font-size-sm)}pre{white-space:pre-wrap;word-wrap:break-word}::selection{background:var(--primary-muted);color:var(--text)}@keyframes highlight-flash{0%,to{border-color:var(--border)}25%,75%{border-color:var(--primary)}}.highlight-flash{animation:highlight-flash .4s ease-in-out 2}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}*{scrollbar-width:thin;scrollbar-color:var(--bg-hover) transparent}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-down-enter-active,.slide-down-leave-active{transition:all var(--transition-normal)}.slide-down-enter-from,.slide-down-leave-to{opacity:0;transform:translateY(-8px)}.slide-up-enter-active,.slide-up-leave-active{transition:all .3s ease}.slide-up-enter-from{opacity:0;transform:translateY(16px)}.slide-up-leave-to{opacity:0;transform:translateY(-8px)}.collapse-enter-active,.collapse-leave-active{transition:all var(--transition-normal);overflow:hidden}.collapse-enter-from,.collapse-leave-to{max-height:0;opacity:0}@keyframes highlight-flash{0%,to{border-color:var(--border)}25%,75%{border-color:var(--primary)}50%{border-color:var(--primary);box-shadow:0 0 8px #58a6ff4d}}.highlight-flash{animation:highlight-flash 1s ease}.d2h-wrapper{font-family:var(--font-mono);font-size:var(--font-size-sm)}.d2h-file-wrapper{border:1px solid var(--border);border-radius:var(--border-radius);margin-bottom:var(--spacing-sm);background:var(--bg-secondary)}.d2h-file-header{display:none}.d2h-diff-table{font-size:var(--font-size-sm)}.d2h-code-line-ctn{background:var(--bg-secondary);color:var(--text)}.d2h-code-side-line{background:var(--bg-secondary)}.d2h-code-line-prefix{color:var(--text-dim)}.d2h-ins{background:var(--success-muted)!important;border-color:var(--success)!important}.d2h-ins .d2h-code-line-ctn,.d2h-code-side-line.d2h-ins{background:var(--success-muted)!important}.d2h-del{background:var(--error-muted)!important;border-color:var(--error)!important}.d2h-del .d2h-code-line-ctn,.d2h-code-side-line.d2h-del{background:var(--error-muted)!important}.d2h-ins .d2h-code-line-ctn ins{background:#3fb9504d;text-decoration:none}.d2h-del .d2h-code-line-ctn del{background:#f851494d;text-decoration:none}.d2h-code-linenumber,.d2h-code-side-linenumber{background:var(--bg-tertiary);color:var(--text-dim);border-right:1px solid var(--border)}.d2h-info{background:var(--primary-muted);color:var(--text-muted);border-bottom:1px solid var(--border)}
@@ -0,0 +1,3 @@
1
+ import{r as $,f as g,o as re,g as ne,d as C,h as u,i as D,j as h,k as G,l as r,t as p,F as U,m as K,u as c,p as xe,q as s,e as L,c as w,s as O,v as H,x as J,y as W,z as Y,A as I,a as ye,B as ge,C as Re,n as oe,T as Oe,D as nt,E as at,G as ot}from"./vue-jlQnwi-P.js";import{c as lt,h as rt,P as me}from"./vendor-C3jfkhqq.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const n of i)if(n.type==="childList")for(const l of n.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function o(i){const n={};return i.integrity&&(n.integrity=i.integrity),i.referrerPolicy&&(n.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?n.credentials="include":i.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function a(i){if(i.ep)return;i.ep=!0;const n=o(i);fetch(i.href,n)}})();const Be="/history/api";class it extends Error{constructor(t,o){super(o),this.status=t,this.name="ApiError"}}async function se(e,t){const o=await fetch(Be+e,{headers:{"Content-Type":"application/json"},...t});if(!o.ok){const a=await o.text().catch(()=>"Unknown error");throw new it(o.status,`${o.status}: ${a}`)}return o.json()}const ue={async fetchEntries(e={}){const t=new URLSearchParams;e.page&&t.set("page",String(e.page)),e.limit&&t.set("limit",String(e.limit)),e.model&&t.set("model",e.model),e.endpoint&&t.set("endpoint",e.endpoint),e.success!==void 0&&t.set("success",String(e.success)),e.from&&t.set("from",String(e.from)),e.to&&t.set("to",String(e.to)),e.search&&t.set("search",e.search),e.sessionId&&t.set("sessionId",e.sessionId);const o=t.toString();return se("/entries"+(o?"?"+o:""))},async fetchEntry(e){return se("/entries/"+e)},async deleteEntries(){await se("/entries",{method:"DELETE"})},async fetchSessions(){return se("/sessions")},async fetchSession(e){return se("/sessions/"+e)},async deleteSession(e){await se("/sessions/"+e,{method:"DELETE"})},async fetchStats(){return se("/stats")},getExportUrl(e){return Be+"/export?format="+e}};class ut{constructor(t){this.options=t}ws=null;reconnectTimer=null;reconnectDelay=1e3;maxReconnectDelay=3e4;intentionalClose=!1;connect(){this.intentionalClose=!1,this.createConnection()}disconnect(){this.intentionalClose=!0,this.reconnectTimer&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null),this.ws&&(this.ws.close(),this.ws=null),this.options.onStatusChange(!1)}get isConnected(){return this.ws?.readyState===WebSocket.OPEN}createConnection(){const o=`${location.protocol==="https:"?"wss:":"ws:"}//${location.host}/history/ws`;try{this.ws=new WebSocket(o)}catch{this.scheduleReconnect();return}this.ws.addEventListener("open",()=>{this.reconnectDelay=1e3,this.options.onStatusChange(!0)}),this.ws.addEventListener("close",()=>{this.options.onStatusChange(!1),this.intentionalClose||this.scheduleReconnect()}),this.ws.addEventListener("error",()=>{}),this.ws.addEventListener("message",a=>{try{const i=JSON.parse(a.data);this.handleMessage(i)}catch{}})}handleMessage(t){switch(t.type){case"entry_added":{this.options.onEntryAdded(t.data);break}case"entry_updated":{this.options.onEntryUpdated(t.data);break}case"stats_updated":{this.options.onStatsUpdated(t.data);break}case"connected":{this.options.onConnected(t.data.clientCount);break}case"history_cleared":{this.options.onHistoryCleared();break}case"session_deleted":{this.options.onSessionDeleted(t.data.sessionId);break}}}scheduleReconnect(){this.reconnectTimer||(this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.createConnection()},this.reconnectDelay),this.reconnectDelay=Math.min(this.reconnectDelay*2,this.maxReconnectDelay))}}let ct=0;const ve=$([]);function $e(){function e(t,o="info",a=3e3){const i=ct++;ve.value.push({id:i,text:t,type:o}),setTimeout(()=>{ve.value=ve.value.filter(n=>n.id!==i)},a)}return{messages:ve,show:e}}function dt(){const{show:e}=$e(),t=$([]),o=$(null),a=$([]),i=$(null),n=$(""),l=$(null),f=$(null),v=$(null),y=$(1),k=$(1),d=$(0),b=20,_=$(!1),R=$(null),N=$(!1),z=$(""),P=$(""),ee=$(""),F=$(!0),te=$(null),X=$(!1),V=g(()=>o.value!==null),B=g(()=>o.value?t.value.findIndex(S=>S.id===o.value?.id):-1);let E=null;async function m(){_.value=!0,R.value=null;try{const S=await ue.fetchEntries({page:y.value,limit:b,endpoint:l.value,success:f.value===null?void 0:f.value==="true",search:n.value||void 0,sessionId:v.value||void 0});t.value=S.entries,k.value=S.totalPages,d.value=S.total,o.value===null&&t.value.length>0&&await q(t.value[0].id)}catch(S){const j=S instanceof Error?S.message:"Failed to load entries";R.value=j,e(j,"error")}finally{_.value=!1}}async function x(){try{i.value=await ue.fetchStats()}catch{}}async function T(){try{const S=await ue.fetchSessions();a.value=S.sessions}catch{}}async function q(S){try{const j=await ue.fetchEntry(S);o.value=j}catch(j){const Z=j instanceof Error?j.message:"Failed to load entry";e(Z,"error")}}function be(S){const j=B.value;if(t.value.length===0)return;let Z;j===-1?Z=0:S==="next"?Z=Math.min(j+1,t.value.length-1):Z=Math.max(j-1,0);const Te=t.value[Z];Te&&q(Te.id)}function He(){o.value=null}async function Je(){try{await ue.deleteEntries(),t.value=[],o.value=null,i.value=null,d.value=0,k.value=1,y.value=1,e("History cleared","success"),await x()}catch(S){const j=S instanceof Error?S.message:"Failed to clear history";e(j,"error")}}async function de(){const S=o.value?.id;await Promise.all([m(),x(),T()]),S&&await q(S)}function We(S){S<1||S>k.value||(y.value=S,m())}function Ke(S){v.value=S,y.value=1,m()}function Qe(S){l.value=S,y.value=1,m()}function Ge(S){f.value=S,y.value=1,m()}function Ye(S){n.value=S,y.value=1,m()}function Xe(S){y.value===1&&(t.value.unshift(S),t.value.length>b&&t.value.pop(),d.value++,k.value=Math.ceil(d.value/b))}function Ze(S){const j=t.value.findIndex(Z=>Z.id===S.id);j!==-1&&(t.value[j]=S),o.value?.id===S.id&&q(S.id)}function et(S){i.value=S}function tt(){de(),E=new ut({onEntryAdded:Xe,onEntryUpdated:Ze,onStatsUpdated:et,onConnected:()=>{},onHistoryCleared:()=>{de()},onSessionDeleted:()=>{de()},onStatusChange:S=>{N.value=S}}),E.connect()}function st(){E?.disconnect(),E=null}return{entries:t,selectedEntry:o,sessions:a,stats:i,searchQuery:n,filterEndpoint:l,filterSuccess:f,selectedSessionId:v,page:y,totalPages:k,total:d,loading:_,error:R,wsConnected:N,detailSearch:z,detailFilterRole:P,detailFilterType:ee,aggregateTools:F,detailViewMode:te,showOnlyRewritten:X,hasSelection:V,selectedIndex:B,fetchEntries:m,fetchStats:x,fetchSessions:T,selectEntry:q,selectAdjacentEntry:be,clearSelection:He,clearAll:Je,refresh:de,setPage:We,setSessionFilter:Ke,setEndpointFilter:Qe,setSuccessFilter:Ge,setSearch:Ye,init:tt,destroy:st}}function ke(e){return e?typeof e=="string"?e:Array.isArray(e)?e.map(t=>t.type==="text"&&"text"in t?t.text:t.type==="thinking"&&"thinking"in t?t.thinking:t.type==="tool_use"&&"name"in t?`[Tool: ${String(t.name)}]`:t.type==="tool_result"?"[Tool Result]":"").filter(Boolean).join(" "):"":""}function Ce(e){return"previewText"in e?e.responseSuccess===void 0?"pending":e.responseSuccess?"success":"error":e.response?e.response.success?"success":"error":"pending"}function vt(e){function t(o){const a=o.target;if(a.tagName==="INPUT"||a.tagName==="TEXTAREA"||a.tagName==="SELECT"){o.key==="Escape"&&(a.blur(),e.onEscape());return}switch(o.key){case"ArrowUp":case"k":{o.preventDefault(),e.onNavigate("prev");break}case"ArrowDown":case"j":{o.preventDefault(),e.onNavigate("next");break}case"/":{o.preventDefault(),e.onSearch();break}case"Escape":{if(document.querySelector(".modal-overlay"))break;const n=document.querySelector(".export-menu");if(n&&n.style.display!=="none")break;e.onEscape();break}}}re(()=>{document.addEventListener("keydown",t)}),ne(()=>{document.removeEventListener("keydown",t)})}function ae(){function e(l){const f=new Date(l),v=String(f.getHours()).padStart(2,"0"),y=String(f.getMinutes()).padStart(2,"0"),k=String(f.getSeconds()).padStart(2,"0");return`${v}:${y}:${k}`}function t(l){const f=new Date(l),v=new Date;if(f.toDateString()===v.toDateString())return e(l);const y=f.getFullYear(),k=String(f.getMonth()+1).padStart(2,"0"),d=String(f.getDate()).padStart(2,"0");return`${y}-${k}-${d} ${e(l)}`}function o(l){return l==null?"-":l>=1e6?(l/1e6).toFixed(1)+"M":l>=1e3?(l/1e3).toFixed(1)+"K":l.toString()}function a(l){return l?l<1e3?`${l}ms`:`${(l/1e3).toFixed(1)}s`:"-"}function i(l){return l?l.replaceAll("&","&amp;").replaceAll("<","&lt;").replaceAll(">","&gt;").replaceAll('"',"&quot;"):""}function n(l,f){if(!f||!l)return i(l);const v=i(l),y=f.replaceAll(/[.*+?^${}()|[\]\\]/g,String.raw`\$&`),k=new RegExp("("+i(y)+")","gi");return v.replace(k,'<mark class="search-highlight">$1</mark>')}return{formatTime:e,formatDate:t,formatNumber:o,formatDuration:a,escapeHtml:i,highlightSearch:n}}const mt=["disabled"],pt={key:0,class:"spinner"},ft=C({__name:"BaseButton",props:{variant:{default:"default"},size:{default:"sm"},disabled:{type:Boolean,default:!1},loading:{type:Boolean,default:!1}},emits:["click"],setup(e){return(t,o)=>(r(),u("button",{class:D(["base-btn",["btn-"+e.variant,"btn-size-"+e.size,{"btn-loading":e.loading}]]),disabled:e.disabled||e.loading,onClick:o[0]||(o[0]=a=>t.$emit("click",a))},[e.loading?(r(),u("span",pt)):h("",!0),G(t.$slots,"default",{},void 0)],10,mt))}}),M=(e,t)=>{const o=e.__vccOpts||e;for(const[a,i]of t)o[a]=i;return o},pe=M(ft,[["__scopeId","data-v-5d391870"]]),yt=["value"],ht={key:0,value:""},gt=["value"],wt=C({__name:"BaseSelect",props:{modelValue:{},options:{},placeholder:{}},emits:["update:modelValue"],setup(e){return(t,o)=>(r(),u("select",{class:"base-select",value:e.modelValue??"",onChange:o[0]||(o[0]=a=>t.$emit("update:modelValue",a.target.value||null))},[e.placeholder?(r(),u("option",ht,p(e.placeholder),1)):h("",!0),(r(!0),u(U,null,K(e.options,a=>(r(),u("option",{key:a.value,value:a.value},p(a.label),9,gt))),128))],40,yt))}}),le=M(wt,[["__scopeId","data-v-1a8e761a"]]),bt=["width","height","innerHTML"],kt=C({__name:"IconSvg",props:{name:{},size:{default:14}},setup(e){const a={search:'<path d="M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z"/><path d="M338.29 338.29L448 448"/>',refresh:'<path d="M320 146s24.36-12-64-12a160 160 0 10160 160" /><polyline points="256 58 336 138 256 218"/>',download:'<path d="M336 176h40a40 40 0 0140 40v208a40 40 0 01-40 40H136a40 40 0 01-40-40V216a40 40 0 0140-40h40"/><polyline points="176 272 256 352 336 272"/><line x1="256" y1="48" x2="256" y2="336"/>',trash:'<path d="M112 112l20 320c.95 18.49 14.4 32 32 32h184c17.67 0 30.87-13.51 32-32l20-320"/><line x1="80" y1="112" x2="432" y2="112"/><path d="M192 112V72h0a23.93 23.93 0 0124-24h80a23.93 23.93 0 0124 24h0v40" stroke-linecap="round"/>',close:'<path d="M368 368L144 144"/><path d="M368 144L144 368"/>',expand:'<polyline points="432 368 432 432 368 432"/><line x1="432" y1="432" x2="336" y2="336"/><polyline points="80 144 80 80 144 80"/><line x1="80" y1="80" x2="176" y2="176"/><polyline points="368 80 432 80 432 144"/><line x1="432" y1="80" x2="336" y2="176"/><polyline points="144 432 80 432 80 368"/><line x1="80" y1="432" x2="176" y2="336"/>',contract:'<polyline points="336 368 336 432 400 432"/><line x1="336" y1="432" x2="432" y2="336"/><polyline points="176 144 176 80 112 80"/><line x1="176" y1="80" x2="80" y2="176"/><polyline points="400 80 336 80 336 144"/><line x1="336" y1="80" x2="432" y2="176"/><polyline points="112 432 176 432 176 368"/><line x1="176" y1="432" x2="80" y2="336"/>',copy:'<rect x="128" y="128" width="336" height="336" rx="57" ry="57"/><path d="M383.5 128l.5-24a56.16 56.16 0 00-56-56H112a64.19 64.19 0 00-64 64v216a56.16 56.16 0 0056 56h24" stroke-linecap="round"/>',code:'<path d="M160 368L32 256l128-112"/><path d="M352 368l128-112-128-112"/><path d="M304 96l-96 320"/>',"chevron-down":'<polyline points="112 184 256 328 400 184"/>',"chevron-up":'<polyline points="112 328 256 184 400 328"/>',"chevron-right":'<polyline points="184 112 328 256 184 400"/>'}[e.name]||"";return(i,n)=>(r(),u("svg",{class:"icon-svg",width:e.size,height:e.size,viewBox:"0 0 512 512",fill:"none",stroke:"currentColor","stroke-width":"32","stroke-linecap":"round","stroke-linejoin":"round",innerHTML:c(a)},null,8,bt))}}),A=M(kt,[["__scopeId","data-v-ae6caa74"]]),xt=C({__name:"StatusDot",props:{status:{},size:{default:8}},setup(e){return(t,o)=>(r(),u("span",{class:D(["status-dot","status-"+e.status]),style:xe({width:e.size+"px",height:e.size+"px"})},null,6))}}),Le=M(xt,[["__scopeId","data-v-f0facb12"]]),$t={class:"app-header"},_t={class:"header-left"},St={class:"header-right"},Tt={class:"ws-label"},Rt={class:"export-menu"},Ct=C({__name:"AppHeader",setup(e){const t=Y("historyStore"),{formatDate:o}=ae(),a=$(!1),i=g(()=>t.sessions.value.map(b=>({value:b.id,label:`${o(b.startTime)} (${b.requestCount} reqs)`}))),n=$(!1),l=$();function f(b){location.href=`/history/api/export?format=${b}`,n.value=!1}function v(b){l.value&&!l.value.contains(b.target)&&(n.value=!1)}function y(b){b.key==="Escape"&&n.value&&(n.value=!1,b.stopPropagation())}re(()=>{document.addEventListener("click",v),document.addEventListener("keydown",y)}),ne(()=>{document.removeEventListener("click",v),document.removeEventListener("keydown",y)});async function k(){confirm("Clear all history? This cannot be undone.")&&await t.clearAll()}async function d(){a.value=!0;try{await t.refresh()}finally{a.value=!1}}return(b,_)=>(r(),u("header",$t,[s("div",_t,[_[4]||(_[4]=s("h1",{class:"header-title"},[L("History "),s("span",{class:"version-tag"},"V3")],-1)),w(le,{"model-value":c(t).selectedSessionId.value,options:i.value,placeholder:"All Sessions","onUpdate:modelValue":_[0]||(_[0]=R=>c(t).setSessionFilter(R))},null,8,["model-value","options"])]),s("div",St,[w(Le,{status:c(t).wsConnected.value?"success":"error",size:6},null,8,["status"]),s("span",Tt,p(c(t).wsConnected.value?"Live":"Offline"),1),w(pe,{variant:"ghost",disabled:a.value,onClick:d},{default:O(()=>[w(A,{name:"refresh",size:13,class:D({spinning:a.value})},null,8,["class"]),L(" "+p(a.value?"Refreshing...":"Refresh"),1)]),_:1},8,["disabled"]),s("div",{ref_key:"exportRef",ref:l,class:"export-dropdown"},[w(pe,{variant:"ghost",onClick:_[1]||(_[1]=H(R=>n.value=!n.value,["stop"]))},{default:O(()=>[w(A,{name:"download",size:13}),_[5]||(_[5]=L(" Export ",-1))]),_:1}),J(s("div",Rt,[s("button",{class:"export-item",onClick:_[2]||(_[2]=R=>f("json"))},"Export JSON"),s("button",{class:"export-item",onClick:_[3]||(_[3]=R=>f("csv"))},"Export CSV")],512),[[W,n.value]])],512),w(pe,{variant:"danger",onClick:k},{default:O(()=>[w(A,{name:"trash",size:13}),_[6]||(_[6]=L(" Clear ",-1))]),_:1})])]))}}),Mt=M(Ct,[["__scopeId","data-v-ba112819"]]),Et={key:0,class:"stats-bar"},It={class:"stat-item"},Ot={class:"stat-value"},Bt={class:"stat-item stat-success"},Lt={class:"stat-value"},Dt={class:"stat-item stat-error"},Nt={class:"stat-value"},Vt={class:"stat-item"},At={class:"stat-value"},qt={class:"stat-item"},zt={class:"stat-value"},Ut=C({__name:"StatsBar",setup(e){const t=Y("historyStore"),{formatNumber:o}=ae();return(a,i)=>c(t).stats.value?(r(),u("div",Et,[s("div",It,[s("span",Ot,p(c(o)(c(t).stats.value.totalRequests)),1),i[0]||(i[0]=s("span",{class:"stat-label"},"Requests",-1))]),s("div",Bt,[s("span",Lt,p(c(o)(c(t).stats.value.successfulRequests)),1),i[1]||(i[1]=s("span",{class:"stat-label"},"Success",-1))]),s("div",Dt,[s("span",Nt,p(c(o)(c(t).stats.value.failedRequests)),1),i[2]||(i[2]=s("span",{class:"stat-label"},"Failed",-1))]),s("div",Vt,[s("span",At,p(c(o)(c(t).stats.value.totalInputTokens)),1),i[3]||(i[3]=s("span",{class:"stat-label"},"In Tokens",-1))]),s("div",qt,[s("span",zt,p(c(o)(c(t).stats.value.totalOutputTokens)),1),i[4]||(i[4]=s("span",{class:"stat-label"},"Out Tokens",-1))])])):h("",!0)}}),jt=M(Ut,[["__scopeId","data-v-7ebe7ed2"]]),Pt={class:"split-right"},Ft=C({__name:"SplitPane",props:{defaultLeftWidth:{default:320},minLeftWidth:{default:240},maxLeftWidth:{default:500}},setup(e){const t=$(parseInt(localStorage.getItem("history-v3-split-width")||"0")||320),o=$(!1);function a(l){l.preventDefault(),o.value=!0,document.addEventListener("mousemove",i),document.addEventListener("mouseup",n)}function i(l){if(!o.value)return;const f=Math.max(240,Math.min(500,l.clientX));t.value=f}function n(){o.value=!1,localStorage.setItem("history-v3-split-width",String(t.value)),document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",n)}return re(()=>{const l=parseInt(localStorage.getItem("history-v3-split-width")||"0");l>0&&(t.value=l)}),ne(()=>{document.removeEventListener("mousemove",i),document.removeEventListener("mouseup",n)}),(l,f)=>(r(),u("div",{class:D(["split-pane",{dragging:o.value}])},[s("div",{class:"split-left",style:xe({width:t.value+"px"})},[G(l.$slots,"left",{},void 0)],4),s("div",{class:"split-handle",onMousedown:a},null,32),s("div",Pt,[G(l.$slots,"right",{},void 0)])],2))}}),Ht=M(Ft,[["__scopeId","data-v-77cb6608"]]),Jt=["value","placeholder"],Wt=C({__name:"BaseInput",props:{modelValue:{},placeholder:{},icon:{}},emits:["update:modelValue"],setup(e,{expose:t}){const o=$();function a(){o.value?.focus()}return t({focus:a}),(i,n)=>(r(),u("div",{class:D(["base-input",{"has-icon":e.icon}])},[e.icon?(r(),I(A,{key:0,name:e.icon,size:13,class:"input-icon"},null,8,["name"])):h("",!0),s("input",{ref_key:"inputRef",ref:o,type:"text",value:e.modelValue,placeholder:e.placeholder,onInput:n[0]||(n[0]=l=>i.$emit("update:modelValue",l.target.value))},null,40,Jt)],2))}}),De=M(Wt,[["__scopeId","data-v-77e6d433"]]),Kt=C({__name:"BaseBadge",props:{color:{default:"default"}},setup(e){return(t,o)=>(r(),u("span",{class:D(["base-badge","badge-"+e.color])},[G(t.$slots,"default",{},void 0)],2))}}),Q=M(Kt,[["__scopeId","data-v-226d8817"]]),Qt={class:"item-header"},Gt={class:"item-time"},Yt=["href","title"],Xt=["title"],Zt={class:"item-meta"},es={key:1,class:"item-tokens"},ts={key:2,class:"item-duration"},ss=["title"],ns=C({__name:"RequestItem",props:{entry:{},selected:{type:Boolean}},emits:["select"],setup(e){const{formatDate:t,formatNumber:o,formatDuration:a}=ae();return(i,n)=>(r(),u("div",{class:D(["request-item",{selected:e.selected,["status-"+c(Ce)(e.entry)]:!0}]),onClick:n[1]||(n[1]=l=>i.$emit("select",e.entry.id))},[s("div",Qt,[w(Le,{status:c(Ce)(e.entry)},null,8,["status"]),s("span",Gt,p(c(t)(e.entry.timestamp)),1),s("a",{class:"item-id",href:"/history/api/entries/"+e.entry.id,target:"_blank",title:"/history/api/entries/"+e.entry.id,onClick:n[0]||(n[0]=H(()=>{},["stop"]))},p(e.entry.id),9,Yt),s("span",{class:"item-model",title:e.entry.responseModel||e.entry.requestModel||void 0},p(e.entry.responseModel||e.entry.requestModel||"-"),9,Xt)]),s("div",Zt,[w(Q,{color:e.entry.endpoint==="anthropic-messages"?"purple":e.entry.endpoint==="openai-responses"?"green":"cyan"},{default:O(()=>[L(p(e.entry.endpoint),1)]),_:1},8,["color"]),e.entry.stream?(r(),I(Q,{key:0,color:"primary"},{default:O(()=>[...n[2]||(n[2]=[L("stream",-1)])]),_:1})):h("",!0),e.entry.usage?(r(),u("span",es,p(c(o)(e.entry.usage.input_tokens))+" in / "+p(c(o)(e.entry.usage.output_tokens))+" out ",1)):h("",!0),e.entry.durationMs?(r(),u("span",ts," · "+p(c(a)(e.entry.durationMs)),1)):h("",!0)]),s("div",{class:"item-preview",title:e.entry.previewText||void 0},p(e.entry.previewText),9,ss)],2))}}),as=M(ns,[["__scopeId","data-v-0c9ef106"]]),os={key:0,class:"list-pagination"},ls=["disabled"],rs={key:0,class:"page-ellipsis"},is=["onClick"],us=["disabled"],cs=C({__name:"ListPagination",setup(e){const t=Y("historyStore"),o=g(()=>{const a=t.page.value,i=t.totalPages.value;if(i<=7)return Array.from({length:i},(v,y)=>y+1);const n=[];n.push(1),a>3&&n.push("...");const l=Math.max(2,a-1),f=Math.min(i-1,a+1);for(let v=l;v<=f;v++)n.push(v);return a<i-2&&n.push("..."),n.push(i),n});return(a,i)=>c(t).totalPages.value>1?(r(),u("div",os,[s("button",{class:"page-btn nav-btn",disabled:c(t).page.value<=1,onClick:i[0]||(i[0]=n=>c(t).setPage(c(t).page.value-1))}," « ",8,ls),(r(!0),u(U,null,K(o.value,(n,l)=>(r(),u(U,{key:l},[n==="..."?(r(),u("span",rs,"...")):(r(),u("button",{key:1,class:D(["page-btn",{active:n===c(t).page.value}]),onClick:f=>c(t).setPage(n)},p(n),11,is))],64))),128)),s("button",{class:"page-btn nav-btn",disabled:c(t).page.value>=c(t).totalPages.value,onClick:i[1]||(i[1]=n=>c(t).setPage(c(t).page.value+1))}," » ",8,us)])):h("",!0)}}),ds=M(cs,[["__scopeId","data-v-c52e0777"]]),vs={class:"request-list"},ms={class:"list-controls"},ps={key:0,class:"search-count"},fs={class:"list-filters"},ys={class:"list-body"},hs={key:0,class:"list-empty"},gs={key:1,class:"list-empty"},ws=C({__name:"RequestList",setup(e,{expose:t}){const o=Y("historyStore"),a=$("");let i=null;const n=$();ye(a,y=>{i&&clearTimeout(i),i=setTimeout(()=>{o.setSearch(y)},300)});const l=[{value:"anthropic-messages",label:"Anthropic Messages"},{value:"openai-chat-completions",label:"OpenAI Chat Completions"},{value:"openai-responses",label:"OpenAI Responses"}],f=[{value:"true",label:"Success"},{value:"false",label:"Failed"}];function v(){n.value?.focus()}return t({focusSearch:v}),(y,k)=>(r(),u("div",vs,[s("div",ms,[w(De,{ref_key:"searchInputRef",ref:n,modelValue:a.value,"onUpdate:modelValue":k[0]||(k[0]=d=>a.value=d),placeholder:"Search...",icon:"search"},null,8,["modelValue"]),a.value&&c(o).total.value>0?(r(),u("span",ps,p(c(o).total.value)+" hit"+p(c(o).total.value!==1?"s":""),1)):h("",!0),s("div",fs,[w(le,{"model-value":c(o).filterEndpoint.value,options:l,placeholder:"Endpoint","onUpdate:modelValue":k[1]||(k[1]=d=>c(o).setEndpointFilter(d))},null,8,["model-value"]),w(le,{"model-value":c(o).filterSuccess.value,options:f,placeholder:"Status","onUpdate:modelValue":k[2]||(k[2]=d=>c(o).setSuccessFilter(d))},null,8,["model-value"])])]),s("div",ys,[c(o).loading.value&&c(o).entries.value.length===0?(r(),u("div",hs," Loading... ")):c(o).entries.value.length===0?(r(),u("div",gs,[...k[4]||(k[4]=[L(" No requests found ",-1),s("p",{class:"empty-subtitle"},"Try adjusting your filters",-1)])])):(r(!0),u(U,{key:2},K(c(o).entries.value,d=>(r(),I(as,{key:d.id,entry:d,selected:c(o).selectedEntry.value?.id===d.id,onSelect:k[3]||(k[3]=b=>c(o).selectEntry(b))},null,8,["entry","selected"]))),128))]),w(ds)]))}}),bs=M(ws,[["__scopeId","data-v-28ea6559"]]);function Ne(e){return e.type==="text"}function ks(e){return e.type==="thinking"}function xs(e){return e.type==="redacted_thinking"}function Ve(e){return e.type==="tool_use"}function Ae(e){return e.type==="tool_result"}function $s(e){return e.type==="image"}function _s(e){if(e.role==="tool"&&e.tool_call_id){const o=typeof e.content=="string"?e.content:JSON.stringify(e.content);return[{type:"tool_result",tool_use_id:e.tool_call_id,content:o}]}const t=[];if(typeof e.content=="string"?e.content&&t.push({type:"text",text:e.content}):Array.isArray(e.content)&&t.push(...e.content),e.tool_calls)for(const o of e.tool_calls){let a={};try{a=JSON.parse(o.function.arguments)}catch{a={_raw:o.function.arguments}}t.push({type:"tool_use",id:o.id,name:o.function.name,input:a})}return t}const qe=Symbol("contentContext");function Ss(e){ge(qe,e)}function ce(){const e=Y(qe);if(!e)throw new Error("useContentContext() called outside of ContentContext provider");return e}function Ts(e){const t=g(()=>{const d=e.value;if(!d?.rewrites?.truncation)return-1;const b=d.rewrites.truncation.removedMessageCount;if(!b)return-1;const _=d.rewrites.messageMapping;return _&&_.length>0?_[0]:b}),o=g(()=>{const d=new Map,b=e.value;if(!b?.rewrites?.rewrittenMessages||!b.rewrites.messageMapping)return d;const{rewrittenMessages:_,messageMapping:R}=b.rewrites;for(let N=0;N<R.length;N++){const z=R[N],P=_[N];P&&d.set(z,P)}return d}),a=g(()=>{const d=new Set,b=e.value;if(!b?.rewrites?.rewrittenMessages)return d;const _=b.request.messages??[];for(const[R,N]of o.value){const z=_[R];z&&z.content!==N.content&&JSON.stringify(z.content)!==JSON.stringify(N.content)&&d.add(R)}return d}),i=g(()=>{const d=e.value;return d?.rewrites?a.value.size>0||!!d.rewrites.rewrittenSystem:!1}),n=g(()=>{const d=e.value;if(!d?.rewrites?.rewrittenSystem)return!1;const b=d.request.system,_=d.rewrites.rewrittenSystem;return!b||!_?!!_:JSON.stringify(b)!==JSON.stringify(_)}),l=g(()=>{const d=a.value.size,b=n.value,_=t.value>=0,R=_?t.value:0;return{msgCount:d,sysRewritten:b,truncated:_,truncatedCount:R}}),f=g(()=>[...a.value].sort((d,b)=>d-b));function v(d){return o.value.get(d)??null}function y(d){return a.value.has(d)}function k(d){const b=t.value;return b<0?!1:d<b}return{truncationPoint:t,hasRewrites:i,isSystemRewritten:n,rewriteSummary:l,rewrittenIndices:a,rewrittenIndexList:f,getRewrittenMessage:v,isMessageRewritten:y,isMessageTruncated:k}}const ze=Symbol("rawModal");function Rs(){const e=$(!1),t=Re(null),o=Re(null),a=$("");function i(n,l,f){t.value=n,o.value=f??null,a.value=l,e.value=!0}return ge(ze,{openRawModal:i}),{visible:e,data:t,rewrittenData:o,title:a,openRawModal:i}}function we(){const e=Y(ze);if(!e)throw new Error("useRawModal() called outside of RawModal provider");return e}const Ue=Symbol("sharedResizeObserver");function Cs(){const e=new Map,t=new Set;let o=null;const a=new ResizeObserver(f=>{for(const v of f)t.add(v.target);o===null&&(o=requestAnimationFrame(()=>{o=null;for(const v of t)e.get(v)?.();t.clear()}))});function i(f,v){e.set(f,v),a.observe(f)}function n(f){e.delete(f),a.unobserve(f)}ne(()=>{a.disconnect(),e.clear(),t.clear(),o!==null&&cancelAnimationFrame(o)});const l={observe:i,unobserve:n};return ge(Ue,l),l}function je(){const e=Y(Ue);if(!e)throw new Error("useSharedResizeObserver() called outside of provider");return e}const Ms={class:"base-checkbox"},Es=["checked"],Is={key:0,class:"checkbox-label"},Os=C({__name:"BaseCheckbox",props:{modelValue:{type:Boolean},label:{}},emits:["update:modelValue"],setup(e){return(t,o)=>(r(),u("label",Ms,[s("input",{type:"checkbox",checked:e.modelValue,onChange:o[0]||(o[0]=a=>t.$emit("update:modelValue",a.target.checked))},null,40,Es),e.label?(r(),u("span",Is,p(e.label),1)):h("",!0)]))}}),Me=M(Os,[["__scopeId","data-v-b169bfe7"]]),Bs={class:"detail-toolbar"},Ls={class:"toolbar-row"},Ds={key:0,class:"toolbar-row rewrite-row"},Ns={class:"rewrite-stats"},Vs={key:0,class:"rewrite-stat"},As={key:1,class:"rewrite-stat"},qs={key:2,class:"rewrite-stat rewrite-stat-truncated"},zs={class:"rewrite-controls"},Us={key:0,class:"rewrite-nav"},js={class:"nav-label"},Ps=C({__name:"DetailToolbar",props:{hasRewrites:{type:Boolean},rewriteSummary:{},rewrittenIndexList:{}},emits:["export"],setup(e){const t=Y("historyStore"),o=e,a=[{value:"system",label:"System"},{value:"user",label:"User"},{value:"assistant",label:"Assistant"},{value:"tool",label:"Tool"}],i=[{value:"text",label:"Text"},{value:"tool_use",label:"Tool Use"},{value:"tool_result",label:"Tool Result"},{value:"thinking",label:"Thinking"},{value:"image",label:"Image"}],n=[{value:"original",label:"All Original"},{value:"rewritten",label:"All Rewritten"},{value:"diff",label:"All Diff"}],l=$(-1);function f(k){t.detailViewMode.value=k}function v(k){const d=document.querySelector(`[data-msg-index="${k}"]`);d&&(d.scrollIntoView({behavior:"smooth",block:"center"}),d.classList.remove("highlight-flash"),d.offsetWidth,d.classList.add("highlight-flash"))}function y(k){const d=o.rewrittenIndexList;d.length!==0&&(k==="next"?l.value=l.value<d.length-1?l.value+1:0:l.value=l.value>0?l.value-1:d.length-1,v(d[l.value]))}return(k,d)=>(r(),u("div",Bs,[w(De,{"model-value":c(t).detailSearch.value,placeholder:"Search in messages...",icon:"search","onUpdate:modelValue":d[0]||(d[0]=b=>c(t).detailSearch.value=b)},null,8,["model-value"]),s("div",Ls,[w(le,{"model-value":c(t).detailFilterRole.value||null,options:a,placeholder:"Role","onUpdate:modelValue":d[1]||(d[1]=b=>c(t).detailFilterRole.value=b??"")},null,8,["model-value"]),w(le,{"model-value":c(t).detailFilterType.value||null,options:i,placeholder:"Type","onUpdate:modelValue":d[2]||(d[2]=b=>c(t).detailFilterType.value=b??"")},null,8,["model-value"]),w(Me,{"model-value":c(t).aggregateTools.value,label:"Aggregate Tools","onUpdate:modelValue":d[3]||(d[3]=b=>c(t).aggregateTools.value=b)},null,8,["model-value"]),w(pe,{variant:"ghost",onClick:d[4]||(d[4]=b=>k.$emit("export"))},{default:O(()=>[w(A,{name:"download",size:13}),d[9]||(d[9]=L(" Export ",-1))]),_:1})]),e.hasRewrites?(r(),u("div",Ds,[s("div",Ns,[d[10]||(d[10]=s("span",{class:"rewrite-label"},"Rewrites:",-1)),e.rewriteSummary.msgCount>0?(r(),u("span",Vs,p(e.rewriteSummary.msgCount)+" msg"+p(e.rewriteSummary.msgCount>1?"s":""),1)):h("",!0),e.rewriteSummary.sysRewritten?(r(),u("span",As,"system")):h("",!0),e.rewriteSummary.truncated?(r(),u("span",qs,p(e.rewriteSummary.truncatedCount)+" truncated ",1)):h("",!0)]),s("div",zs,[w(le,{"model-value":c(t).detailViewMode.value,options:n,placeholder:"Per-message","onUpdate:modelValue":d[5]||(d[5]=b=>f(b))},null,8,["model-value"]),w(Me,{"model-value":c(t).showOnlyRewritten.value,label:"Only Rewritten","onUpdate:modelValue":d[6]||(d[6]=b=>c(t).showOnlyRewritten.value=b)},null,8,["model-value"]),e.rewriteSummary.msgCount>0?(r(),u("div",Us,[s("button",{class:"nav-btn",title:"Previous rewritten message",onClick:d[7]||(d[7]=b=>y("prev"))},[w(A,{name:"chevron-up",size:10})]),s("span",js,p(l.value>=0?l.value+1:"–")+"/"+p(e.rewrittenIndexList.length),1),s("button",{class:"nav-btn",title:"Next rewritten message",onClick:d[8]||(d[8]=b=>y("next"))},[w(A,{name:"chevron-down",size:10})])])):h("",!0)])])):h("",!0)]))}}),Fs=M(Ps,[["__scopeId","data-v-3ed4a3af"]]),Hs={class:"section-title"},Js={key:0,class:"section-badge"},Ws={class:"section-body"},Ks=C({__name:"SectionBlock",props:{title:{},defaultCollapsed:{type:Boolean},badge:{},rawData:{},rewrittenRawData:{},rawTitle:{default:"Raw"}},setup(e){const t=e,{openRawModal:o}=we(),a=$(t.defaultCollapsed??!1);function i(){a.value=!a.value}function n(l){l.stopPropagation(),t.rawData!==void 0&&o(t.rawData,t.rawTitle,t.rewrittenRawData)}return(l,f)=>(r(),u("div",{class:D(["section-block",{collapsed:a.value}])},[s("div",{class:"section-header",onClick:i},[w(A,{name:a.value?"chevron-right":"chevron-down",size:12,class:"section-chevron"},null,8,["name"]),s("span",Hs,p(e.title),1),e.badge?(r(),u("span",Js,p(e.badge),1)):h("",!0),e.rawData!==void 0?(r(),u("button",{key:1,class:"section-raw-btn",title:"View raw JSON",onClick:n},[w(A,{name:"code",size:10}),f[0]||(f[0]=L(" Raw ",-1))])):h("",!0)]),J(s("div",Ws,[G(l.$slots,"default",{},void 0)],512),[[W,!a.value]])],2))}}),fe=M(Ks,[["__scopeId","data-v-6d33a6f9"]]),Qs={class:"sse-timeline"},Gs={class:"sse-offset"},Ys={key:0,class:"sse-summary"},Xs=C({__name:"SseEventsSection",props:{events:{}},setup(e){const t=e;function o(l){return l<1e3?`+${l}ms`:`+${(l/1e3).toFixed(1)}s`}function a(l){const f=l.data;switch(l.type){case"message_start":{const v=f.message;return v?.model?`model=${v.model}`:""}case"content_block_start":{const v=f.content_block,y=[`index=${f.index}`];return v?.type&&y.push(`type=${v.type}`),v?.name&&y.push(`name=${v.name}`),y.join(" ")}case"content_block_stop":return`index=${f.index}`;case"message_delta":{const v=f.delta,y=[];v?.stop_reason&&y.push(`stop=${v.stop_reason}`);const k=f.usage;return k?.output_tokens&&y.push(`out=${k.output_tokens}`),y.join(" ")}case"error":{const v=f.error;return v?.message?String(v.message).slice(0,80):""}default:return""}}function i(l){switch(l){case"message_start":return"green";case"message_delta":return"blue";case"message_stop":return"dim";case"content_block_start":return"cyan";case"content_block_stop":return"dim";case"error":return"red";default:return"default"}}const n=g(()=>`${t.events.length} events`);return(l,f)=>(r(),I(fe,{title:"SSE Events",badge:n.value,"default-collapsed":!0,"raw-data":e.events,"raw-title":"Raw — SSE Events"},{default:O(()=>[s("div",Qs,[(r(!0),u(U,null,K(e.events,(v,y)=>(r(),u("div",{key:y,class:"sse-event"},[s("span",Gs,p(o(v.offsetMs)),1),s("span",{class:D(["sse-type","sse-type-"+i(v.type)])},p(v.type),3),a(v)?(r(),u("span",Ys,p(a(v)),1)):h("",!0)]))),128))])]),_:1},8,["badge","raw-data"]))}}),Zs=M(Xs,[["__scopeId","data-v-2edf43f6"]]),en={class:"meta-grid"},tn={class:"meta-row"},sn={class:"meta-value"},nn={class:"meta-row"},an={class:"meta-value"},on={class:"meta-row"},ln={class:"meta-value"},rn={class:"meta-row"},un={class:"meta-value"},cn={key:0,class:"meta-row"},dn={class:"meta-value"},vn={key:1,class:"meta-row"},mn={class:"meta-value"},pn={key:2,class:"meta-row"},fn={class:"meta-value"},yn={key:3,class:"meta-row"},hn={class:"meta-value"},gn={key:4,class:"meta-section"},wn={class:"meta-row"},bn={class:"meta-value mono"},kn={class:"meta-row"},xn={class:"meta-value mono"},$n={key:0,class:"meta-row"},_n={class:"meta-value mono"},Sn={key:1,class:"meta-row"},Tn={class:"meta-value mono"},Rn={key:5,class:"meta-row meta-error"},Cn={class:"meta-value error-text"},Mn={key:6,class:"meta-row"},En={class:"meta-value"},In={key:7,class:"meta-section"},On={class:"meta-row"},Bn={class:"meta-value"},Ln={class:"meta-row"},Dn={class:"meta-value mono"},Nn={key:8,class:"meta-section"},Vn={key:0,class:"meta-row"},An={class:"meta-value"},qn={key:1,class:"meta-row"},zn={class:"meta-value"},Un={key:9,class:"meta-section"},jn={key:0,class:"meta-row"},Pn={class:"meta-label meta-label--attempt"},Fn={key:1,class:"meta-row"},Hn={class:"meta-value"},Jn={key:2,class:"meta-row"},Wn={class:"meta-value"},Kn={key:3,class:"meta-row"},Qn={class:"meta-value"},Gn={key:4,class:"meta-row"},Yn={class:"meta-value"},Xn={key:5,class:"meta-row"},Zn={class:"meta-value"},ea=C({__name:"MetaInfo",props:{entry:{}},setup(e){const{formatNumber:t,formatDuration:o,formatDate:a}=ae();return(i,n)=>(r(),u("div",en,[s("div",tn,[n[0]||(n[0]=s("span",{class:"meta-label"},"Time",-1)),s("span",sn,p(c(a)(e.entry.timestamp)),1)]),s("div",nn,[n[1]||(n[1]=s("span",{class:"meta-label"},"Model",-1)),s("span",an,p(e.entry.response?.model||e.entry.request.model||"-"),1)]),s("div",on,[n[2]||(n[2]=s("span",{class:"meta-label"},"Endpoint",-1)),s("span",ln,[w(Q,{color:e.entry.endpoint==="anthropic-messages"?"purple":e.entry.endpoint==="openai-responses"?"green":"cyan"},{default:O(()=>[L(p(e.entry.endpoint),1)]),_:1},8,["color"])])]),s("div",rn,[n[3]||(n[3]=s("span",{class:"meta-label"},"Stream",-1)),s("span",un,p(e.entry.request.stream===!0?"Yes":"No"),1)]),e.entry.request.max_tokens?(r(),u("div",cn,[n[4]||(n[4]=s("span",{class:"meta-label"},"Max Tokens",-1)),s("span",dn,p(c(t)(e.entry.request.max_tokens)),1)])):h("",!0),e.entry.request.temperature!==void 0?(r(),u("div",vn,[n[5]||(n[5]=s("span",{class:"meta-label"},"Temperature",-1)),s("span",mn,p(e.entry.request.temperature),1)])):h("",!0),e.entry.durationMs?(r(),u("div",pn,[n[6]||(n[6]=s("span",{class:"meta-label"},"Duration",-1)),s("span",fn,p(c(o)(e.entry.durationMs)),1)])):h("",!0),e.entry.response?.stop_reason?(r(),u("div",yn,[n[7]||(n[7]=s("span",{class:"meta-label"},"Stop Reason",-1)),s("span",hn,p(e.entry.response.stop_reason),1)])):h("",!0),e.entry.response?.usage?(r(),u("div",gn,[n[12]||(n[12]=s("div",{class:"meta-section-title"},"Token Usage",-1)),s("div",wn,[n[8]||(n[8]=s("span",{class:"meta-label"},"Input",-1)),s("span",bn,p(c(t)(e.entry.response.usage.input_tokens)),1)]),s("div",kn,[n[9]||(n[9]=s("span",{class:"meta-label"},"Output",-1)),s("span",xn,p(c(t)(e.entry.response.usage.output_tokens)),1)]),e.entry.response?.usage?.cache_read_input_tokens?(r(),u("div",$n,[n[10]||(n[10]=s("span",{class:"meta-label"},"Cache Read",-1)),s("span",_n,p(c(t)(e.entry.response.usage.cache_read_input_tokens)),1)])):h("",!0),e.entry.response?.usage?.cache_creation_input_tokens?(r(),u("div",Sn,[n[11]||(n[11]=s("span",{class:"meta-label"},"Cache Create",-1)),s("span",Tn,p(c(t)(e.entry.response.usage.cache_creation_input_tokens)),1)])):h("",!0)])):h("",!0),e.entry.response?.error?(r(),u("div",Rn,[n[13]||(n[13]=s("span",{class:"meta-label"},"Error",-1)),s("span",Cn,p(e.entry.response.error),1)])):h("",!0),e.entry.request.tools?.length?(r(),u("div",Mn,[n[14]||(n[14]=s("span",{class:"meta-label"},"Tools",-1)),s("span",En,p(e.entry.request.tools.length)+" defined",1)])):h("",!0),e.entry.rewrites?.truncation?(r(),u("div",In,[n[17]||(n[17]=s("div",{class:"meta-section-title"},"Truncation",-1)),s("div",On,[n[15]||(n[15]=s("span",{class:"meta-label"},"Removed",-1)),s("span",Bn,p(e.entry.rewrites.truncation.removedMessageCount)+" messages",1)]),s("div",Ln,[n[16]||(n[16]=s("span",{class:"meta-label"},"Tokens",-1)),s("span",Dn,p(c(t)(e.entry.rewrites.truncation.originalTokens))+" → "+p(c(t)(e.entry.rewrites.truncation.compactedTokens)),1)])])):h("",!0),e.entry.rewrites?.preprocessing&&(e.entry.rewrites.preprocessing.strippedReadTagCount>0||e.entry.rewrites.preprocessing.dedupedToolCallCount>0)?(r(),u("div",Nn,[n[20]||(n[20]=s("div",{class:"meta-section-title"},"Preprocessing",-1)),e.entry.rewrites.preprocessing.strippedReadTagCount?(r(),u("div",Vn,[n[18]||(n[18]=s("span",{class:"meta-label"},"Read tag strip",-1)),s("span",An,p(e.entry.rewrites.preprocessing.strippedReadTagCount)+" tags",1)])):h("",!0),e.entry.rewrites.preprocessing.dedupedToolCallCount?(r(),u("div",qn,[n[19]||(n[19]=s("span",{class:"meta-label"},"Dedup tool calls",-1)),s("span",zn,p(e.entry.rewrites.preprocessing.dedupedToolCallCount)+" pairs",1)])):h("",!0)])):h("",!0),e.entry.rewrites?.sanitization?.length?(r(),u("div",Un,[n[26]||(n[26]=s("div",{class:"meta-section-title"},"Sanitization",-1)),(r(!0),u(U,null,K(e.entry.rewrites.sanitization,(l,f)=>(r(),u(U,{key:f},[e.entry.rewrites.sanitization.length>1?(r(),u("div",jn,[s("span",Pn,"Attempt "+p(f+1),1)])):h("",!0),l.totalBlocksRemoved?(r(),u("div",Fn,[n[21]||(n[21]=s("span",{class:"meta-label"},"Blocks Removed",-1)),s("span",Hn,p(l.totalBlocksRemoved)+" total",1)])):h("",!0),l.orphanedToolUseCount?(r(),u("div",Jn,[n[22]||(n[22]=s("span",{class:"meta-label"},"Orphan tool_use",-1)),s("span",Wn,p(l.orphanedToolUseCount),1)])):h("",!0),l.orphanedToolResultCount?(r(),u("div",Kn,[n[23]||(n[23]=s("span",{class:"meta-label"},"Orphan tool_result",-1)),s("span",Qn,p(l.orphanedToolResultCount),1)])):h("",!0),l.emptyTextBlocksRemoved?(r(),u("div",Gn,[n[24]||(n[24]=s("span",{class:"meta-label"},"Empty text",-1)),s("span",Yn,p(l.emptyTextBlocksRemoved),1)])):h("",!0),l.systemReminderRemovals?(r(),u("div",Xn,[n[25]||(n[25]=s("span",{class:"meta-label"},"Reminders",-1)),s("span",Zn,p(l.systemReminderRemovals)+" tags filtered",1)])):h("",!0)],64))),128))])):h("",!0)]))}}),ta=M(ea,[["__scopeId","data-v-6471221f"]]),sa={class:"truncation-divider"},na={class:"divider-content"},aa={class:"divider-text"},oa={class:"divider-detail"},la=C({__name:"TruncationDivider",props:{truncation:{}},setup(e){const{formatNumber:t,formatDuration:o}=ae();return(a,i)=>(r(),u("div",sa,[i[1]||(i[1]=s("div",{class:"divider-line"},null,-1)),s("div",na,[i[0]||(i[0]=s("span",{class:"divider-icon"},"✂",-1)),s("span",aa,p(e.truncation.removedMessageCount)+" messages truncated ",1),s("span",oa,p(c(t)(e.truncation.originalTokens))+" → "+p(c(t)(e.truncation.compactedTokens))+" tokens ("+p(c(o)(e.truncation.processingTimeMs))+") ",1)]),i[2]||(i[2]=s("div",{class:"divider-line"},null,-1))]))}}),ra=M(la,[["__scopeId","data-v-9cfada0f"]]);function _e(){const{show:e}=$e();async function t(o,a="Copied!"){try{await navigator.clipboard.writeText(o),e(a,"success")}catch{e("Copy failed","error")}}return{copy:t}}const ia={class:"line-number-pre"},ua={class:"line-no"},ca=["innerHTML"],da=C({__name:"LineNumberPre",props:{html:{}},setup(e){const t=e,o=g(()=>t.html.split(`
2
+ `));return(a,i)=>(r(),u("div",ia,[(r(!0),u(U,null,K(o.value,(n,l)=>(r(),u("div",{key:l,class:"line"},[s("span",ua,p(l+1),1),s("span",{class:"line-content",innerHTML:n||"​"},null,8,ca)]))),128))]))}}),he=M(da,[["__scopeId","data-v-a98c3fb0"]]),va=["innerHTML"],ma=C({__name:"DiffView",props:{oldText:{},newText:{},outputFormat:{default:"side-by-side"}},setup(e){const t=e,o=g(()=>{try{const a=lt("original","rewritten",t.oldText,t.newText);return rt(a,{outputFormat:t.outputFormat,drawFileList:!1,matching:"lines"})}catch{return"<pre>Diff generation failed</pre>"}});return(a,i)=>(r(),u("div",{class:"diff-view",innerHTML:o.value},null,8,va))}}),Pe=M(ma,[["__scopeId","data-v-1175ff40"]]),pa={class:"system-header-left"},fa={class:"collapse-icon"},ya=["title"],ha={class:"system-header-right"},ga={key:0,class:"cache-label"},wa=C({__name:"SystemMessage",props:{system:{},rewrittenSystem:{},searchQuery:{},globalViewMode:{}},setup(e){const t=e,{highlightSearch:o,escapeHtml:a}=ae(),{copy:i}=_e(),{openRawModal:n}=we(),l=$(!1),f=$(!1),v=$(null),y=g(()=>v.value?v.value:t.globalViewMode&&z.value?t.globalViewMode:"original"),k=g(()=>v.value!==null);function d(E){v.value=E}function b(){v.value=null}function _(E){return typeof E=="string"?E:Array.isArray(E)?E.map(m=>m.text).join(`
3
+ `):""}const R=g(()=>_(t.system)),N=g(()=>t.rewrittenSystem?_(t.rewrittenSystem):""),z=g(()=>!!t.rewrittenSystem),P=g(()=>y.value==="rewritten"&&z.value?N.value:R.value),ee=g(()=>t.searchQuery?o(P.value,t.searchQuery):a(P.value)),F=g(()=>{const E=R.value;return E.length>80?E.slice(0,80)+"...":E}),te=g(()=>typeof t.system=="string"?[{type:"text",text:t.system}]:t.system),X=g(()=>typeof t.system=="string"?!1:t.system.some(E=>E.cache_control)),V=g(()=>({system:t.system})),B=g(()=>t.rewrittenSystem?{system:t.rewrittenSystem}:null);return(E,m)=>(r(),u("div",{class:D(["system-message",{collapsed:l.value}])},[s("div",{class:"system-header",onClick:m[9]||(m[9]=x=>l.value=!l.value)},[s("div",pa,[s("span",fa,p(l.value?"▸":"▾"),1),w(Q,{color:"purple"},{default:O(()=>[...m[10]||(m[10]=[L("system",-1)])]),_:1}),X.value?(r(),I(Q,{key:0,color:"warning"},{default:O(()=>[...m[11]||(m[11]=[L("cached",-1)])]),_:1})):h("",!0),z.value?(r(),I(Q,{key:1,color:"warning"},{default:O(()=>[...m[12]||(m[12]=[L("rewritten",-1)])]),_:1})):h("",!0),l.value?(r(),u("span",{key:2,class:"collapsed-summary",title:F.value},p(F.value),9,ya)):h("",!0)]),s("div",ha,[z.value&&!l.value?(r(),u("div",{key:0,class:"view-toggle",onClick:m[4]||(m[4]=H(()=>{},["stop"]))},[s("button",{class:D({active:y.value==="original"}),onClick:m[0]||(m[0]=x=>d("original"))},"Original",2),s("button",{class:D({active:y.value==="rewritten"}),onClick:m[1]||(m[1]=x=>d("rewritten"))},"Rewritten",2),s("button",{class:D({active:y.value==="diff"}),onClick:m[2]||(m[2]=x=>d("diff"))},"Diff",2),k.value?(r(),u("button",{key:0,class:"reset-btn",title:"Reset to global view mode",onClick:m[3]||(m[3]=x=>b())},"×")):h("",!0)])):h("",!0),l.value?h("",!0):J((r(),u("button",{key:1,class:"action-btn",onClick:m[5]||(m[5]=H(x=>f.value=!f.value,["stop"]))},[w(A,{name:"expand",size:10}),m[13]||(m[13]=L(" Expand ",-1))],512)),[[W,!f.value]]),!l.value&&f.value?(r(),u("button",{key:2,class:"action-btn",onClick:m[6]||(m[6]=H(x=>f.value=!1,["stop"]))},[w(A,{name:"contract",size:10}),m[14]||(m[14]=L(" Collapse ",-1))])):h("",!0),s("button",{class:"action-btn",title:"Copy",onClick:m[7]||(m[7]=H(x=>c(i)(P.value),["stop"]))},[w(A,{name:"copy",size:10}),m[15]||(m[15]=L(" Copy ",-1))]),s("button",{class:"action-btn",title:"View raw JSON",onClick:m[8]||(m[8]=H(x=>c(n)(V.value,"Raw — system",B.value),["stop"]))},[w(A,{name:"code",size:10}),m[16]||(m[16]=L(" Raw ",-1))])])]),J(s("div",{class:D(["system-body",{"body-expanded":f.value}])},[y.value==="diff"&&z.value?(r(),I(Pe,{key:0,"old-text":R.value,"new-text":N.value},null,8,["old-text","new-text"])):y.value==="original"&&typeof e.system!="string"?(r(!0),u(U,{key:1},K(te.value,(x,T)=>(r(),u("div",{key:T,class:"system-block-item"},[x.cache_control?(r(),u("div",ga,"[cache: "+p(x.cache_control.type)+"]",1)):h("",!0),w(he,{html:e.searchQuery?c(o)(x.text,e.searchQuery):c(a)(x.text)},null,8,["html"])]))),128)):(r(),I(he,{key:2,html:ee.value},null,8,["html"]))],2),[[W,!l.value]])],2))}}),ba=M(wa,[["__scopeId","data-v-eac28575"]]),ka=["id"],xa={class:"content-block-header-left"},$a={class:"collapse-icon"},_a=["title"],Sa={class:"content-block-header-right"},Ta=["title"],Ra=C({__name:"ContentBlockWrapper",props:{label:{},labelColor:{default:"text-muted"},summary:{default:""},blockId:{},copyText:{},rawData:{},rawTitle:{default:"Raw"}},setup(e){const t=e,{copy:o}=_e(),{openRawModal:a}=we(),i=je(),n=$(!1),l=$(!1),f=$(!1),v=$();function y(){n.value=!n.value}function k(R){R.stopPropagation(),l.value=!l.value}function d(R){R.stopPropagation(),t.copyText&&o(t.copyText)}function b(R){R.stopPropagation(),t.rawData!==void 0&&a(t.rawData,t.rawTitle)}function _(){v.value&&(f.value=v.value.scrollHeight>208)}return re(()=>{v.value&&(i.observe(v.value,_),oe(_))}),ne(()=>{v.value&&i.unobserve(v.value)}),(R,N)=>(r(),u("div",{class:"content-block",id:e.blockId},[s("div",{class:"content-block-header",onClick:y},[s("div",xa,[s("span",$a,p(n.value?"▸":"▾"),1),s("span",{class:D(["content-type-label","label-"+e.labelColor])},p(e.label),3),G(R.$slots,"header-extra",{},void 0),n.value&&e.summary?(r(),u("span",{key:0,class:"collapsed-summary",title:e.summary},p(e.summary),9,_a)):h("",!0)]),s("div",Sa,[!n.value&&f.value?(r(),u("button",{key:0,class:"action-btn",title:l.value?"Collapse":"Expand",onClick:k},[w(A,{name:l.value?"contract":"expand",size:10},null,8,["name"]),L(" "+p(l.value?"Collapse":"Expand"),1)],8,Ta)):h("",!0),e.copyText?(r(),u("button",{key:1,class:"action-btn",title:"Copy",onClick:d},[w(A,{name:"copy",size:10}),N[0]||(N[0]=L(" Copy ",-1))])):h("",!0),e.rawData!==void 0?(r(),u("button",{key:2,class:"action-btn",title:"View raw JSON",onClick:b},[w(A,{name:"code",size:10}),N[1]||(N[1]=L(" Raw ",-1))])):h("",!0)])]),J(s("div",{ref_key:"bodyRef",ref:v,class:D(["content-block-body",{"body-collapsed":!l.value}])},[G(R.$slots,"default",{},void 0)],2),[[W,!n.value]])],8,ka))}}),ie=M(Ra,[["__scopeId","data-v-0742d16c"]]);function Se(e,t){const{highlightSearch:o,escapeHtml:a}=ae();return{displayHtml:g(()=>{const n=typeof e=="function"?e():c(e),l=typeof t=="function"?t():c(t);return l?o(n,l):a(n)})}}const Ca=C({__name:"TextBlock",props:{text:{}},setup(e){const t=e,{searchQuery:o}=ce(),a=g(()=>t.text.length>60?t.text.slice(0,60)+"...":t.text),{displayHtml:i}=Se(()=>t.text,o);return(n,l)=>(r(),I(ie,{label:"TEXT","label-color":"text-muted",summary:a.value,"copy-text":e.text,"raw-data":{type:"text",text:e.text},"raw-title":"Raw — text"},{default:O(()=>[w(he,{html:c(i)},null,8,["html"])]),_:1},8,["summary","copy-text","raw-data"]))}}),Ma={key:0,class:"redacted-label"},Ea=["innerHTML"],Ia=C({__name:"ThinkingBlock",props:{text:{},redacted:{type:Boolean,default:!1}},setup(e){const t=e,{searchQuery:o}=ce(),a=g(()=>t.redacted?"[redacted]":t.text.length>60?t.text.slice(0,60)+"...":t.text),{displayHtml:i}=Se(()=>t.text,o),n=g(()=>t.redacted?"<em>[Thinking content redacted]</em>":i.value);return(l,f)=>(r(),I(ie,{label:"THINKING","label-color":"purple",summary:a.value,"copy-text":e.redacted?void 0:e.text,"raw-data":e.redacted?void 0:{type:"thinking",thinking:e.text},"raw-title":"Raw — thinking",class:D({redacted:e.redacted})},{"header-extra":O(()=>[e.redacted?(r(),u("span",Ma,"REDACTED")):h("",!0)]),default:O(()=>[s("pre",{class:"thinking-text",innerHTML:n.value},null,8,Ea)]),_:1},8,["summary","copy-text","raw-data","class"]))}}),Ee=M(Ia,[["__scopeId","data-v-7878f7b8"]]),Oa={class:"image-media-type"},Ba=["src"],La=C({__name:"ImageBlock",props:{mediaType:{},data:{}},setup(e){return(t,o)=>(r(),I(ie,{label:"IMAGE","label-color":"pink",summary:e.mediaType,"raw-data":{type:"image",source:{type:"base64",media_type:e.mediaType}},"raw-title":"Raw — image"},{"header-extra":O(()=>[s("span",Oa,p(e.mediaType),1)]),default:O(()=>[s("img",{src:"data:"+e.mediaType+";base64,"+e.data,alt:"Image content",class:"image-content"},null,8,Ba)]),_:1},8,["summary","raw-data"]))}}),Da=M(La,[["__scopeId","data-v-7e48d486"]]),Na=["id"],Va={key:0,class:"result-tool-name"},Aa={class:"result-tool-id"},qa={key:1,class:"result-error-badge"},za={key:0,class:"result-tool-name"},Ua={class:"result-tool-id"},ja={key:1,class:"result-error-badge"},Pa={key:0,class:"tool-jump"},Fa=C({__name:"ToolResultBlock",props:{block:{},toolName:{},embedded:{type:Boolean}},setup(e){const t=e,{searchQuery:o,aggregateTools:a,scrollToCall:i}=ce(),n=g(()=>a.value&&!t.embedded),l=g(()=>t.block.is_error===!0),f=g(()=>{const k=t.block.content;return typeof k=="string"?k:Array.isArray(k)?ke(k):""}),v=g(()=>t.toolName?t.toolName:"for "+t.block.tool_use_id.slice(0,8)),{displayHtml:y}=Se(f,o);return(k,d)=>(r(),u(U,null,[J(s("div",{class:"aggregated-stub",id:n.value?"tool-result-"+e.block.tool_use_id:void 0},[s("span",{class:D(["stub-label",l.value?"label-error":"label-success"])},"TOOL RESULT",2),e.toolName?(r(),u("span",Va,p(e.toolName),1)):h("",!0),s("span",Aa,p(e.block.tool_use_id),1),l.value?(r(),u("span",qa,"ERROR")):h("",!0),s("a",{class:"jump-link",onClick:d[0]||(d[0]=H(b=>c(i)(e.block.tool_use_id),["prevent"]))}," ← Jump to call ")],8,Na),[[W,n.value]]),J(w(ie,{label:"TOOL RESULT","label-color":l.value?"error":"success",summary:v.value,"block-id":"tool-result-"+e.block.tool_use_id,"copy-text":f.value,"raw-data":e.block,"raw-title":"Raw — tool_result"+(e.toolName?": "+e.toolName:"")},{"header-extra":O(()=>[e.toolName?(r(),u("span",za,p(e.toolName),1)):h("",!0),s("span",Ua,"for "+p(e.block.tool_use_id),1),l.value?(r(),u("span",ja,"ERROR")):h("",!0)]),default:O(()=>[w(he,{html:c(y)},null,8,["html"]),e.embedded?h("",!0):(r(),u("div",Pa,[s("a",{class:"jump-link",onClick:d[1]||(d[1]=H(b=>c(i)(e.block.tool_use_id),["prevent"]))}," ← Jump to call ")]))]),_:1},8,["label-color","summary","block-id","copy-text","raw-data","raw-title"]),[[W,!n.value]])],64))}}),Fe=M(Fa,[["__scopeId","data-v-ef1fc34e"]]),Ha={class:"tool-name"},Ja={class:"tool-id"},Wa={key:1,class:"tool-input"},Ka={class:"tool-aggregate-result"},Qa={class:"tool-jump"},Ga=C({__name:"ToolUseBlock",props:{block:{}},setup(e){const t=e,{aggregateTools:o,toolResultMap:a,scrollToResult:i}=ce(),n=g(()=>{try{return JSON.stringify(t.block.input,null,2)}catch{return String(t.block.input)}}),l=g(()=>t.block.input!==null&&typeof t.block.input=="object"),f=g(()=>a.value?a.value[t.block.id]??null:null),v=g(()=>!!f.value);return(y,k)=>(r(),I(ie,{label:"TOOL USE","label-color":"cyan",summary:e.block.name,"block-id":"tool-use-"+e.block.id,"copy-text":n.value,"raw-data":e.block,"raw-title":"Raw — tool_use: "+e.block.name},{"header-extra":O(()=>[s("span",Ha,p(e.block.name),1),s("span",Ja,p(e.block.id),1)]),default:O(()=>[l.value?(r(),I(c(me),{key:0,data:e.block.input,deep:3,"show-icon":!0,"show-line-number":!0,"collapsed-on-click-brackets":!0},null,8,["data"])):(r(),u("pre",Wa,p(n.value),1)),v.value?(r(),u(U,{key:2},[J(s("div",Ka,[w(Fe,{block:f.value,"tool-name":e.block.name,embedded:!0},null,8,["block","tool-name"])],512),[[W,c(o)]]),J(s("div",Qa,[s("a",{class:"jump-link",onClick:k[0]||(k[0]=H(d=>c(i)(e.block.id),["prevent"]))}," → Jump to result ")],512),[[W,!c(o)]])],64)):h("",!0)]),_:1},8,["summary","block-id","copy-text","raw-data","raw-title"]))}}),Ya=M(Ga,[["__scopeId","data-v-06ade624"]]),Xa={class:"generic-content"},Za=C({__name:"GenericBlock",props:{block:{}},setup(e){const t=e,o=g(()=>(t.block.type||"UNKNOWN").toUpperCase()),a=g(()=>{try{return JSON.stringify(t.block,null,2)}catch{return String(t.block)}});return(i,n)=>(r(),I(ie,{label:o.value,"label-color":"text-muted",summary:e.block.type||"unknown","raw-data":e.block,"raw-title":"Raw — "+(e.block.type||"unknown")},{default:O(()=>[s("pre",Xa,p(a.value),1)]),_:1},8,["label","summary","raw-data","raw-title"]))}}),eo=M(Za,[["__scopeId","data-v-f03251db"]]),to={class:"content-renderer"},so=C({__name:"ContentRenderer",props:{content:{},message:{}},setup(e){const t=e,{filterType:o,toolUseNameMap:a}=ce(),i=g(()=>t.message?_s(t.message):typeof t.content=="string"?[{type:"text",text:t.content}]:Array.isArray(t.content)?t.content:[]),n=g(()=>{let l=i.value;return o.value&&(l=l.filter(f=>f.type===o.value)),l});return(l,f)=>(r(),u("div",to,[(r(!0),u(U,null,K(n.value,(v,y)=>(r(),u(U,{key:y},[c(Ne)(v)?(r(),I(Ca,{key:0,text:v.text},null,8,["text"])):c(ks)(v)?(r(),I(Ee,{key:1,text:v.thinking},null,8,["text"])):c(xs)(v)?(r(),I(Ee,{key:2,text:"",redacted:!0})):c($s)(v)&&v.source.type==="base64"?(r(),I(Da,{key:3,"media-type":v.source.media_type,data:v.source.data},null,8,["media-type","data"])):c(Ve)(v)?(r(),I(Ya,{key:4,block:v},null,8,["block"])):c(Ae)(v)?(r(),I(Fe,{key:5,block:v,"tool-name":c(a)[v.tool_use_id]},null,8,["block","tool-name"])):(r(),I(eo,{key:6,block:v},null,8,["block"]))],64))),128))]))}}),no=M(so,[["__scopeId","data-v-6d7c503e"]]),ao=["data-msg-index"],oo={class:"msg-header-left"},lo={class:"collapse-icon"},ro={class:"msg-index"},io=["title"],uo={class:"msg-header-right"},co=["title"],vo=C({__name:"MessageBlock",props:{message:{},index:{},isTruncated:{type:Boolean,default:!1},isRewritten:{type:Boolean,default:!1},rewrittenMessage:{},globalViewMode:{}},setup(e){const t=e,o=$(!1),a=$(!1),i=$(!1),n=$(),{openRawModal:l}=we(),f=je(),v=$(null),y=g(()=>v.value?v.value:t.globalViewMode&&t.isRewritten&&t.rewrittenMessage?t.globalViewMode:"original"),k=g(()=>v.value!==null);function d(V){v.value=V}function b(){v.value=null}const _=g(()=>{switch(t.message.role){case"user":return"primary";case"assistant":return"success";case"system":return"purple";case"tool":return"cyan";default:return"default"}}),R=g(()=>{const V=t.message.content;if(typeof V=="string")return V.length>80?V.slice(0,80)+"...":V;if(!Array.isArray(V)||V.length===0)return"";const B=V[0];if(V.length===1&&Ne(B)){const m=B.text;return m.length>80?m.slice(0,80)+"...":m}const E={};for(const m of V)E[m.type]=(E[m.type]||0)+1;return Object.entries(E).map(([m,x])=>`${x} ${m}`).join(", ")}),N=g(()=>ke(t.message.content)),z=g(()=>t.rewrittenMessage?ke(t.rewrittenMessage.content):""),P=g(()=>y.value==="rewritten"&&t.rewrittenMessage?t.rewrittenMessage.content??"":t.message.content??""),ee=g(()=>y.value==="rewritten"&&t.rewrittenMessage?t.rewrittenMessage:t.message);function F(){n.value&&!a.value&&(i.value=n.value.scrollHeight>n.value.clientHeight+10)}function te(V){V.stopPropagation(),a.value=!a.value,a.value||oe(F)}function X(V){V.stopPropagation(),l(t.message,`Raw — ${t.message.role} #${t.index+1}`,t.isRewritten?t.rewrittenMessage:void 0)}return re(()=>{oe(()=>{F(),n.value&&f.observe(n.value,F)})}),ne(()=>{n.value&&f.unobserve(n.value)}),ye(()=>t.message,()=>{a.value=!1,oe(F)}),(V,B)=>(r(),u("div",{class:D(["message-block",{truncated:e.isTruncated,collapsed:o.value,"is-rewritten":e.isRewritten}]),"data-msg-index":e.index},[s("div",{class:"msg-header",onClick:B[7]||(B[7]=E=>o.value=!o.value)},[s("div",oo,[s("span",lo,p(o.value?"▸":"▾"),1),w(Q,{color:_.value},{default:O(()=>[L(p(e.message.role),1)]),_:1},8,["color"]),s("span",ro,"#"+p(e.index+1),1),e.isRewritten?(r(),I(Q,{key:0,color:"warning"},{default:O(()=>[...B[8]||(B[8]=[L("rewritten",-1)])]),_:1})):h("",!0),e.isTruncated?(r(),I(Q,{key:1,color:"error"},{default:O(()=>[...B[9]||(B[9]=[L("truncated",-1)])]),_:1})):h("",!0),o.value&&R.value?(r(),u("span",{key:2,class:"collapsed-summary",title:R.value},p(R.value),9,io)):h("",!0)]),s("div",uo,[e.isRewritten&&e.rewrittenMessage?(r(),u("div",{key:0,class:"view-toggle",onClick:B[4]||(B[4]=H(()=>{},["stop"]))},[s("button",{class:D({active:y.value==="original"}),onClick:B[0]||(B[0]=E=>d("original"))},"Original",2),s("button",{class:D({active:y.value==="rewritten"}),onClick:B[1]||(B[1]=E=>d("rewritten"))},"Rewritten",2),s("button",{class:D({active:y.value==="diff"}),onClick:B[2]||(B[2]=E=>d("diff"))},"Diff",2),k.value?(r(),u("button",{key:0,class:"reset-btn",title:"Reset to global view mode",onClick:B[3]||(B[3]=E=>b())},"×")):h("",!0)])):h("",!0),s("button",{class:"action-btn",title:"View raw JSON",onClick:B[5]||(B[5]=E=>X(E))},[w(A,{name:"code",size:10}),B[10]||(B[10]=L(" Raw ",-1))]),i.value&&!o.value?(r(),u("button",{key:1,class:"action-btn",onClick:B[6]||(B[6]=E=>te(E)),title:a.value?"Collapse content":"Show full content"},[w(A,{name:a.value?"contract":"expand",size:10},null,8,["name"]),L(" "+p(a.value?"Collapse":"Expand"),1)],8,co)):h("",!0)])]),J(s("div",{ref_key:"bodyRef",ref:n,class:D(["msg-body",{"body-limited":i.value&&!a.value}])},[y.value==="diff"&&e.isRewritten?(r(),I(Pe,{key:0,"old-text":N.value,"new-text":z.value},null,8,["old-text","new-text"])):(r(),I(no,{key:1,content:P.value,message:ee.value},null,8,["content","message"]))],2),[[W,!o.value]])],10,ao))}}),Ie=M(vo,[["__scopeId","data-v-2faca0f0"]]),mo={class:"modal-header"},po={class:"modal-title"},fo={class:"modal-header-actions"},yo={class:"modal-body"},ho=C({__name:"BaseModal",props:{visible:{type:Boolean},title:{},width:{},height:{}},emits:["update:visible"],setup(e,{emit:t}){const o=t;function a(){o("update:visible",!1)}function i(l){l.target.classList.contains("modal-overlay")&&a()}function n(l){l.key==="Escape"&&(l.stopPropagation(),a())}return(l,f)=>(r(),I(Oe,{to:"body"},[w(nt,{name:"fade"},{default:O(()=>[e.visible?(r(),u("div",{key:0,class:"modal-overlay",onClick:i,onKeydown:n},[s("div",{class:"modal-content",style:xe({width:e.width||"80vw",height:e.height})},[s("div",mo,[s("h3",po,p(e.title),1),s("div",fo,[G(l.$slots,"header-actions",{},void 0,!0),s("button",{class:"modal-close",onClick:a},[w(A,{name:"close",size:16})])])]),s("div",yo,[G(l.$slots,"default",{},void 0,!0)])],4)],32)):h("",!0)]),_:3})]))}}),go=M(ho,[["__scopeId","data-v-c68c542d"]]),wo={key:0,class:"json-split"},bo={class:"json-pane"},ko={class:"pane-header"},xo={class:"json-viewer"},$o={class:"json-pane"},_o={class:"pane-header"},So={class:"json-viewer"},To={key:1,class:"json-viewer"},Ro=C({__name:"RawJsonModal",props:{visible:{type:Boolean},title:{},data:{},rewrittenData:{}},emits:["update:visible"],setup(e){const t=e,{copy:o}=_e(),a=g(()=>t.rewrittenData!=null),i=g(()=>{try{return JSON.stringify(t.data,null,2)}catch{return String(t.data)}}),n=g(()=>{if(!t.rewrittenData)return"";try{return JSON.stringify(t.rewrittenData,null,2)}catch{return String(t.rewrittenData)}});function l(){o(i.value)}function f(){o(n.value)}return(v,y)=>(r(),I(go,{visible:e.visible,title:e.title,width:"95vw",height:"95vh","onUpdate:visible":y[0]||(y[0]=k=>v.$emit("update:visible",k))},{"header-actions":O(()=>[a.value?h("",!0):(r(),u("button",{key:0,class:"raw-copy-btn",title:"Copy JSON",onClick:l},[w(A,{name:"copy",size:12}),y[1]||(y[1]=L(" Copy ",-1))]))]),default:O(()=>[a.value?(r(),u("div",wo,[s("div",bo,[s("div",ko,[y[3]||(y[3]=s("span",{class:"pane-label"},"Original",-1)),s("button",{class:"raw-copy-btn",title:"Copy original JSON",onClick:l},[w(A,{name:"copy",size:12}),y[2]||(y[2]=L(" Copy ",-1))])]),s("div",xo,[w(c(me),{data:e.data,deep:5,"show-line-number":!0,"show-icon":!0,"show-length":!0,"collapsed-on-click-brackets":!0},null,8,["data"])])]),y[6]||(y[6]=s("div",{class:"pane-divider"},null,-1)),s("div",$o,[s("div",_o,[y[5]||(y[5]=s("span",{class:"pane-label pane-label-rewritten"},"Rewritten",-1)),s("button",{class:"raw-copy-btn",title:"Copy rewritten JSON",onClick:f},[w(A,{name:"copy",size:12}),y[4]||(y[4]=L(" Copy ",-1))])]),s("div",So,[w(c(me),{data:e.rewrittenData,deep:5,"show-line-number":!0,"show-icon":!0,"show-length":!0,"collapsed-on-click-brackets":!0},null,8,["data"])])])])):(r(),u("div",To,[w(c(me),{data:e.data,deep:5,"show-line-number":!0,"show-icon":!0,"show-length":!0,"collapsed-on-click-brackets":!0},null,8,["data"])]))]),_:1},8,["visible","title"]))}}),Co=M(Ro,[["__scopeId","data-v-ef71cc4a"]]),Mo={class:"detail-panel"},Eo={key:0,class:"detail-empty"},Io={class:"messages-list"},Oo={key:0,class:"response-error"},Bo={class:"error-text"},Lo=C({__name:"DetailPanel",setup(e){const t=Y("historyStore"),o=$(),a=g(()=>t.selectedEntry.value),{visible:i,data:n,rewrittenData:l,title:f}=Rs();Cs();const{truncationPoint:v,hasRewrites:y,rewriteSummary:k,rewrittenIndexList:d,getRewrittenMessage:b,isMessageRewritten:_,isMessageTruncated:R}=Ts(a),N=g(()=>{const m={},x={};if(!a.value)return{resultMap:m,nameMap:x};for(const T of a.value.request.messages??[]){if(Array.isArray(T.content))for(const q of T.content)Ae(q)&&(m[q.tool_use_id]=q),Ve(q)&&(x[q.id]=q.name);if(T.tool_calls)for(const q of T.tool_calls)x[q.id]=q.function.name;T.role==="tool"&&T.tool_call_id&&(m[T.tool_call_id]={type:"tool_result",tool_use_id:T.tool_call_id,content:typeof T.content=="string"?T.content:JSON.stringify(T.content)})}return{resultMap:m,nameMap:x}});Ss({searchQuery:g(()=>t.detailSearch.value),filterType:g(()=>t.detailFilterType.value),aggregateTools:g(()=>t.aggregateTools.value),toolResultMap:g(()=>N.value.resultMap),toolUseNameMap:g(()=>N.value.nameMap),scrollToResult:V,scrollToCall:B});const z=g(()=>{if(!a.value)return[];let x=(a.value.request.messages??[]).map((T,q)=>({msg:T,originalIndex:q}));return t.detailFilterRole.value&&(x=x.filter(({msg:T})=>T.role===t.detailFilterRole.value)),t.showOnlyRewritten.value&&(x=x.filter(({originalIndex:T})=>_(T))),x}),P=g(()=>a.value?.response?.content?a.value.response.content:null),ee=g(()=>a.value?`${(a.value.request.messages??[]).length} messages`:""),F=g(()=>{if(!a.value?.rewrites)return;const m=a.value.rewrites;if(!(!m.rewrittenMessages&&!m.rewrittenSystem))return{...a.value.request,...m.rewrittenMessages&&{messages:m.rewrittenMessages},...m.rewrittenSystem!==void 0&&{system:m.rewrittenSystem}}});function te(m,x){return typeof m.content=="string"?!!(x==="text"||x==="tool_use"&&m.tool_calls?.length):Array.isArray(m.content)?m.content.some(T=>T.type===x):!1}function X(m){m.classList.remove("highlight-flash"),m.offsetWidth,m.classList.add("highlight-flash")}function V(m){const x=document.getElementById("tool-result-"+m);x&&(x.scrollIntoView({behavior:"smooth",block:"center"}),X(x))}function B(m){const x=document.getElementById("tool-use-"+m);x&&(x.scrollIntoView({behavior:"smooth",block:"center"}),X(x))}ye(()=>t.detailSearch.value,m=>{m&&oe(()=>{setTimeout(()=>{const x=document.querySelector(".search-highlight");x&&x.scrollIntoView({behavior:"smooth",block:"center"})},50)})}),ye(a,m=>{m&&oe(()=>{o.value&&o.value.scrollTo(0,o.value.scrollHeight)})});function E(){if(!a.value)return;const m=JSON.stringify(a.value,null,2),x=new Blob([m],{type:"application/json"}),T=URL.createObjectURL(x),q=document.createElement("a");q.href=T;const be=a.value.request.model||"unknown";q.download=`${a.value.id}_${be}.json`,q.click(),URL.revokeObjectURL(T)}return(m,x)=>(r(),u("div",Mo,[c(t).hasSelection.value?a.value?(r(),u(U,{key:1},[w(Fs,{"has-rewrites":c(y),"rewrite-summary":c(k),"rewritten-index-list":c(d),onExport:E},null,8,["has-rewrites","rewrite-summary","rewritten-index-list"]),s("div",{ref_key:"detailBodyRef",ref:o,class:"detail-body"},[w(fe,{title:"Request",badge:ee.value,"raw-data":a.value.request,"rewritten-raw-data":F.value,"raw-title":"Raw — Request"},{default:O(()=>[a.value.request.system?(r(),I(ba,{key:0,system:a.value.request.system,"rewritten-system":a.value.rewrites?.rewrittenSystem,"search-query":c(t).detailSearch.value,"global-view-mode":c(t).detailViewMode.value},null,8,["system","rewritten-system","search-query","global-view-mode"])):h("",!0),s("div",Io,[(r(!0),u(U,null,K(z.value,T=>(r(),u(U,{key:T.originalIndex},[a.value.rewrites?.truncation&&T.originalIndex===c(v)?(r(),I(ra,{key:0,truncation:a.value.rewrites.truncation},null,8,["truncation"])):h("",!0),J(w(Ie,{message:T.msg,index:T.originalIndex,"is-truncated":c(R)(T.originalIndex),"is-rewritten":c(_)(T.originalIndex),"rewritten-message":c(b)(T.originalIndex),"global-view-mode":c(t).detailViewMode.value},null,8,["message","index","is-truncated","is-rewritten","rewritten-message","global-view-mode"]),[[W,!c(t).detailFilterType.value||te(T.msg,c(t).detailFilterType.value)]])],64))),128))])]),_:1},8,["badge","raw-data","rewritten-raw-data"]),P.value||a.value.response?.error?(r(),I(fe,{key:0,title:"Response",badge:P.value?"1 message":"","raw-data":a.value.response,"raw-title":"Raw — Response"},{default:O(()=>[a.value.response?.error?(r(),u("div",Oo,[x[2]||(x[2]=s("span",{class:"error-label"},"Error",-1)),s("span",Bo,p(a.value.response.error),1)])):h("",!0),P.value?(r(),I(Ie,{key:1,message:P.value,index:0},null,8,["message"])):h("",!0)]),_:1},8,["badge","raw-data"])):h("",!0),a.value.sseEvents?.length?(r(),I(Zs,{key:1,events:a.value.sseEvents},null,8,["events"])):h("",!0),w(fe,{title:"Meta","raw-data":a.value,"raw-title":"Raw — Full Entry"},{default:O(()=>[w(ta,{entry:a.value},null,8,["entry"])]),_:1},8,["raw-data"])],512)],64)):h("",!0):(r(),u("div",Eo,[...x[1]||(x[1]=[s("p",null,"Select a request to view details",-1),s("p",{class:"detail-hint"},"Use ↑↓ or j/k to navigate, / to search",-1)])])),w(Co,{visible:c(i),title:c(f),data:c(n),"rewritten-data":c(l),"onUpdate:visible":x[0]||(x[0]=T=>i.value=T)},null,8,["visible","title","data","rewritten-data"])]))}}),Do=M(Lo,[["__scopeId","data-v-5595f986"]]),No={class:"toast-container"},Vo=C({__name:"BaseToast",setup(e){const{messages:t}=$e();return(o,a)=>(r(),I(Oe,{to:"body"},[s("div",No,[w(at,{name:"slide-up"},{default:O(()=>[(r(!0),u(U,null,K(c(t),i=>(r(),u("div",{key:i.id,class:D(["toast-item","toast-"+i.type])},p(i.text),3))),128))]),_:1})])]))}}),Ao=M(Vo,[["__scopeId","data-v-75e1dc4a"]]),qo={class:"app"},zo=C({__name:"App",setup(e){const t=dt();ge("historyStore",t);const o=$();return vt({onNavigate:a=>t.selectAdjacentEntry(a),onSearch:()=>o.value?.focusSearch(),onEscape:()=>t.clearSelection()}),re(()=>t.init()),ne(()=>t.destroy()),(a,i)=>(r(),u("div",qo,[w(Mt),w(jt),w(Ht,null,{left:O(()=>[w(bs,{ref_key:"requestListRef",ref:o},null,512)]),right:O(()=>[w(Do)]),_:1}),w(Ao)]))}}),Uo=M(zo,[["__scopeId","data-v-3c06e93c"]]),jo=ot(Uo);jo.mount("#app");
@@ -4,10 +4,10 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>Request History - Copilot API</title>
7
- <script type="module" crossorigin src="/history/v3/assets/index-BJHz2Wfg.js"></script>
7
+ <script type="module" crossorigin src="/history/v3/assets/index-CpX1BZfT.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="/history/v3/assets/vue-jlQnwi-P.js">
9
9
  <link rel="modulepreload" crossorigin href="/history/v3/assets/vendor-C3jfkhqq.js">
10
- <link rel="stylesheet" crossorigin href="/history/v3/assets/index-DZDkeXE1.css">
10
+ <link rel="stylesheet" crossorigin href="/history/v3/assets/index-B6KgLHOe.css">
11
11
  </head>
12
12
  <body>
13
13
  <div id="app"></div>