@kenz1117/dsh-engram 0.7.2 → 0.7.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/README.en.md +17 -6
- package/README.md +17 -6
- package/lib/client.js +1 -1
- package/lib/client.js.map +1 -1
- package/lib/index.js +754 -94
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
window.__ModuleLoader__.load({id:`@kenz1117/dsh-engram`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});let r=e("react"),i=e("react/jsx-runtime"),a=`@kenz1117/dsh-engram/panel.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(a)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@kenz1117/dsh-engram`,e.dataset.pluginCss=a,e.textContent=`:root{--ease-spring:cubic-bezier(.32, .72, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.36s;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-control:8px;--radius-card:12px;--fs-micro:11px;--fs-body:12px;--fs-ctrl:13px;--fs-display:14px;--fs-tag:10px}.bWwFiW_panel{max-width:1240px;animation:bWwFiW_panelIn var(--dur-slow) var(--ease-out) both;margin:0 auto;position:relative}@keyframes bWwFiW_panelIn{0%{opacity:0;filter:blur(2px);transform:translateY(6px)}to{opacity:1;filter:blur();transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.bWwFiW_header{justify-content:space-between;align-items:center;gap:var(--space-5);row-gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.bWwFiW_headerBrand{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.bWwFiW_headerLogo{border-radius:var(--radius-control);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, var(--dsw-alias-bg-layer-1));border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, var(--dsw-alias-border-l2));width:36px;height:36px;color:var(--dsw-alias-brand-primary);transition:transform var(--dur-base) var(--ease-spring), background var(--dur-base) var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.bWwFiW_headerLogo:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, var(--dsw-alias-bg-layer-1));transform:rotate(-6deg)}.bWwFiW_headerLogo svg{transition:transform var(--dur-slow) var(--ease-spring);display:block}.bWwFiW_headerLogo:hover svg{transform:rotate(6deg)}.bWwFiW_headerTitle{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bWwFiW_headerTitle h2{letter-spacing:-.01em;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:600;overflow:hidden}.bWwFiW_headerTitle p{font-size:var(--fs-body);color:var(--dsw-alias-label-tertiary);margin:0;line-height:1.5}.bWwFiW_headerActions{gap:var(--space-2);flex-shrink:0;align-items:center;display:flex}.bWwFiW_dueBadge{height:28px;padding:0 var(--space-3);border-radius:var(--radius-control);border:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 38%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-primary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);align-items:center;gap:5px;line-height:1;display:inline-flex}.bWwFiW_dueBadge:hover{border-color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 14%, var(--dsw-alias-bg-layer-1))}.bWwFiW_dueBadge:active{transform:scale(.96)}.bWwFiW_dueDot{background:var(--dsw-alias-state-error-primary);border-radius:50%;flex:none;width:6px;height:6px}.bWwFiW_tabs{align-items:flex-end;gap:var(--space-5);border-bottom:1px solid var(--dsw-alias-border-l2);margin-bottom:var(--space-4);display:flex;position:relative}.bWwFiW_tabs:after{content:"";background:var(--dsw-alias-border-l2);height:1px;position:absolute;bottom:-1px;left:0;right:0}.bWwFiW_tabItem{padding:var(--space-2) 0 var(--space-3);color:var(--dsw-alias-label-tertiary);font-size:var(--fs-ctrl);cursor:pointer;transition:color var(--dur-fast) var(--ease-spring);background:0 0;border:0;font-weight:500;position:relative}.bWwFiW_tabItem:hover{color:var(--dsw-alias-label-secondary)}.bWwFiW_tabItem.bWwFiW_on{color:var(--dsw-alias-label-primary)}.bWwFiW_tabItem.bWwFiW_on:after{content:"";background:var(--dsw-alias-brand-primary);height:2px;animation:bWwFiW_tabUnderline var(--dur-base) var(--ease-spring) both;border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0}@keyframes bWwFiW_tabUnderline{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.bWwFiW_tabItem small{margin-left:var(--space-2);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.bWwFiW_tabPanel{animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both}.bWwFiW_drawerScrim{background:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);border-radius:inherit;z-index:40;animation:bWwFiW_scrimIn var(--dur-base) var(--ease-spring) both;position:absolute;inset:0}@keyframes bWwFiW_scrimIn{0%{opacity:0}to{opacity:1}}.bWwFiW_drawer{background:var(--dsw-alias-bg-base);border-left:1px solid var(--dsw-alias-border-l2);width:100%;max-height:100%;box-shadow:-16px 0 40px -16px color-mix(in srgb, var(--dsw-alias-label-primary) 25%, transparent);z-index:41;animation:bWwFiW_drawerIn var(--dur-slow) var(--ease-spring) both;border-radius:inherit;flex-direction:column;display:flex;position:absolute;top:0;bottom:auto;right:0;overflow:hidden}@keyframes bWwFiW_drawerIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.bWwFiW_drawerHead{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--dsw-alias-border-l2);flex-shrink:0;display:flex}.bWwFiW_drawerTitle{align-items:baseline;gap:var(--space-2);flex:1;min-width:0;display:flex}.bWwFiW_drawerTitle h3{font-size:var(--fs-display);color:var(--dsw-alias-label-primary);margin:0;font-weight:600}.bWwFiW_drawerTitle span{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-family:ui-monospace,SF Mono,Menlo,monospace;overflow:hidden}.bWwFiW_drawerClose{border-radius:var(--radius-control);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.bWwFiW_drawerClose:hover{background:var(--dsw-alias-fill-tsp-secondary);border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}.bWwFiW_drawerClose svg{display:block}.bWwFiW_drawerBody{min-height:0;padding:var(--space-4);scrollbar-width:none;flex:1;overflow-y:auto}.bWwFiW_drawerBody::-webkit-scrollbar{display:none}.bWwFiW_reviewGrid{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=720px){.bWwFiW_reviewGrid{grid-template-columns:1fr}}.bWwFiW_button{height:28px;padding:0 var(--space-3);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);cursor:pointer;font-size:var(--fs-body);transition:color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);justify-content:center;align-items:center;gap:5px;line-height:1;display:inline-flex}.bWwFiW_button:hover{color:var(--dsw-alias-label-primary);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 55%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 5%, var(--dsw-alias-bg-layer-1))}.bWwFiW_button:active{transform:scale(.96)}.bWwFiW_button:disabled{opacity:.45;cursor:default;transform:none}.bWwFiW_button.bWwFiW_danger{color:var(--dsw-alias-state-error-primary);border-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 35%, var(--dsw-alias-border-l2))}.bWwFiW_button.bWwFiW_danger:hover{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_button.bWwFiW_primary{background:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-label-primary-foreground)}.bWwFiW_button.bWwFiW_primary:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 88%, transparent);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 88%, transparent);color:var(--dsw-alias-label-primary-foreground);filter:brightness(1.05)}.bWwFiW_button.bWwFiW_primary:disabled{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);opacity:.6;border-color:#0000}.bWwFiW_input{background:var(--dsw-alias-bg-layer-1);height:28px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);transition:border-color var(--dur-fast) var(--ease-spring), box-shadow var(--dur-fast) var(--ease-spring);border-radius:8px;padding:0 10px;font-size:12px;line-height:1}.bWwFiW_input::placeholder{color:var(--dsw-alias-label-tertiary)}.bWwFiW_input:hover{border-color:color-mix(in srgb, var(--dsw-alias-label-primary) 22%, var(--dsw-alias-border-l2))}.bWwFiW_input:focus-visible{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, transparent);outline:none}.bWwFiW_search{flex:1;min-width:120px}select.bWwFiW_input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--dsw-alias-label-tertiary) 50%), linear-gradient(135deg, var(--dsw-alias-label-tertiary) 50%, transparent 50%);transition:background-position var(--dur-fast) var(--ease-spring);background-position:calc(100% - 13px) 12px,calc(100% - 8px) 12px;background-repeat:no-repeat;background-size:5px 5px;padding-right:24px}.bWwFiW_segGroup{background:var(--dsw-alias-fill-tsp-secondary);border-radius:9px;gap:2px;padding:2px;display:inline-flex;position:relative}.bWwFiW_segItem{height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font-size:var(--fs-body);transition:color var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);z-index:1;white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;padding:0 12px;line-height:1;display:inline-flex;position:relative}.bWwFiW_segItem:hover{color:var(--dsw-alias-label-secondary)}.bWwFiW_segItem:active{transform:scale(.96)}.bWwFiW_segItem.bWwFiW_on{color:var(--dsw-alias-label-primary)}.bWwFiW_segIndicator{z-index:0;background:var(--dsw-alias-bg-layer-1);box-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-label-primary) 10%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-border-l2) 60%, transparent);transition:left var(--dur-base) var(--ease-spring), width var(--dur-base) var(--ease-spring), opacity var(--dur-fast) var(--ease-spring);pointer-events:none;border-radius:7px;position:absolute;top:2px;bottom:2px}.bWwFiW_segScope{border-radius:10px;padding:3px}.bWwFiW_layout{gap:var(--space-5);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.bWwFiW_mainCol{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.bWwFiW_sideCol{gap:var(--space-4);min-width:0;top:var(--space-3);flex-direction:column;display:flex;position:sticky}@media (width<=960px){.bWwFiW_layout{gap:var(--space-4);grid-template-columns:1fr}.bWwFiW_sideCol{position:static}.bWwFiW_teleBar{flex-wrap:wrap}}.bWwFiW_filters{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_filters .bWwFiW_segGroup{flex:none}.bWwFiW_filters .bWwFiW_search{flex:1;min-width:160px}.bWwFiW_exportWrap{display:inline-flex;position:relative}.bWwFiW_exportCaret{opacity:.7;transition:transform var(--dur-fast) var(--ease-spring);margin-left:4px;font-size:9px}.bWwFiW_exportWrap button[aria-expanded=true] .bWwFiW_exportCaret{transform:rotate(180deg)}.bWwFiW_exportMenu{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);min-width:220px;box-shadow:0 8px 24px -10px color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);z-index:30;animation:bWwFiW_drawerIn var(--dur-base) var(--ease-spring) both;border-radius:10px;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.bWwFiW_exportItem{color:var(--dsw-alias-label-primary);transition:background var(--dur-fast) var(--ease-spring);border-radius:7px;flex-direction:column;gap:2px;padding:8px 10px;text-decoration:none;display:flex}.bWwFiW_exportItem:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, var(--dsw-alias-bg-layer-1))}.bWwFiW_exportItemLabel{font-size:13px;font-weight:500;line-height:1.2}.bWwFiW_exportItemHint{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1.3}.bWwFiW_batchBar{bottom:var(--space-3);z-index:5;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, var(--dsw-alias-border-l2));border-radius:var(--radius-card);box-shadow:0 8px 24px -12px color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);animation:bWwFiW_barUp var(--dur-base) var(--ease-spring) both;flex-wrap:wrap;align-items:center;display:flex;position:sticky}@keyframes bWwFiW_barUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.bWwFiW_batchBar>span{color:var(--dsw-alias-label-primary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;margin-right:auto}.bWwFiW_batchBar .bWwFiW_button{height:26px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_itemList{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_item{gap:var(--space-3);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);transform-origin:top;transition:border-color var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring), box-shadow var(--dur-base) var(--ease-spring);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;display:grid}@keyframes bWwFiW_itemIn{0%{opacity:0;transform:translateY(4px)scale(.995)}to{opacity:1;transform:none}}.bWwFiW_item:hover{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, var(--dsw-alias-border-l2));box-shadow:0 4px 14px -8px color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, transparent);transform:translateY(-1px)}.bWwFiW_item.bWwFiW_selected{border-color:var(--dsw-alias-brand-primary);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 4%, var(--dsw-alias-bg-layer-1))}.bWwFiW_itemCheck{width:14px;height:14px;accent-color:var(--dsw-alias-brand-primary);cursor:pointer;transition:transform 80ms var(--ease-spring);margin-top:3px}.bWwFiW_itemCheck:active{transform:scale(.85)}.bWwFiW_itemBody{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bWwFiW_itemTags{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_content{white-space:pre-wrap;word-break:break-word;color:var(--dsw-alias-label-primary);font-size:var(--fs-ctrl);-webkit-line-clamp:4;-webkit-box-orient:vertical;line-height:1.65;display:-webkit-box;overflow:hidden}.bWwFiW_itemMeta{gap:var(--space-2);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_itemMeta b{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-weight:500}.bWwFiW_itemOps{gap:var(--space-1);flex-direction:column;flex-shrink:0;align-items:stretch;display:flex}.bWwFiW_itemOps .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_pill{height:18px;font-size:var(--fs-tag);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 14%, transparent);color:var(--dsw-alias-label-secondary);white-space:nowrap;animation:bWwFiW_pillIn var(--dur-base) var(--ease-spring) both;transition:transform var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring);border-radius:999px;align-items:center;padding:0 7px;line-height:1;display:inline-flex}@keyframes bWwFiW_pillIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.bWwFiW_pill:hover{transform:translateY(-1px)}.bWwFiW_pill.bWwFiW_kind{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);color:var(--dsw-alias-brand-primary)}.bWwFiW_pill.bWwFiW_statusActive{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent);color:var(--dsw-alias-state-success-primary)}.bWwFiW_pill.bWwFiW_statusArchived{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);color:var(--dsw-alias-state-warn-primary)}.bWwFiW_pill.bWwFiW_statusForgotten{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);color:var(--dsw-alias-state-error-primary)}.bWwFiW_pill.bWwFiW_outcomeSuccess{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent);color:var(--dsw-alias-state-success-primary)}.bWwFiW_pill.bWwFiW_outcomeFailure{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);color:var(--dsw-alias-state-error-primary)}.bWwFiW_pill.bWwFiW_redacted{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);color:var(--dsw-alias-state-warn-primary)}.bWwFiW_expand{border-top:1px dashed var(--dsw-alias-border-l2);animation:bWwFiW_expandIn var(--dur-slow) var(--ease-spring) both;grid-column:1/-1;margin-top:4px;padding-top:10px;overflow:hidden}@keyframes bWwFiW_expandIn{0%{opacity:0;max-height:0;transform:translateY(-4px)}to{opacity:1;max-height:1200px;transform:none}}.bWwFiW_expandLoading{color:var(--dsw-alias-label-tertiary);animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both;padding:6px 0;font-size:12px}@keyframes bWwFiW_fadeSoft{0%{opacity:0}to{opacity:1}}.bWwFiW_attrGrid{grid-template-columns:max-content 1fr;align-items:center;gap:6px 14px;font-size:12px;display:grid}.bWwFiW_attrGrid>dt{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px}.bWwFiW_attrGrid>dd{color:var(--dsw-alias-label-primary);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.bWwFiW_relBlock{margin-top:10px}.bWwFiW_relBlock>h5{color:var(--dsw-alias-label-tertiary);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:500}.bWwFiW_relChips{flex-wrap:wrap;gap:4px;display:flex}.bWwFiW_relChip{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-base);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:100%;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;overflow:hidden}.bWwFiW_timeline{margin:var(--space-2) 0 0;padding:0 0 0 var(--space-3);list-style:none;position:relative}.bWwFiW_timeline:before{background:var(--dsw-alias-border-l2);content:"";width:1px;position:absolute;top:6px;bottom:6px;left:3px}.bWwFiW_timeline li{padding:var(--space-1) 0 var(--space-1) var(--space-3);font-size:var(--fs-micro);color:var(--dsw-alias-label-secondary);line-height:1.55;position:relative}.bWwFiW_timeline li:before{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-brand-primary);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:-10px}.bWwFiW_editForm{flex-direction:column;gap:10px;display:flex}.bWwFiW_editForm .bWwFiW_input{box-sizing:border-box;width:100%}.bWwFiW_editForm textarea.bWwFiW_input{resize:vertical;height:auto;min-height:64px;padding:8px 10px;line-height:1.55}.bWwFiW_fieldLabel{color:var(--dsw-alias-label-secondary);margin-bottom:4px;font-size:11px;display:block}.bWwFiW_fieldRow{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.bWwFiW_fieldRow .bWwFiW_fieldLabel{flex:1;min-width:120px}.bWwFiW_fieldRow input[type=range]{accent-color:var(--dsw-alias-brand-primary);width:100%}.bWwFiW_modalFoot{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.bWwFiW_pager{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-1) 0;color:var(--dsw-alias-label-secondary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both;justify-content:center;align-items:center;display:flex}.bWwFiW_pager .bWwFiW_button{width:28px;transition:transform var(--dur-fast) var(--ease-spring), opacity var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring);padding:0}.bWwFiW_pager .bWwFiW_button:not(:disabled):hover{transform:translateY(-1px)}.bWwFiW_pager .bWwFiW_button:disabled{opacity:.3}.bWwFiW_skeletonList{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_skeleton{border-radius:var(--radius-control);border:1px solid var(--dsw-alias-border-l2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-layer-1);gap:var(--space-2);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both;flex-direction:column;display:flex}.bWwFiW_skeleton i{background:linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-label-tertiary) 10%, transparent) 25%, color-mix(in srgb, var(--dsw-alias-label-tertiary) 22%, transparent) 50%, color-mix(in srgb, var(--dsw-alias-label-tertiary) 10%, transparent) 75%);background-size:200% 100%;border-radius:4px;height:10px;animation:1.6s linear infinite bWwFiW_shimmer;display:block}.bWwFiW_skeleton i:first-child{width:30%}.bWwFiW_skeleton i:nth-child(2){width:80%;animation-delay:80ms}.bWwFiW_skeleton i:last-child{width:55%;animation-delay:.16s}@keyframes bWwFiW_shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.bWwFiW_empty{text-align:center;color:var(--dsw-alias-label-secondary);font-size:var(--fs-ctrl);animation:bWwFiW_fadeSoft var(--dur-slow) var(--ease-spring) both;padding:56px 16px}.bWwFiW_empty b{color:var(--dsw-alias-label-primary);font-size:var(--fs-display);margin-bottom:var(--space-1);font-weight:500;display:block}.bWwFiW_empty span{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-body)}.bWwFiW_empty:before{content:"";border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 35%, var(--dsw-alias-border-l2));background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, transparent), transparent 70%);width:36px;height:36px;animation:bWwFiW_floaty 6s var(--ease-in-out) infinite;border-radius:10px;margin:0 auto 14px;display:block}@keyframes bWwFiW_floaty{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-3px)rotate(2deg)}}.bWwFiW_panelCard{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-card);padding:var(--space-4);animation:bWwFiW_cardIn var(--dur-slow) var(--ease-spring) both;transition:border-color var(--dur-base) var(--ease-spring);position:relative}@keyframes bWwFiW_cardIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:none}}.bWwFiW_panelCard:hover{border-color:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, var(--dsw-alias-border-l2))}.bWwFiW_panelCard+.bWwFiW_panelCard{animation-delay:60ms}.bWwFiW_panelCardTitle{justify-content:space-between;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);padding-left:var(--space-3);border-left:2px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 60%, var(--dsw-alias-border-l2));font-size:var(--fs-body);letter-spacing:-.005em;color:var(--dsw-alias-label-primary);font-weight:600;display:flex}.bWwFiW_panelCardTitle h4{font-size:inherit;font-weight:inherit;margin:0}.bWwFiW_panelCardTitle:after{display:none}.bWwFiW_benchBar{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.bWwFiW_benchBar .bWwFiW_search{flex:1;min-width:0}.bWwFiW_benchBar .bWwFiW_button{flex:none}.bWwFiW_benchMeta{gap:var(--space-3);margin-bottom:var(--space-2);color:var(--dsw-alias-label-tertiary);font-size:var(--fs-micro);flex-wrap:wrap;align-items:baseline;display:flex}.bWwFiW_degradedNote{color:var(--dsw-alias-state-warn-primary)}.bWwFiW_benchEmpty{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-body);padding:var(--space-2) 0}.bWwFiW_benchList{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_benchRow{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-base);transition:border-color var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both}.bWwFiW_benchRow:hover{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, var(--dsw-alias-border-l2));transform:translate(2px)}.bWwFiW_benchHead{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_benchHead .bWwFiW_pill{font-size:var(--fs-tag);height:16px;padding:0 6px}.bWwFiW_viaChip{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-fill-tsp-secondary);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-tag);border-radius:4px;height:16px;padding:0 6px;line-height:16px}.bWwFiW_benchScore{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;margin-left:auto}.bWwFiW_benchContent{margin:var(--space-2) 0;color:var(--dsw-alias-label-primary);font-size:var(--fs-body);word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.bWwFiW_benchId{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.bWwFiW_actScope{margin-right:var(--space-1);font-size:var(--fs-tag);color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-fill-tsp-secondary);border-radius:4px;flex:none;padding:0 6px;line-height:14px}.bWwFiW_actTime{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;margin-right:var(--space-2);flex:none}.bWwFiW_actBody{color:var(--dsw-alias-label-secondary);font-size:var(--fs-micro);-webkit-line-clamp:3;word-break:break-word;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.bWwFiW_activityList{max-height:280px;padding-right:var(--space-2);scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--dsw-alias-label-tertiary) 35%, transparent) transparent;padding-bottom:16px;overflow-y:auto;-webkit-mask-image:linear-gradient(#000 calc(100% - 16px),#0000);mask-image:linear-gradient(#000 calc(100% - 16px),#0000)}.bWwFiW_activityList::-webkit-scrollbar{width:6px}.bWwFiW_activityList::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 35%, transparent);border-radius:3px}.bWwFiW_activityList::-webkit-scrollbar-track{background:0 0}.bWwFiW_mapWrap{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_map{background:color-mix(in srgb, var(--dsw-alias-bg-base) 70%, transparent);border-radius:var(--radius-control);border:1px solid var(--dsw-alias-border-l2);user-select:none;width:100%;height:auto;display:block}.bWwFiW_node{cursor:grab;transition:transform var(--dur-fast) var(--ease-spring)}.bWwFiW_node:active{cursor:grabbing}.bWwFiW_tooltip{pointer-events:none}.bWwFiW_legend{gap:var(--space-3);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_legendItem{align-items:center;gap:var(--space-1);display:inline-flex}.bWwFiW_legendDot{border-radius:50%;width:8px;height:8px;display:inline-block}.bWwFiW_node,.bWwFiW_edgeFade{animation:bWwFiW_corridorFadeIn var(--dur-slow) var(--ease-spring) backwards}@keyframes bWwFiW_corridorFadeIn{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}.bWwFiW_health{gap:var(--space-4);align-items:center;display:flex}.bWwFiW_healthScore{align-items:baseline;gap:var(--space-1);padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);font-variant-numeric:tabular-nums;flex-shrink:0;display:flex}.bWwFiW_healthScore b{letter-spacing:-.02em;font-size:24px;font-weight:600;line-height:1}.bWwFiW_healthScore span{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary)}.bWwFiW_healthScoreGood{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-success-primary)}.bWwFiW_healthScoreGood span{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 70%, var(--dsw-alias-label-tertiary))}.bWwFiW_healthScoreMid{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-warn-primary)}.bWwFiW_healthScoreMid span{color:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 70%, var(--dsw-alias-label-tertiary))}.bWwFiW_healthScoreLow{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-state-error-primary)}.bWwFiW_healthScoreLow span{color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 70%, var(--dsw-alias-label-tertiary))}.bWwFiW_healthMetrics{gap:var(--space-2) var(--space-4);flex:1;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));min-width:0;display:grid}.bWwFiW_healthMetric{min-width:0}.bWwFiW_healthMetricHead{font-size:var(--fs-micro);margin-bottom:var(--space-1);color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:baseline;display:flex}.bWwFiW_healthMetricHead b{color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-weight:500}.bWwFiW_healthMetricBar{background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 18%, transparent);border-radius:2px;height:4px;overflow:hidden}.bWwFiW_healthMetricBar i{background:var(--dsw-alias-brand-primary);height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:2px;display:block}.bWwFiW_teleBar{gap:var(--space-5);flex-wrap:wrap;align-items:stretch;display:flex}.bWwFiW_teleCol{gap:var(--space-2);flex-direction:column;flex:1 1 0;min-width:0;display:flex}.bWwFiW_teleColLabel{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);letter-spacing:.02em}.bWwFiW_teleGrid{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.bWwFiW_teleGridRecent{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense}.bWwFiW_teleStat{align-items:baseline;gap:var(--space-1);min-width:0;display:flex}.bWwFiW_teleStat b{letter-spacing:-.02em;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:20px;line-height:1.15}.bWwFiW_teleStat span{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);white-space:nowrap}.bWwFiW_telePrivacy{align-items:center;gap:var(--space-1);border-radius:var(--radius-control);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);cursor:help;transition:background var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;outline:none;align-self:center;padding:4px 8px;display:inline-flex;position:relative}.bWwFiW_telePrivacy:hover,.bWwFiW_telePrivacy:focus-visible{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-fill-tsp-secondary);border-color:var(--dsw-alias-border-l2)}.bWwFiW_telePrivacy svg{opacity:.85;flex:none}.bWwFiW_telePrivacyHint{white-space:nowrap}.bWwFiW_telePrivacyTip{min-width:260px;max-width:320px;padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);box-shadow:0 6px 18px -8px color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);font-size:var(--fs-body);color:var(--dsw-alias-label-primary);white-space:normal;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);z-index:5;text-align:left;line-height:1.5;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-2px)}.bWwFiW_telePrivacy:hover .bWwFiW_telePrivacyTip,.bWwFiW_telePrivacy:focus-visible .bWwFiW_telePrivacyTip{opacity:1;transform:translateY(0)}.bWwFiW_timeline li{animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both}.bWwFiW_timeline li:nth-child(2){animation-delay:40ms}.bWwFiW_timeline li:nth-child(3){animation-delay:80ms}.bWwFiW_timeline li:nth-child(4){animation-delay:.12s}.bWwFiW_timeline li:nth-child(5){animation-delay:.16s}.bWwFiW_timeline li:nth-child(n+6){animation-delay:.2s}.bWwFiW_tourProposal{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_tourFocusRow{gap:var(--space-1);padding-bottom:var(--space-2);border-bottom:1px dashed var(--dsw-alias-border-l2);flex-wrap:wrap;display:flex}.bWwFiW_tourFocusChip{font-size:var(--fs-micro);letter-spacing:.04em;padding:3px var(--space-2);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring);background:0 0;border-radius:999px}.bWwFiW_tourFocusChip:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 6%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-secondary)}.bWwFiW_tourFocusChipOn{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, var(--dsw-alias-bg-layer-1));border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, var(--dsw-alias-border-l2));color:var(--dsw-alias-label-primary)}.bWwFiW_tourFocusChipOn:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 20%, var(--dsw-alias-bg-layer-1))}.bWwFiW_tourGreeting{font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);margin:0;line-height:1.55}.bWwFiW_tourStops{gap:var(--space-1);counter-reset:tour;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_tourStops li{animation:bWwFiW_tourItemIn var(--dur-base) var(--ease-spring) backwards}.bWwFiW_tourStops li:nth-child(2){animation-delay:40ms}.bWwFiW_tourStops li:nth-child(3){animation-delay:80ms}.bWwFiW_tourStops li:nth-child(4){animation-delay:.12s}.bWwFiW_tourStops li:nth-child(n+5){animation-delay:.16s}.bWwFiW_tourStop{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-control);color:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;display:flex}.bWwFiW_tourStop:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 6%, var(--dsw-alias-bg-layer-1));border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 28%, var(--dsw-alias-border-l2));transform:translate(2px)}.bWwFiW_tourStop:active{transform:translate(2px)scale(.99)}@keyframes bWwFiW_tourItemIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.bWwFiW_tourStopIndex{width:20px;height:20px;font-size:var(--fs-micro);color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-brand-primary);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.bWwFiW_tourStopBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bWwFiW_tourStopKind{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);letter-spacing:.04em;text-transform:uppercase}.bWwFiW_tourStopText{font-size:var(--fs-body);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}.bWwFiW_tourHint{margin:var(--space-1) 0 0;font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);line-height:1.4}.bWwFiW_refurb{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_refurbHead{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.bWwFiW_refurbHead .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_refurbCount{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.bWwFiW_refurbList{gap:var(--space-1);animation:bWwFiW_refurbReflow var(--dur-slow) var(--ease-spring) backwards;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_refurbItem{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-fill-tsp-secondary);border-radius:var(--radius-control);font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);animation:bWwFiW_refurbItemIn var(--dur-base) var(--ease-spring) backwards;flex-wrap:wrap;display:flex}.bWwFiW_refurbItem:nth-child(2){animation-delay:40ms}.bWwFiW_refurbItem:nth-child(3){animation-delay:80ms}.bWwFiW_refurbItem:nth-child(4){animation-delay:.12s}.bWwFiW_refurbItem:nth-child(n+5){animation-delay:.16s}@keyframes bWwFiW_refurbReflow{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}@keyframes bWwFiW_refurbItemIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.bWwFiW_refurbBadge{padding:2px var(--space-2);font-size:var(--fs-micro);letter-spacing:.04em;background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, var(--dsw-alias-bg-layer-1));border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, var(--dsw-alias-border-l2));color:var(--dsw-alias-label-primary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring);border-radius:999px;flex:none;font-weight:600}.bWwFiW_refurbBadge:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, var(--dsw-alias-bg-layer-1))}.bWwFiW_refurbReason{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:120px;line-height:1.45;display:-webkit-box;overflow:hidden}.bWwFiW_refurbConfidence{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}.bWwFiW_refurbExec{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro);flex:none;line-height:1}.bWwFiW_reviewQueue{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_reviewItem{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-fill-tsp-secondary);border-radius:var(--radius-control);animation:bWwFiW_refurbItemIn var(--dur-base) var(--ease-spring) backwards;flex-direction:column;display:flex}.bWwFiW_reviewCue{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.bWwFiW_reviewSlot{font-size:var(--fs-micro);color:var(--dsw-alias-brand-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.bWwFiW_reviewCaption{min-width:100px;font-size:var(--fs-body);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;line-height:1.4;overflow:hidden}.bWwFiW_reviewOverdue{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}.bWwFiW_reviewContent{font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);padding:var(--space-2);background:var(--dsw-alias-bg-layer-1);border-radius:var(--radius-control);word-break:break-word;line-height:1.5}.bWwFiW_reviewGrades{gap:var(--space-2);display:flex}.bWwFiW_reviewGrades .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_toastViewport{top:var(--space-4);right:var(--space-4);z-index:9999;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:min(360px,100vw - 32px);display:flex;position:fixed}.bWwFiW_toast{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-card);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:0 6px 18px -8px color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);font-size:var(--fs-body);color:var(--dsw-alias-label-primary);pointer-events:auto;animation:bWwFiW_toastIn var(--dur-base) var(--ease-spring) both;line-height:1.5;display:flex}.bWwFiW_toastBody{word-break:break-word;flex:1;min-width:0}.bWwFiW_toastDismiss{color:var(--dsw-alias-label-tertiary);cursor:pointer;padding:0 var(--space-1);transition:color var(--dur-fast) var(--ease-spring);background:0 0;border:none;font-size:16px;line-height:1}.bWwFiW_toastDismiss:hover{color:var(--dsw-alias-label-primary)}.bWwFiW_toastInfo{border-left:3px solid var(--dsw-alias-brand-primary)}.bWwFiW_toastSuccess{border-left:3px solid color-mix(in srgb, var(--dsw-alias-state-success-primary,#2da44e) 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-success-primary,#2da44e) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_toastError{border-left:3px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_toastWarning{border-left:3px solid color-mix(in srgb, #d4a017 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, #d4a017 6%, var(--dsw-alias-bg-layer-1))}@keyframes bWwFiW_toastIn{0%{opacity:0;transform:translate(8px)scale(.98)}to{opacity:1;transform:none}}`,document.head.appendChild(e)}var o={drawerBody:`bWwFiW_drawerBody`,refurb:`bWwFiW_refurb`,on:`bWwFiW_on`,tabPanel:`bWwFiW_tabPanel`,skeletonList:`bWwFiW_skeletonList`,toastInfo:`bWwFiW_toastInfo`,panelIn:`bWwFiW_panelIn`,map:`bWwFiW_map`,exportMenu:`bWwFiW_exportMenu`,itemBody:`bWwFiW_itemBody`,expandLoading:`bWwFiW_expandLoading`,tourFocusChip:`bWwFiW_tourFocusChip`,exportItemHint:`bWwFiW_exportItemHint`,reviewQueue:`bWwFiW_reviewQueue`,reviewCaption:`bWwFiW_reviewCaption`,exportItem:`bWwFiW_exportItem`,tabs:`bWwFiW_tabs`,panelCard:`bWwFiW_panelCard`,toastIn:`bWwFiW_toastIn`,input:`bWwFiW_input`,headerLogo:`bWwFiW_headerLogo`,outcomeSuccess:`bWwFiW_outcomeSuccess`,teleColLabel:`bWwFiW_teleColLabel`,barUp:`bWwFiW_barUp`,skeleton:`bWwFiW_skeleton`,modalFoot:`bWwFiW_modalFoot`,drawerClose:`bWwFiW_drawerClose`,tourStopKind:`bWwFiW_tourStopKind`,reviewSlot:`bWwFiW_reviewSlot`,header:`bWwFiW_header`,benchMeta:`bWwFiW_benchMeta`,drawerTitle:`bWwFiW_drawerTitle`,outcomeFailure:`bWwFiW_outcomeFailure`,shimmer:`bWwFiW_shimmer`,statusArchived:`bWwFiW_statusArchived`,refurbExec:`bWwFiW_refurbExec`,toastDismiss:`bWwFiW_toastDismiss`,reviewGrid:`bWwFiW_reviewGrid`,relBlock:`bWwFiW_relBlock`,tourFocusRow:`bWwFiW_tourFocusRow`,primary:`bWwFiW_primary`,tooltip:`bWwFiW_tooltip`,tourStop:`bWwFiW_tourStop`,refurbConfidence:`bWwFiW_refurbConfidence`,headerTitle:`bWwFiW_headerTitle`,dueBadge:`bWwFiW_dueBadge`,actScope:`bWwFiW_actScope`,batchBar:`bWwFiW_batchBar`,fadeSoft:`bWwFiW_fadeSoft`,itemList:`bWwFiW_itemList`,tourStopText:`bWwFiW_tourStopText`,floaty:`bWwFiW_floaty`,refurbHead:`bWwFiW_refurbHead`,redacted:`bWwFiW_redacted`,benchRow:`bWwFiW_benchRow`,reviewCue:`bWwFiW_reviewCue`,relChips:`bWwFiW_relChips`,benchId:`bWwFiW_benchId`,tourFocusChipOn:`bWwFiW_tourFocusChipOn`,actBody:`bWwFiW_actBody`,drawerIn:`bWwFiW_drawerIn`,viaChip:`bWwFiW_viaChip`,health:`bWwFiW_health`,drawer:`bWwFiW_drawer`,benchScore:`bWwFiW_benchScore`,benchHead:`bWwFiW_benchHead`,healthScoreGood:`bWwFiW_healthScoreGood`,benchList:`bWwFiW_benchList`,tourProposal:`bWwFiW_tourProposal`,refurbItem:`bWwFiW_refurbItem`,telePrivacyHint:`bWwFiW_telePrivacyHint`,actTime:`bWwFiW_actTime`,relChip:`bWwFiW_relChip`,kind:`bWwFiW_kind`,legendDot:`bWwFiW_legendDot`,benchEmpty:`bWwFiW_benchEmpty`,filters:`bWwFiW_filters`,itemIn:`bWwFiW_itemIn`,tourStopBody:`bWwFiW_tourStopBody`,attrGrid:`bWwFiW_attrGrid`,itemOps:`bWwFiW_itemOps`,danger:`bWwFiW_danger`,mapWrap:`bWwFiW_mapWrap`,itemCheck:`bWwFiW_itemCheck`,reviewContent:`bWwFiW_reviewContent`,segItem:`bWwFiW_segItem`,pill:`bWwFiW_pill`,selected:`bWwFiW_selected`,empty:`bWwFiW_empty`,pager:`bWwFiW_pager`,edgeFade:`bWwFiW_edgeFade`,tabItem:`bWwFiW_tabItem`,segIndicator:`bWwFiW_segIndicator`,teleCol:`bWwFiW_teleCol`,mainCol:`bWwFiW_mainCol`,refurbItemIn:`bWwFiW_refurbItemIn`,benchContent:`bWwFiW_benchContent`,statusForgotten:`bWwFiW_statusForgotten`,healthScore:`bWwFiW_healthScore`,reviewItem:`bWwFiW_reviewItem`,pillIn:`bWwFiW_pillIn`,item:`bWwFiW_item`,sideCol:`bWwFiW_sideCol`,exportWrap:`bWwFiW_exportWrap`,panelCardTitle:`bWwFiW_panelCardTitle`,teleGrid:`bWwFiW_teleGrid`,tourStops:`bWwFiW_tourStops`,toastSuccess:`bWwFiW_toastSuccess`,benchBar:`bWwFiW_benchBar`,healthMetric:`bWwFiW_healthMetric`,refurbList:`bWwFiW_refurbList`,expand:`bWwFiW_expand`,headerActions:`bWwFiW_headerActions`,legendItem:`bWwFiW_legendItem`,timeline:`bWwFiW_timeline`,healthScoreLow:`bWwFiW_healthScoreLow`,teleGridRecent:`bWwFiW_teleGridRecent`,segGroup:`bWwFiW_segGroup`,telePrivacyTip:`bWwFiW_telePrivacyTip`,statusActive:`bWwFiW_statusActive`,tourStopIndex:`bWwFiW_tourStopIndex`,tourGreeting:`bWwFiW_tourGreeting`,toastBody:`bWwFiW_toastBody`,layout:`bWwFiW_layout`,reviewGrades:`bWwFiW_reviewGrades`,healthMetricBar:`bWwFiW_healthMetricBar`,legend:`bWwFiW_legend`,refurbCount:`bWwFiW_refurbCount`,tourHint:`bWwFiW_tourHint`,refurbBadge:`bWwFiW_refurbBadge`,toastError:`bWwFiW_toastError`,exportCaret:`bWwFiW_exportCaret`,telePrivacy:`bWwFiW_telePrivacy`,refurbReflow:`bWwFiW_refurbReflow`,reviewOverdue:`bWwFiW_reviewOverdue`,healthMetricHead:`bWwFiW_healthMetricHead`,editForm:`bWwFiW_editForm`,toastWarning:`bWwFiW_toastWarning`,node:`bWwFiW_node`,healthMetrics:`bWwFiW_healthMetrics`,headerBrand:`bWwFiW_headerBrand`,segScope:`bWwFiW_segScope`,cardIn:`bWwFiW_cardIn`,expandIn:`bWwFiW_expandIn`,drawerHead:`bWwFiW_drawerHead`,itemMeta:`bWwFiW_itemMeta`,exportItemLabel:`bWwFiW_exportItemLabel`,panel:`bWwFiW_panel`,fieldRow:`bWwFiW_fieldRow`,refurbReason:`bWwFiW_refurbReason`,scrimIn:`bWwFiW_scrimIn`,content:`bWwFiW_content`,corridorFadeIn:`bWwFiW_corridorFadeIn`,teleStat:`bWwFiW_teleStat`,dueDot:`bWwFiW_dueDot`,search:`bWwFiW_search`,button:`bWwFiW_button`,itemTags:`bWwFiW_itemTags`,activityList:`bWwFiW_activityList`,toastViewport:`bWwFiW_toastViewport`,drawerScrim:`bWwFiW_drawerScrim`,teleBar:`bWwFiW_teleBar`,tabUnderline:`bWwFiW_tabUnderline`,degradedNote:`bWwFiW_degradedNote`,healthScoreMid:`bWwFiW_healthScoreMid`,toast:`bWwFiW_toast`,fieldLabel:`bWwFiW_fieldLabel`,tourItemIn:`bWwFiW_tourItemIn`};let s={fact:`#5b8def`,preference:`#f0a85c`,decision:`#9b6bd9`,episode:`#3cb489`,skill:`#e26b86`},c={fact:`事实层`,preference:`偏好层`,decision:`决策层`,episode:`事件层`,skill:`技能层`},l={related:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},refines:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},supports:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},supersedes:{color:`rgba(91, 141, 239, 0.85)`,dash:void 0,width:1.8},contradicts:{color:`rgba(226, 107, 134, 0.9)`,dash:`4 4`,width:1.4}};function u(e){return Math.max(4,Math.min(14,4+10*e.importance*e.confidence))}function d(e,t,n,r,i){let a=.003;for(let t=0;t<e.length;t+=1){let n=e[t];for(let r=t+1;r<e.length;r+=1){let t=e[r],a=n.x-t.x,o=n.y-t.y,s=Math.sqrt(a*a+o*o)+.01,c=4800*i/(s*s),l=a/s*c,u=o/s*c;n.vx+=l,n.vy+=u,t.vx-=l,t.vy-=u}}let o=new Map(e.map(e=>[e.id,e]));for(let e of t){let t=o.get(e.from),n=o.get(e.to);if(t===void 0||n===void 0)continue;let r=n.x-t.x,a=n.y-t.y,s=Math.sqrt(r*r+a*a)+.01,c=(s-64)*.04*i,l=r/s*c,u=a/s*c;t.vx+=l,t.vy+=u,n.vx-=l,n.vy-=u}let s=[...new Set(e.map(e=>e.kind))],c=n/Math.max(s.length,1);for(let t of e){if(t.fixed)continue;t.vx+=(n/2-t.x)*a*i,t.vy+=(r/2-t.y)*a*i;let e=s.indexOf(t.kind);if(e>=0){let n=c*(e+.5);t.vx+=(n-t.x)*.005*i}}let l=.82;for(let t of e){if(t.fixed){t.vx=0,t.vy=0;continue}t.vx*=l,t.vy*=l,t.x=Math.max(20,Math.min(n-20,t.x+t.vx)),t.y=Math.max(20,Math.min(r-20,t.y+t.vy))}}function f(e){let{scope:t,nodes:n,edges:a,onSelect:f,selectedId:p}=e,m=(0,r.useMemo)(()=>{let e=new Map;for(let t of n)e.set(t.id,new Set);for(let t of a)e.has(t.from)||e.set(t.from,new Set),e.has(t.to)||e.set(t.to,new Set),e.get(t.from).add(t.to),e.get(t.to).add(t.from);return e},[n,a]),h=(0,r.useMemo)(()=>{let e=[...new Set(n.map(e=>e.kind))],t=560/Math.max(e.length,1);return n.map((n,r)=>({...n,x:e.indexOf(n.kind)>=0?t*(e.indexOf(n.kind)+.5):280,y:30+r*47%260,vx:0,vy:0,r:u(n),fixed:!1}))},[n,560,320]),g=(0,r.useRef)(h.map(e=>({...e}))),[,_]=(0,r.useState)(0),v=(0,r.useRef)(null),y=(0,r.useRef)(0);(0,r.useEffect)(()=>{g.current=h.map(e=>({...e})),y.current=0,_(e=>e+1)},[h]),(0,r.useEffect)(()=>{let e=()=>{let t=g.current;y.current+=1;let n=Math.max(.1,1-y.current/280*.9);d(t,a,560,320,n),g.current=t.map(e=>({...e})),_(e=>e+1),y.current<280&&(v.current=requestAnimationFrame(e))};return v.current=requestAnimationFrame(e),()=>{v.current!==null&&cancelAnimationFrame(v.current)}},[h,a]);let b=g.current,x=(0,r.useMemo)(()=>new Map(b.map(e=>[e.id,e])),[b]),S=(0,r.useMemo)(()=>[...new Set(n.map(e=>e.kind))],[n]),[C,w]=(0,r.useState)(null),T=(0,r.useMemo)(()=>C===null?null:m.get(C)??new Set,[C,m]),E=e=>C!==null&&e!==C&&!(T?.has(e)??!1),D=e=>C===null?!1:e.from===C||e.to===C,O=(0,r.useRef)(null),k=(0,r.useRef)(null),A=(e,t)=>{let n=O.current;if(n===null)return null;let r=n.getBoundingClientRect(),i=560/r.width,a=320/r.height;return{x:(e-r.left)*i,y:(t-r.top)*a}},j=(e,t)=>{e.preventDefault(),k.current=t;let n=g.current.find(e=>e.id===t);n!==void 0&&(n.fixed=!0)};return(0,r.useEffect)(()=>{let e=e=>{let t=k.current;if(t===null)return;let n=A(e.clientX,e.clientY);if(n===null)return;let r=g.current.find(e=>e.id===t);r!==void 0&&(r.x=Math.max(20,Math.min(540,n.x)),r.y=Math.max(20,Math.min(300,n.y)),r.vx=0,r.vy=0,_(e=>e+1))},t=()=>{let e=k.current;if(e===null)return;let t=g.current.find(t=>t.id===e);t!==void 0&&(t.fixed=!1),k.current=null};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]),n.length===0?(0,i.jsx)(`div`,{className:o.empty,children:`走廊空空如也,落成几间房间后这里会出现鸟瞰图。`}):(0,i.jsxs)(`div`,{className:o.mapWrap,children:[(0,i.jsxs)(`svg`,{ref:O,viewBox:`0 0 560 320`,className:o.map,preserveAspectRatio:`xMidYMid meet`,role:`img`,"aria-label":`走廊鸟瞰图`,children:[S.map((e,t)=>{let n=560/Math.max(S.length,1);return(0,i.jsx)(`rect`,{x:n*t,y:0,width:n,height:320,fill:t%2==0?`rgba(127,127,127,0.04)`:`transparent`},e)}),S.map((e,t)=>{let n=560/Math.max(S.length,1);return(0,i.jsx)(`text`,{x:n*(t+.5),y:14,textAnchor:`middle`,fill:`rgba(127,127,127,0.7)`,fontSize:`10`,fontFamily:`ui-sans-serif, system-ui`,children:c[e]??e},`${e}-label`)}),a.map((e,t)=>{let n=x.get(e.from),r=x.get(e.to);if(n===void 0||r===void 0)return null;let a=l[e.type]??l.related,s=D(e),c=C!==null&&!s;if(s){let t=(n.x+r.x)/2,o=(n.y+r.y)/2,s=r.x-n.x,c=r.y-n.y,l=Math.sqrt(s*s+c*c)||1,u=-c/l*6,d=s/l*6;return(0,i.jsx)(`path`,{d:`M ${String(n.x)} ${String(n.y)} Q ${String(t+u)} ${String(o+d)} ${String(r.x)} ${String(r.y)}`,fill:`none`,stroke:a.color,strokeWidth:a.width+1.2,strokeDasharray:a.dash,style:{transition:`stroke-width 200ms ease, d 240ms ease`},children:(0,i.jsx)(`title`,{children:`${n.title} --${e.type}--> ${r.title}`})},e.id)}return(0,i.jsx)(`line`,{x1:n.x,y1:n.y,x2:r.x,y2:r.y,stroke:a.color,strokeWidth:a.width,strokeDasharray:a.dash,opacity:c?.1:1,className:o.edgeFade,style:{transition:`opacity 200ms ease, stroke-width 200ms ease`,animationDelay:`${String(Math.min(t,24)*24)}ms`},children:(0,i.jsx)(`title`,{children:`${n.title} --${e.type}--> ${r.title}`})},e.id)}),b.map((e,t)=>{let n=s[e.kind]??`#7d8590`,r=p===e.id,a=C===e.id,c=E(e.id);return(0,i.jsxs)(`g`,{className:o.node,transform:`translate(${String(e.x)} ${String(e.y)})`,style:{cursor:k.current===e.id?`grabbing`:`grab`,opacity:c?.15:1,transition:`opacity 200ms ease`,animationDelay:`${String(Math.min(t,24)*24)}ms`},onMouseEnter:()=>{w(e.id)},onMouseLeave:()=>{w(t=>t===e.id?null:t)},onMouseDown:t=>j(t,e.id),onClick:()=>f?.(e.id),children:[(a||r)&&(0,i.jsx)(`circle`,{r:String(e.r+6),fill:n,fillOpacity:.18}),(0,i.jsx)(`circle`,{r:String(e.r),fill:n,fillOpacity:e.status===`active`?.88:.42,stroke:r?`var(--dsw-alias-brand-primary)`:a?n:`rgba(255,255,255,0.9)`,strokeWidth:r?2:a?1.5:1,style:{transition:`stroke 160ms ease, stroke-width 160ms ease`},children:(0,i.jsx)(`title`,{children:`${e.title}(${e.kind}/${e.status})`})}),r&&(0,i.jsx)(`circle`,{r:String(e.r+4),fill:`none`,stroke:n,strokeOpacity:.4,strokeWidth:1})]},e.id)}),C!==null&&(()=>{let e=x.get(C);if(e===void 0)return null;let t=Math.min(380,Math.max(8,e.x+14)),n=Math.min(260,Math.max(28,e.y-16)),r=(e.content??e.title).slice(0,120);return(0,i.jsxs)(`g`,{className:o.tooltip,transform:`translate(${String(t)} ${String(n)})`,children:[(0,i.jsx)(`rect`,{x:0,y:0,width:176,height:48,rx:6,ry:6,fill:`var(--dsw-alias-bg-base)`,stroke:`var(--dsw-alias-border-l2)`,strokeWidth:1,opacity:.96}),(0,i.jsx)(`text`,{x:8,y:16,fill:`var(--dsw-alias-label-primary)`,fontSize:`11`,fontWeight:600,fontFamily:`ui-sans-serif, system-ui`,children:c[e.kind]??e.kind}),(0,i.jsx)(`text`,{x:8,y:32,fill:`var(--dsw-alias-label-secondary)`,fontSize:`10`,fontFamily:`ui-sans-serif, system-ui`,children:`${r}${(e.content??e.title).length>120?`…`:``}`})]})})()]},t),(0,i.jsxs)(`div`,{className:o.legend,children:[S.map(e=>(0,i.jsxs)(`span`,{className:o.legendItem,children:[(0,i.jsx)(`span`,{className:o.legendDot,style:{background:s[e]??`#7d8590`}}),c[e]??e]},e)),(0,i.jsxs)(`span`,{className:o.legendItem,children:[n.length,` 间 · `,a.length,` 条走廊`]})]}),(0,i.jsx)(`div`,{className:o.legend,style:{marginTop:2},children:Object.entries(l).map(([e,t])=>(0,i.jsxs)(`span`,{className:o.legendItem,children:[(0,i.jsx)(`svg`,{width:20,height:6,"aria-hidden":`true`,children:(0,i.jsx)(`line`,{x1:0,y1:3,x2:20,y2:3,stroke:t.color,strokeWidth:t.width,strokeDasharray:t.dash})}),(0,i.jsx)(`span`,{children:e===`supersedes`?`推陈出新`:e===`contradicts`?`互斥`:`相邻 / 支持 / 提炼`})]},e))})]})}let p={info:3e3,success:3e3,warning:5e3,error:5e3},m=0;function h({items:e,onDismiss:t}){return(0,i.jsx)(`div`,{className:o.toastViewport,role:`region`,"aria-live":`polite`,"aria-label":`notifications`,children:e.map(e=>{let n=e.kind===`success`?o.toastSuccess:e.kind===`error`?o.toastError:e.kind===`warning`?o.toastWarning:o.toastInfo;return(0,i.jsxs)(`div`,{className:`${o.toast} ${n}`,role:e.kind===`error`||e.kind===`warning`?`alert`:`status`,children:[(0,i.jsx)(`span`,{className:o.toastBody,children:e.message}),(0,i.jsx)(`button`,{type:`button`,className:o.toastDismiss,"aria-label":`dismiss`,onClick:()=>{t(e.id)},children:`×`})]},e.id)})})}function g(){let[e,t]=(0,r.useState)([]),n=(0,r.useRef)(new Map),a=(0,r.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e));let r=n.current.get(e);r!==void 0&&(clearTimeout(r),n.current.delete(e))},[]),o=(0,r.useCallback)((e,r,i)=>{m+=1;let o=m,s=i??p[e],c={id:o,kind:e,message:r,duration:s};t(e=>[...e,c]);let l=setTimeout(()=>{a(o)},s);n.current.set(o,l)},[a]);return(0,r.useEffect)(()=>()=>{for(let e of n.current.values())clearTimeout(e);n.current.clear()},[]),{toasts:e,push:o,dismiss:a,viewport:(0,i.jsx)(h,{items:e,onDismiss:a})}}let _=`dsh-engram.ui`;function v(e){try{return window.localStorage.getItem(e)??void 0}catch{return}}function y(e,t){try{window.localStorage.setItem(e,t)}catch{}}function b(e,t){return e!==void 0&&t.includes(e)}function x(e,t,n){let i=`${_}.${e}`,[a,o]=(0,r.useState)(()=>{let e=v(i);return b(e,n)?e:t});return(0,r.useEffect)(()=>{y(i,a)},[i,a]),[a,(0,r.useCallback)(e=>{o(e)},[])]}function S(e,t){let n=`${_}.${e}`,[i,a]=(0,r.useState)(()=>v(n)??t);return(0,r.useEffect)(()=>{y(n,i)},[n,i]),[i,(0,r.useCallback)(e=>{a(e)},[])]}let C=[`fact`,`preference`,`decision`,`episode`,`skill`],w={active:`statusActive`,archived:`statusArchived`,forgotten:`statusForgotten`},T={fact:`kindFact`,preference:`kindPreference`,decision:`kindDecision`,episode:`kindEpisode`,skill:`kindSkill`},E={user:`scopeUser`,project:`scopeProject`,shared:`scopeShared`},D={write:`opWrite`,update:`opUpdate`,forget:`opForget`,restore:`opRestore`,decay:`opDecay`,superseded:`opSuperseded`,"ingest-request":`opIngestRequest`,"ingest-done":`opIngestDone`,"outcome-report":`opOutcomeReport`,"search-rewrite-request":`opSearchRewrite`,"compress-request":`opCompressRequest`,"distill-request":`opDistillRequest`},O={supersededBy:`relSupersededBy`,supersedes:`relSupersedes`,contradicts:`relContradicts`,related:`relRelated`},k={kind:`labelKind`,scope:`labelScope`,status:`labelStatus`};function A(e,t){let n=T[t];return n===void 0?t:e(n)}function j(e,t){let n=D[t];return n===void 0?t:e(n)}function M(e,t,n){if(n===null)return``;if(t!==`write`&&t!==`update`&&t!==`superseded`)return` ${n}`;try{let t=JSON.parse(n),r=Object.entries(t);return r.length===0?` ${n}`:` `+r.map(([t,n])=>{let r=k[t];return r===void 0?`${t}=${String(n)}`:t===`kind`&&typeof n==`string`?`${e(r)}=${A(e,n)}`:t===`scope`&&(n===`user`||n===`project`)?`${e(r)}=${e(E[n])}`:`${e(r)}=${String(n)}`}).join(` · `)}catch{return` ${n}`}}function ee(e,t){if(t.sourceSessionId===null)return e(`sourceExplicit`);let n=`${t.sourceSessionId.slice(0,16)}…`;return e(`sourceSession`,{id:t.sourceRound===null?n:`${n} ${e(`round`,{n:t.sourceRound})}`})}async function N(e,t){let n=await fetch(`/api/engram/${e}`,t),r=await n.json();if(!n.ok)throw Error(r.error??`HTTP ${String(n.status)}`);return r}function P(e){return new Date(e).toLocaleString(navigator.language||`zh-CN`,{hour12:!1})}function F(e,t){let n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<1)return e(`timeJustNow`);if(r<60)return e(`timeMinutesAgo`,{n:r});let i=Math.floor(r/60);return i<48?e(`timeHoursAgo`,{n:i}):e(`timeDaysAgo`,{n:Math.floor(i/24)})}function I({value:e,conf:t}){return(0,i.jsx)(`span`,{className:t===!0?`${o.meter} ${o.conf}`:o.meter,children:(0,i.jsx)(`i`,{style:{width:`${String(Math.round(Math.min(1,Math.max(0,e))*100))}%`}})})}function L({ids:e}){return(0,i.jsx)(`div`,{className:o.relChips,children:e.map(e=>(0,i.jsx)(`span`,{className:o.relChip,title:e,children:e.slice(0,18)},e))})}function te({t:e,recordId:t,scope:n}){let[a,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(null);if((0,r.useEffect)(()=>{let e=!1;return N(`review?scope=${n}&id=${encodeURIComponent(t)}`).then(t=>{e||s(t)}).catch(t=>{e||l(t.message)}),()=>{e=!0}},[t,n,e]),c!==null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loadFailed`,{msg:c})});if(a===null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)});let{record:u}=a,d=[`supersededBy`,`supersedes`,`contradicts`,`related`].map(e=>({key:e,label:O[e],ids:a[e]??[]})).filter(e=>e.ids.length>0),f=a.operations??[];return(0,i.jsxs)(`div`,{className:o.reviewGrid,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`dl`,{className:o.attrGrid,children:[(0,i.jsx)(`dt`,{children:e(`labelContent`)}),(0,i.jsx)(`dd`,{children:u.content}),(0,i.jsx)(`dt`,{children:e(`labelKind`)}),(0,i.jsx)(`dd`,{children:(0,i.jsx)(`span`,{className:`${o.pill} ${o.kind}`,children:A(e,u.kind)})}),(0,i.jsx)(`dt`,{children:e(`labelStatus`)}),(0,i.jsx)(`dd`,{children:(0,i.jsx)(`span`,{className:`${o.pill} ${o[`status${u.status.charAt(0).toUpperCase()}${u.status.slice(1)}`]??``}`,children:e(w[u.status])})}),(0,i.jsx)(`dt`,{children:e(`importance`)}),(0,i.jsxs)(`dd`,{children:[u.importance.toFixed(2),(0,i.jsx)(I,{value:u.importance})]}),(0,i.jsx)(`dt`,{children:e(`confidence`)}),(0,i.jsxs)(`dd`,{children:[u.confidence.toFixed(2),(0,i.jsx)(I,{value:u.confidence,conf:!0})]}),(0,i.jsx)(`dt`,{children:e(`detailSource`)}),(0,i.jsx)(`dd`,{children:ee(e,u)}),(0,i.jsx)(`dt`,{children:e(`labelCreated`)}),(0,i.jsx)(`dd`,{children:P(u.createdAt)})]}),d.map(({key:t,label:n,ids:r})=>(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:n===void 0?t:e(n)}),(0,i.jsx)(L,{ids:r})]},t))]}),(0,i.jsxs)(`div`,{children:[(a.revisions??[]).length>0&&(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:e(`detailRevisions`)}),(0,i.jsx)(`ul`,{className:o.timeline,children:a.revisions.map((t,n)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`time`,{children:P(t.supersededAt)}),(0,i.jsx)(`b`,{children:A(e,t.kind)}),` `,t.content]},n))})]}),f.length>0&&(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:e(`detailOperations`)}),(0,i.jsx)(`ul`,{className:o.timeline,children:f.map((t,n)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`time`,{children:P(t.at)}),(0,i.jsx)(`b`,{children:j(e,t.op)}),M(e,t.op,t.detail)]},n))})]})]})]})}function ne({t:e,record:t,onClose:n,onSaved:a,toast:s}){let[c,l]=(0,r.useState)(t.content),[u,d]=(0,r.useState)(t.kind),[f,p]=(0,r.useState)(t.importance);return(0,i.jsxs)(`div`,{className:o.editForm,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:e(`labelContent`)}),(0,i.jsx)(`textarea`,{className:o.input,rows:3,value:c,onChange:e=>l(e.target.value)})]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:e(`labelKind`)}),(0,i.jsx)(`select`,{className:o.input,value:u,onChange:e=>d(e.target.value),children:C.map(t=>(0,i.jsx)(`option`,{value:t,children:A(e,t)},t))})]}),(0,i.jsx)(`div`,{className:o.fieldRow,children:(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:`${e(`importance`)} ${f.toFixed(2)}`}),(0,i.jsx)(`input`,{type:`range`,min:0,max:1,step:.05,value:f,onChange:e=>p(Number(e.target.value))})]})}),(0,i.jsxs)(`div`,{className:o.modalFoot,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:n,children:e(`cancel`)}),(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,onClick:()=>{N(`update`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.id,scope:t.scope,content:c,kind:u,importance:f})}).then(a).catch(e=>{s.push(`error`,e.message)})},children:e(`saveWithHint`)})]})]})}let R={fts:`viaFts`,vec:`viaVec`,both:`viaBoth`};function re({t:e,scope:t}){let[n,a]=(0,r.useState)(``),[s,c]=(0,r.useState)(t),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null);(0,r.useEffect)(()=>{c(t)},[t]);let h=()=>{n.trim()===``||d||(f(!0),N(`search-test?q=${encodeURIComponent(n.trim())}&scope=${s}`).then(e=>{u(e),m(null)}).catch(e=>m(e.message)).finally(()=>f(!1)))},g=l?.hits??[];return(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:o.benchBar,children:[(0,i.jsx)(`input`,{className:`${o.input} ${o.search}`,placeholder:e(`benchPlaceholder`),value:n,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h()}}),(0,i.jsxs)(`select`,{className:o.input,value:s,onChange:e=>c(e.target.value),children:[(0,i.jsx)(`option`,{value:`all`,children:e(`benchScopeAll`)}),(0,i.jsx)(`option`,{value:`user`,children:e(`scopeUser`)}),(0,i.jsx)(`option`,{value:`project`,children:e(`scopeProject`)}),(0,i.jsx)(`option`,{value:`shared`,children:e(`scopeShared`)})]}),(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,disabled:d||n.trim()===``,onClick:h,children:e(`benchRun`)})]}),p!==null&&(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loadFailed`,{msg:p})}),l!==null&&p===null&&(0,i.jsxs)(`div`,{className:o.benchMeta,children:[(0,i.jsx)(`span`,{children:e(`benchHits`,{n:g.length})}),l.degraded&&(0,i.jsx)(`span`,{className:o.degradedNote,children:e(`benchDegraded`)})]}),(0,i.jsx)(`div`,{className:o.benchList,children:g.map(t=>(0,i.jsxs)(`div`,{className:o.benchRow,children:[(0,i.jsxs)(`div`,{className:o.benchHead,children:[(0,i.jsx)(`span`,{className:o.viaChip,children:e(R[t.via])}),t.viaEdge!==void 0&&(0,i.jsxs)(`span`,{className:o.viaChip,title:`${t.viaEdge.type} ${t.viaEdge.from}`,children:[e(`viaEdgeLabel`),` · `,t.viaEdge.type]}),(0,i.jsx)(`span`,{className:`${o.pill} ${o.kind}`,children:A(e,t.kind)}),(0,i.jsx)(`span`,{className:o.benchScore,children:t.score.toFixed(4)})]}),(0,i.jsx)(`div`,{className:o.benchContent,children:t.content}),(0,i.jsx)(`span`,{className:o.benchId,title:t.id,children:t.id})]},t.id))}),l!==null&&g.length===0&&p===null&&(0,i.jsx)(`div`,{className:o.benchEmpty,children:e(`benchEmpty`)})]})}function z(e,t){if(t===null)return``;try{let n=JSON.parse(t);if(typeof n.round==`number`&&typeof n.userText==`string`){let t=typeof n.mode==`string`?` · ${n.mode}`:``;return`${e(`round`,{n:n.round})}${t} · ${n.userText.slice(0,48)}`}if(typeof n.query==`string`&&Array.isArray(n.queries))return`${e(`benchRewrite`,{n:n.queries.length})} · ${n.query.slice(0,36)}`;if(typeof n.count==`number`&&Object.keys(n).length===1)return e(`benchCompress`,{n:n.count})}catch{}return t.length>56?`${t.slice(0,56)}…`:t}function ie({t:e}){let[t,n]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=!1;return N(`activity?limit=20`).then(t=>{e||n(t.operations)}).catch(()=>{e||n([])}),()=>{e=!0}},[]),t===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):t.length===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`activityEmpty`)}):(0,i.jsx)(`ul`,{className:`${o.timeline} ${o.activityList}`,children:t.map((t,n)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`span`,{className:o.actTime,children:F(e,t.at)}),(0,i.jsx)(`b`,{children:j(e,t.op)}),(0,i.jsx)(`span`,{className:o.actScope,children:t.scope===`user`?e(`scopeUser`):e(`scopeProject`)}),(0,i.jsx)(`div`,{className:o.actBody,title:t.detail??``,children:z(e,t.detail)})]},n))})}function ae({t:e,scope:t,toast:n,onAnswered:a}){let[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)({}),[d,f]=(0,r.useState)(null),p=(0,r.useCallback)(()=>{N(`review-due?scope=${t}`).then(e=>{c(e.items),u({})}).catch(e=>{n.push(`error`,e.message),c([])})},[t,n]);(0,r.useEffect)(()=>{p()},[p]);let m=e=>{f(e),N(`review?scope=${t}&id=${encodeURIComponent(e)}`).then(t=>{u(n=>({...n,[e]:t.record.content}))}).catch(e=>{n.push(`error`,e.message)}).finally(()=>{f(null)})},h=(r,i)=>{f(r.id),N(`review-answer`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:r.id,scope:t,grade:i})}).then(t=>{c(e=>e?.filter(e=>e.id!==r.id)??null);let i=t.review?.intervalDays??1;n.push(`success`,e(`reviewScheduled`,{n:i})),a()}).catch(e=>{n.push(`error`,e.message)}).finally(()=>{f(null)})};return s===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):s.length===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`reviewQueueEmpty`)}):(0,i.jsx)(`ul`,{className:o.reviewQueue,children:s.map(t=>(0,i.jsxs)(`li`,{className:o.reviewItem,children:[(0,i.jsxs)(`div`,{className:o.reviewCue,children:[(0,i.jsx)(`span`,{className:`${o.pill} ${o.kind}`,children:A(e,t.kind)}),t.slot!==void 0&&(0,i.jsxs)(`span`,{className:o.reviewSlot,children:[t.slot.room,`#`,t.slot.index]}),(0,i.jsx)(`span`,{className:o.reviewCaption,children:t.caption??e(`reviewNoPlacard`)}),(0,i.jsx)(`span`,{className:o.reviewOverdue,children:t.overdueDays>0?e(`reviewOverdue`,{n:t.overdueDays}):e(`reviewDueToday`)})]}),l[t.id]===void 0?(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{m(t.id)},children:e(`reviewReveal`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:o.reviewContent,children:l[t.id]}),(0,i.jsxs)(`div`,{className:o.reviewGrades,children:[(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,disabled:d===t.id,onClick:()=>{h(t,5)},children:e(`reviewGradeRemember`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{h(t,3)},children:e(`reviewGradeVague`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{h(t,1)},children:e(`reviewGradeForgot`)})]})]})]},t.id))})}function oe({t:e,scope:t,onSelect:n}){let a=[``,`fact`,`preference`,`decision`,`episode`,`skill`],[s,c]=x(`tour.focusKind`,``,a),[l,u]=(0,r.useState)(null);(0,r.useEffect)(()=>{let n=!1;return N(s===``?`tour-proposal?scope=${t}`:`tour-proposal?scope=${t}&focusKind=${s}`).then(e=>{n||u(e)}).catch(()=>{n||u({greeting:e(`tourProposalEmpty`),activeCount:0,empty:!0,suggestedStops:[]})}),()=>{n=!0}},[e,t,s]);let d=t=>{if(t===``)return e(`tourFocusAll`);let n=T[t];return n===void 0?t:e(n)};return l===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):(0,i.jsxs)(`div`,{className:o.tourProposal,children:[(0,i.jsx)(`div`,{className:o.tourFocusRow,role:`tablist`,"aria-label":`focus-kind`,children:a.map(e=>(0,i.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":s===e,className:s===e?`${o.tourFocusChip} ${o.tourFocusChipOn}`:o.tourFocusChip,onClick:()=>{c(e)},children:d(e)},e||`all`))}),l.empty?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`tourProposalEmpty`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{className:o.tourGreeting,children:l.greeting}),(0,i.jsx)(`ol`,{className:o.tourStops,children:l.suggestedStops.map((e,t)=>(0,i.jsx)(`li`,{children:(0,i.jsxs)(`button`,{type:`button`,className:o.tourStop,onClick:()=>{n(e.id)},children:[(0,i.jsx)(`span`,{className:o.tourStopIndex,children:t+1}),(0,i.jsxs)(`span`,{className:o.tourStopBody,children:[(0,i.jsx)(`span`,{className:o.tourStopKind,children:e.kind}),(0,i.jsx)(`span`,{className:o.tourStopText,children:e.content.length>60?`${e.content.slice(0,60)}…`:e.content})]})]})},e.id))}),(0,i.jsx)(`p`,{className:o.tourHint,children:e(`tourProposalHint`)})]})]})}function se({t:e,scope:t,onSelect:n,onAfterAction:a,toast:s}){let[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(!1),f=(0,r.useCallback)(()=>{d(!0),N(`refurb?scope=${t}`).then(e=>{l(e)}).catch(()=>{l({count:0,suggestions:[]})}).finally(()=>{d(!1)})},[t]);(0,r.useEffect)(()=>{f()},[f]);let p=t=>{switch(t){case`demote`:return e(`refurbActionDemote`);case`merge`:return e(`refurbActionMerge`);case`review`:return e(`refurbActionReview`);case`split`:return e(`refurbActionSplit`)}},m=(0,r.useCallback)(r=>{if(r.action===`review`||r.action===`split`){n(r.primaryId);return}if(r.action===`demote`){if(!window.confirm(e(`refurbConfirmDemote`)))return;d(!0),N(`forget`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:r.primaryId,scope:t,reason:`翻新清单降级`,affects:`无`,stillUseful:`可经 engram_restore 复原`})}).then(()=>{f(),a(),s.push(`success`,e(`refurbDemoteDone`))}).catch(t=>{s.push(`error`,e(`refurbActionFailed`,{msg:t.message}))}).finally(()=>{d(!1)});return}if(r.action===`merge`){let n=r.candidates.length+1;if(n<2){s.push(`warning`,e(`refurbMergeEmpty`));return}if(!window.confirm(e(`refurbConfirmMerge`,{n})))return;d(!0);let i=[r.primaryId,...r.candidates];N(`consolidate`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({scope:t,candidates:i})}).then(()=>{f(),a(),s.push(`success`,e(`refurbMergeDone`))}).catch(t=>{s.push(`error`,e(`refurbActionFailed`,{msg:t.message}))}).finally(()=>{d(!1)})}},[f,n,a,s,e,t]);return c===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):(0,i.jsxs)(`div`,{className:o.refurb,children:[(0,i.jsxs)(`div`,{className:o.refurbHead,children:[(0,i.jsx)(`span`,{className:o.refurbCount,children:e(`refurbCount`,{n:c.count})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:u,onClick:f,children:e(`refurbRun`)})]}),c.count===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`refurbEmpty`)}):(0,i.jsx)(`ul`,{className:o.refurbList,children:c.suggestions.map((t,r)=>(0,i.jsxs)(`li`,{className:o.refurbItem,children:[(0,i.jsx)(`button`,{type:`button`,className:o.refurbBadge,onClick:()=>{n(t.primaryId)},children:p(t.action)}),(0,i.jsx)(`div`,{className:o.refurbReason,children:t.reason}),(0,i.jsxs)(`span`,{className:o.refurbConfidence,children:[(t.confidence*100).toFixed(0),`%`]}),(0,i.jsx)(`button`,{type:`button`,className:`${o.refurbExec} ${o.button}`,disabled:u,onClick:()=>{m(t)},children:e(`refurbExecute`)})]},`${t.action}-${t.primaryId}-${r}`))})]})}function ce({t:e,scope:t,onSelect:n}){let[a,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=!1;return N(`corridor?status=active,archived&scope=${t}`).then(t=>{e||s(t),l(null)}).catch(t=>{e||l(t.message)}),()=>{e=!0}},[t]),c===null?a===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`corridorLoad`)}):a.nodes.length===0?(0,i.jsx)(`div`,{className:o.empty,children:e(`corridorEmpty`)}):(0,i.jsx)(f,{scope:t,nodes:a.nodes,edges:a.edges,onSelect:n}):(0,i.jsxs)(`div`,{className:o.expandLoading,children:[e(`corridorFailed`),`:`,c]})}function le({t:e,scope:t}){let[n,a]=(0,r.useState)(null),[s,c]=(0,r.useState)(null);if((0,r.useEffect)(()=>{let e=!1;return N(`health?scope=${t}`).then(t=>{e||a(t),c(null)}).catch(t=>{e||c(t.message)}),()=>{e=!0}},[t]),s!==null)return(0,i.jsxs)(`div`,{className:o.expandLoading,children:[e(`healthFailed`),`:`,s]});if(n===null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`healthLoading`)});let l=n.overall>=80?`good`:n.overall>=50?`mid`:`low`;return(0,i.jsxs)(`div`,{className:o.health,children:[(0,i.jsxs)(`div`,{className:`${o.healthScore} ${l===`good`?o.healthScoreGood:l===`mid`?o.healthScoreMid:o.healthScoreLow}`,children:[(0,i.jsx)(`b`,{children:n.overall}),(0,i.jsx)(`span`,{children:`/ 100`})]}),(0,i.jsx)(`div`,{className:o.healthMetrics,children:n.parts.map(t=>(0,i.jsxs)(`div`,{className:o.healthMetric,children:[(0,i.jsxs)(`div`,{className:o.healthMetricHead,children:[(0,i.jsx)(`span`,{children:t.scope===`user`?e(`scopeUser`):t.scope===`project`?e(`scopeProject`):e(`scopeShared`)}),(0,i.jsx)(`b`,{children:t.score})]}),(0,i.jsx)(`div`,{className:o.healthMetricBar,children:(0,i.jsx)(`i`,{style:{width:`${String(t.score)}%`}})})]},t.scope))})]})}function ue({t:e,scope:t}){let[n,a]=(0,r.useState)(null),[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)(null);if((0,r.useEffect)(()=>{let e=!1;return Promise.all([N(`telemetry?days=7&scope=${t}`),N(`stats`)]).then(([n,r])=>{e||(a(n),c(r.parts.find(e=>e.scope===t)?.stats??null),u(null))}).catch(t=>{e||u(t.message)}),()=>{e=!0}},[t]),l!==null)return(0,i.jsxs)(`div`,{className:o.expandLoading,children:[e(`teleFailed`),`:`,l]});if(n===null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`teleLoading`)});let d=[[e(`teleWrites`),n.counts.writes],[e(`teleForgets`),n.counts.forgets],[e(`teleIngest`),n.counts.ingestRequests],[e(`teleDistill`),n.counts.distillRequests],[e(`teleConsolidate`),n.counts.consolidations]];return(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsxs)(`div`,{className:o.panelCardTitle,children:[(0,i.jsx)(`h4`,{children:e(`teleTitle`)}),(0,i.jsxs)(`span`,{className:o.telePrivacy,role:`note`,"aria-label":e(`telePrivacyHint`),tabIndex:0,children:[(0,i.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,"aria-hidden":`true`,children:[(0,i.jsx)(`circle`,{cx:`7`,cy:`7`,r:`5.5`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`7`,y1:`6`,x2:`7`,y2:`10.5`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`}),(0,i.jsx)(`circle`,{cx:`7`,cy:`4.2`,r:`0.7`,fill:`currentColor`})]}),(0,i.jsx)(`span`,{className:o.telePrivacyHint,children:e(`telePrivacyHint`)}),(0,i.jsx)(`span`,{className:o.telePrivacyTip,role:`tooltip`,children:e(`telePrivacyTip`)})]})]}),(0,i.jsxs)(`div`,{className:o.teleBar,children:[(0,i.jsxs)(`div`,{className:o.teleCol,children:[(0,i.jsx)(`span`,{className:o.teleColLabel,children:e(`teleGroupScale`)}),(0,i.jsxs)(`div`,{className:o.teleGrid,children:[(0,i.jsxs)(`div`,{className:o.teleStat,children:[(0,i.jsx)(`span`,{children:e(`kpiTotal`)}),(0,i.jsx)(`b`,{children:s?.total??0})]}),(0,i.jsxs)(`div`,{className:o.teleStat,children:[(0,i.jsx)(`span`,{children:e(`kpiActive`)}),(0,i.jsx)(`b`,{children:s?.active??0})]}),(0,i.jsxs)(`div`,{className:o.teleStat,children:[(0,i.jsx)(`span`,{children:e(`kpiForgotten`)}),(0,i.jsx)(`b`,{children:s?.forgotten??0})]}),(0,i.jsxs)(`div`,{className:o.teleStat,role:`meter`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round((s?.signalRatio??0)*100),"aria-label":e(`kpiSignal`),children:[(0,i.jsx)(`span`,{children:e(`kpiSignal`)}),(0,i.jsx)(`b`,{children:`${String(Math.round((s?.signalRatio??0)*100))}%`})]})]})]}),(0,i.jsxs)(`div`,{className:o.teleCol,children:[(0,i.jsx)(`span`,{className:o.teleColLabel,children:e(`teleGroupRecent`)}),(0,i.jsx)(`div`,{className:`${o.teleGrid} ${o.teleGridRecent}`,children:d.map(([e,t])=>(0,i.jsxs)(`div`,{className:o.teleStat,children:[(0,i.jsx)(`span`,{children:e}),(0,i.jsx)(`b`,{children:t})]},e))})]})]})]})}function de({t:e,scope:t}){let[n,a]=(0,r.useState)(!1),s=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!n)return;let e=e=>{(s.current===null||!s.current.contains(e.target))&&a(!1)};return window.addEventListener(`mousedown`,e),()=>{window.removeEventListener(`mousedown`,e)}},[n]);let c=[{label:e(`exportMd`),hint:e(`exportMdHint`),href:`/api/engram/export?scope=${t}&format=markdown`},{label:e(`exportJson`),hint:e(`exportJsonHint`),href:`/api/engram/export?scope=${t}&format=json`},{label:e(`exportMirror`),hint:e(`exportMirrorHint`),href:`/api/engram/mirror?scope=${t}`}];return(0,i.jsxs)(`div`,{className:o.exportWrap,ref:s,children:[(0,i.jsxs)(`button`,{type:`button`,className:o.button,"aria-haspopup":`menu`,"aria-expanded":n,onClick:()=>{a(e=>!e)},children:[e(`export`),(0,i.jsx)(`span`,{className:o.exportCaret,"aria-hidden":`true`,children:`▾`})]}),n&&(0,i.jsx)(`div`,{className:o.exportMenu,role:`menu`,children:c.map(e=>(0,i.jsxs)(`a`,{role:`menuitem`,className:o.exportItem,href:e.href,onClick:()=>{a(!1)},children:[(0,i.jsx)(`span`,{className:o.exportItemLabel,children:e.label}),(0,i.jsx)(`span`,{className:o.exportItemHint,children:e.hint})]},e.href))})]})}function B({t:e}){let t=g(),[n,a]=x(`library.scope`,`user`,[`user`,`project`,`shared`]),[s,c]=x(`library.status`,`all`,[`all`,`active`,`archived`,`forgotten`]),[l,u]=x(`library.kind`,`all`,[`all`,`fact`,`preference`,`decision`,`episode`,`skill`]),[d,f]=S(`library.q`,``),[p,m]=x(`library.sort`,`time`,[`time`,`tour`]),[h,_]=(0,r.useState)(0),[v]=(0,r.useState)(`all`),[y,b]=(0,r.useState)(0),[T,D]=(0,r.useState)(null),[O,k]=(0,r.useState)(null),[j,M]=(0,r.useState)(null),[I,L]=(0,r.useState)(0),[R,z]=(0,r.useState)(new Set),[B,V]=(0,r.useState)(!1),[H,U]=(0,r.useState)(`observability`),W=(0,r.useCallback)(()=>{L(e=>e+1)},[]),G=(0,r.useCallback)(()=>{N(`review-due?scope=${n}&limit=50`).then(e=>{_(e.items.length)}).catch(()=>{_(0)})},[n]);(0,r.useEffect)(()=>{G()},[G]);let fe=()=>{U(`observability`),requestAnimationFrame(()=>{document.getElementById(`engram-review-due`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})})};(0,r.useEffect)(()=>{let e=!1,t=new URLSearchParams({scope:n,status:s,kind:l,redacted:v,limit:`20`,offset:String(y)});return d!==``&&t.set(`q`,d),p===`tour`&&t.set(`sort`,`tour`),N(`list?${t.toString()}`).then(t=>{e||(D(t),k(null))}).catch(t=>{e||k(t.message)}),()=>{e=!0}},[n,s,l,v,d,p,y,I]);let K=(e,n)=>{N(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:n.id,scope:n.scope})}).then(W).catch(e=>{t.push(`error`,e.message)})},q=(e,t)=>{M(n=>n!==null&&n.kind===e&&n.record.id===t.id?null:{kind:e,record:t})},J=T?.records??[],Y=J.filter(e=>R.has(e.id)),X=Y.filter(e=>e.status===`active`).length,pe=Y.length-X,me=J.length>0&&J.every(e=>R.has(e.id)),he=e=>{z(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Z=()=>{z(new Set),V(!1)},ge=()=>{z(e=>{let t=new Set(e);return me?J.forEach(e=>t.delete(e.id)):J.forEach(e=>t.add(e.id)),t})},_e=e=>{let t=e===`forget`?Y.filter(e=>e.status===`active`):Y.filter(e=>e.status!==`active`);t.length!==0&&Promise.allSettled(t.map(t=>N(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.id,scope:t.scope})}))).then(()=>{Z(),W()})},ve=()=>{if(B){_e(`forget`);return}V(!0)},ye=Math.floor(y/20)+1,be=T===null?1:Math.max(1,Math.ceil(T.total/20)),xe=(0,r.useRef)(new Map),[Q,Se]=(0,r.useState)({left:0,width:0,opacity:0}),$=(0,r.useCallback)(()=>{let e=xe.current.get(n);e!=null&&Se({left:e.offsetLeft,width:e.offsetWidth,opacity:1})},[n]);return(0,r.useEffect)(()=>{$();let e=()=>$();return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[$]),(0,i.jsxs)(`div`,{className:o.panel,children:[(0,i.jsxs)(`div`,{className:o.header,children:[(0,i.jsxs)(`div`,{className:o.headerBrand,children:[(0,i.jsx)(`span`,{className:o.headerLogo,"aria-hidden":`true`,children:(0,i.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 48 48`,fill:`none`,children:[(0,i.jsx)(`path`,{d:`M6 20 L24 7 L42 20 Z`,fill:`currentColor`,fillOpacity:`0.9`}),(0,i.jsx)(`rect`,{x:`9`,y:`20`,width:`30`,height:`18`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`}),(0,i.jsx)(`rect`,{x:`13`,y:`24`,width:`6`,height:`6`,rx:`1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`}),(0,i.jsx)(`line`,{x1:`16`,y1:`24`,x2:`16`,y2:`30`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`13`,y1:`27`,x2:`19`,y2:`27`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`path`,{d:`M21 38 L21 28 Q21 25 24 25 Q27 25 27 28 L27 38`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`}),(0,i.jsx)(`rect`,{x:`29`,y:`24`,width:`6`,height:`6`,rx:`1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`}),(0,i.jsx)(`line`,{x1:`32`,y1:`24`,x2:`32`,y2:`30`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`29`,y1:`27`,x2:`35`,y2:`27`,stroke:`currentColor`,strokeWidth:`1.2`})]})}),(0,i.jsxs)(`div`,{className:o.headerTitle,children:[(0,i.jsx)(`h2`,{children:e(`headerTitle`)}),(0,i.jsx)(`p`,{children:e(`headerSubtitle`)})]})]}),(0,i.jsxs)(`div`,{className:o.headerActions,children:[(0,i.jsxs)(`div`,{className:`${o.segGroup} ${o.segScope}`,children:[(0,i.jsx)(`span`,{className:o.segIndicator,style:{left:`${String(Q.left)}px`,width:`${String(Q.width)}px`,opacity:Q.opacity}}),[`user`,`project`,`shared`].map(t=>(0,i.jsx)(`button`,{type:`button`,ref:e=>{xe.current.set(t,e)},className:n===t?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{a(t),b(0),M(null),Z()},children:e(E[t])},t))]}),h>0&&(0,i.jsxs)(`button`,{type:`button`,className:o.dueBadge,title:e(`dueBadgeLabel`,{n:h}),"aria-label":e(`dueBadgeLabel`,{n:h}),onClick:fe,children:[(0,i.jsx)(`span`,{className:o.dueDot,"aria-hidden":`true`}),h]}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{W(),G()},children:e(`refresh`)}),(0,i.jsx)(de,{t:e,scope:n})]})]}),(0,i.jsx)(ue,{t:e,scope:n}),(0,i.jsxs)(`div`,{className:o.tabs,role:`tablist`,children:[(0,i.jsx)(`button`,{type:`button`,role:`tab`,className:H===`observability`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":H===`observability`,onClick:()=>{U(`observability`)},children:e(`tabObservability`)}),(0,i.jsxs)(`button`,{type:`button`,role:`tab`,className:H===`library`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":H===`library`,onClick:()=>{U(`library`)},children:[e(`tabLibrary`),(0,i.jsx)(`small`,{children:e(`tabLibraryCount`,{n:T?.total??0})})]})]}),H===`library`&&(0,i.jsxs)(`div`,{className:o.tabPanel,children:[(0,i.jsxs)(`div`,{className:o.filters,children:[(0,i.jsx)(`div`,{className:o.segGroup,children:[[`all`,e(`allStatuses`)],[`active`,e(`statusActive`)],[`archived`,e(`statusArchived`)],[`forgotten`,e(`statusForgotten`)]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:s===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{c(e),b(0),M(null),Z()},children:t},e))}),(0,i.jsx)(`div`,{className:o.segGroup,children:[[`all`,e(`allKinds`)],...C.map(t=>[t,A(e,t)])].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:l===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{u(e),b(0),M(null),Z()},children:t},e))}),(0,i.jsx)(`div`,{className:o.segGroup,children:[[`time`,e(`sortTime`)],[`tour`,e(`sortTour`)]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:p===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{m(e),b(0),M(null),Z()},children:t},e))}),(0,i.jsx)(`input`,{className:`${o.input} ${o.search}`,placeholder:e(`searchPlaceholder`),value:d,onChange:e=>{f(e.target.value.trim()),b(0),M(null),Z()}})]}),R.size>0&&(0,i.jsxs)(`div`,{className:o.batchBar,children:[(0,i.jsx)(`span`,{children:e(`selectedCount`,{n:R.size})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:ge,children:e(me?`deselectAll`:`selectAll`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:pe===0,onClick:()=>_e(`restore`),children:e(`batchRestore`,{n:pe})}),(0,i.jsx)(`button`,{type:`button`,className:B?`${o.button} ${o.danger}`:o.button,disabled:X===0,onClick:ve,children:e(B?`batchForgetConfirm`:`batchForget`,{n:X})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:Z,children:e(`clearSelection`)})]}),O!==null&&(0,i.jsxs)(`div`,{className:o.empty,children:[(0,i.jsx)(`b`,{children:e(`loadFailed`,{msg:O})}),(0,i.jsx)(`span`,{children:e(`emptyHint`)})]}),O===null&&T===null&&(0,i.jsx)(`div`,{className:o.skeletonList,children:[0,1,2,3].map(e=>(0,i.jsxs)(`div`,{className:o.skeleton,style:{animationDelay:`${String(e*60)}ms`},children:[(0,i.jsx)(`i`,{}),(0,i.jsx)(`i`,{}),(0,i.jsx)(`i`,{})]},e))}),O===null&&T!==null&&T.records.length===0&&(0,i.jsxs)(`div`,{className:o.empty,children:[(0,i.jsx)(`b`,{children:e(`empty`)}),(0,i.jsx)(`span`,{children:e(`emptyHint`)})]}),(T?.records??[]).length>0&&(0,i.jsx)(`div`,{className:o.itemList,children:(T?.records??[]).map((t,n)=>(0,i.jsxs)(`div`,{className:R.has(t.id)?`${o.item} ${o.selected}`:o.item,style:{animationDelay:`${String(Math.min(n,12)*36)}ms`},children:[(0,i.jsx)(`input`,{type:`checkbox`,className:o.itemCheck,checked:R.has(t.id),"aria-label":t.content.slice(0,24),onChange:()=>he(t.id)}),(0,i.jsxs)(`div`,{className:o.itemBody,children:[(0,i.jsxs)(`div`,{className:o.itemTags,children:[(0,i.jsx)(`span`,{className:`${o.pill} ${o[`status${t.status.charAt(0).toUpperCase()}${t.status.slice(1)}`]??``}`,children:e(w[t.status])}),(0,i.jsx)(`span`,{className:`${o.pill} ${o.kind}`,children:A(e,t.kind)}),t.slot!==void 0&&(0,i.jsxs)(`span`,{className:o.pill,children:[t.slot.room,`#`,t.slot.index]}),t.content.includes(`[REDACTED:`)&&(0,i.jsx)(`span`,{className:`${o.pill} ${o.redacted}`,children:e(`tagRedacted`)}),t.outcome!==void 0&&(0,i.jsx)(`span`,{className:`${o.pill} ${t.outcome===`success`?o.outcomeSuccess:o.outcomeFailure}`,children:t.outcome===`success`?e(`tagOutcomeSuccess`):e(`tagOutcomeFailure`)}),(0,i.jsxs)(`span`,{className:o.pill,title:P(t.createdAt),style:{marginLeft:`auto`},children:[e(E[t.scope]),` · `,F(e,t.createdAt)]})]}),(0,i.jsx)(`div`,{className:o.content,children:t.content}),(0,i.jsxs)(`div`,{className:o.itemMeta,children:[(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e(`importance`)}),` `,t.importance.toFixed(2)]}),(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e(`confidence`)}),` `,t.confidence.toFixed(2)]}),(0,i.jsx)(`span`,{children:e(`accessCount`,{n:t.accessCount})}),(0,i.jsx)(`span`,{children:ee(e,t)})]})]}),(0,i.jsxs)(`div`,{className:o.itemOps,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{q(`review`,t)},children:e(`detail`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{q(`edit`,t)},children:e(`edit`)}),t.status===`active`?(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{K(`forget`,t)},children:e(`forget`)}):(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{K(`restore`,t)},children:e(`restore`)})]})]},t.id))}),(0,i.jsxs)(`div`,{className:o.pager,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:y===0,"aria-label":e(`prevPage`),onClick:()=>{b(Math.max(0,y-20)),M(null),Z()},children:`‹`}),(0,i.jsx)(`span`,{children:e(`pagerInfo`,{page:ye,pages:be,total:T?.total??0})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:T===null||y+20>=T.total,"aria-label":e(`nextPage`),onClick:()=>{b(y+20),M(null),Z()},children:`›`})]})]}),H===`observability`&&(0,i.jsx)(`div`,{className:o.tabPanel,children:(0,i.jsxs)(`div`,{className:o.layout,children:[(0,i.jsxs)(`div`,{className:o.mainCol,children:[(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`healthTitle`)}),(0,i.jsx)(le,{t:e,scope:n})]}),(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`sectionCorridor`)}),(0,i.jsx)(ce,{t:e,scope:n,onSelect:e=>{M({kind:`review`,record:T?.records.find(t=>t.id===e)??{id:e,scope:n,kind:`fact`,content:``,importance:.5,confidence:.5,status:`active`,createdAt:Date.now(),accessCount:0,sourceSessionId:null,sourceRound:null}})}})]}),(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`refurbTitle`)}),(0,i.jsx)(se,{t:e,scope:n,onSelect:e=>{M({kind:`review`,record:T?.records.find(t=>t.id===e)??{id:e,scope:n,kind:`fact`,content:``,importance:.5,confidence:.5,status:`active`,createdAt:Date.now(),accessCount:0,sourceSessionId:null,sourceRound:null}})},onAfterAction:W,toast:t})]}),(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`sectionBench`)}),(0,i.jsx)(re,{t:e,scope:n})]})]}),(0,i.jsxs)(`aside`,{className:o.sideCol,children:[(0,i.jsxs)(`section`,{className:o.panelCard,id:`engram-review-due`,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`reviewQueueTitle`)}),(0,i.jsx)(ae,{t:e,scope:n,toast:t,onAnswered:G})]}),(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`tourProposalTitle`)}),(0,i.jsx)(oe,{t:e,scope:n,onSelect:e=>{M({kind:`review`,record:T?.records.find(t=>t.id===e)??{id:e,scope:n,kind:`fact`,content:``,importance:.5,confidence:.5,status:`active`,createdAt:Date.now(),accessCount:0,sourceSessionId:null,sourceRound:null}})}})]}),(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsx)(`h4`,{className:o.panelCardTitle,children:e(`sectionActivity`)}),(0,i.jsx)(ie,{t:e})]})]})]})}),j!==null&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:o.drawerScrim,onClick:()=>{M(null)}}),(0,i.jsxs)(`aside`,{className:o.drawer,role:`dialog`,"aria-label":e(`drawerTitle`),children:[(0,i.jsxs)(`header`,{className:o.drawerHead,children:[(0,i.jsxs)(`div`,{className:o.drawerTitle,children:[(0,i.jsx)(`h3`,{children:e(`drawerTitle`)}),(0,i.jsx)(`span`,{title:j.record.id,children:`#${j.record.id.slice(0,8)}…`})]}),(0,i.jsx)(`button`,{type:`button`,className:o.drawerClose,"aria-label":e(`drawerClose`),onClick:()=>{M(null)},children:(0,i.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,"aria-hidden":`true`,children:(0,i.jsx)(`path`,{d:`M2 2 L12 12 M12 2 L2 12`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`})})})]}),(0,i.jsx)(`div`,{className:o.drawerBody,children:j.kind===`review`?(0,i.jsx)(te,{t:e,recordId:j.record.id,scope:j.record.scope}):(0,i.jsx)(ne,{t:e,record:j.record,onClose:()=>{M(null)},onSaved:()=>{M(null),W()},toast:t})})]})]}),t.viewport]})}let V=`engram`,H={nav:`记忆宫殿`,scopeUser:`私人宫殿`,scopeProject:`项目宫殿`,scopeShared:`共享宫殿`,refresh:`重访`,exportMd:`导出 MD`,exportJson:`导出 JSON`,export:`导出`,exportMirror:`镜像目录`,exportMdHint:`单文件,可直接分享`,exportJsonHint:`结构化全文,便于程序处理`,exportMirrorHint:`每房间一个 .md,可用 Obsidian 漫游`,allStatuses:`全部房间`,allKinds:`全部楼层`,redactedAll:`全部铭牌`,redactedOnly:`含涂改`,redactedNone:`无涂改`,tagRedacted:`已涂改`,tagOutcomeSuccess:`管家验证·有效`,tagOutcomeFailure:`管家验证·失效`,searchPlaceholder:`在宫殿里寻找…`,statusActive:`对外开放`,statusArchived:`展厅陈列`,statusForgotten:`已闭馆`,kindFact:`事实层`,kindPreference:`偏好层`,kindDecision:`决策层`,kindEpisode:`事件层`,kindSkill:`技能层`,labelContent:`铭牌`,labelKind:`楼层`,labelStatus:`房门状态`,labelScope:`宫殿归属`,importance:`地标亮度`,confidence:`考据可靠度`,accessCount:`参观 {n} 人次`,labelCreated:`开馆时间`,timeJustNow:`方才`,timeMinutesAgo:`{n} 分钟前`,timeHoursAgo:`{n} 小时前`,timeDaysAgo:`{n} 天前`,sourceExplicit:`管理员添置`,sourceSession:`发掘地 {id}`,round:`第 {n} 趟`,cardActive:`开放 {n}`,cardRedacted:`涂改 {n}`,signalRatio:`走廊清晰度 {n}%`,detail:`参观`,edit:`修缮`,forget:`封门`,restore:`重开`,empty:`宫殿暂无可陈展的房间`,emptyHint:`试试调整楼层筛选,或新添一间`,loadFailed:`访客受挫:{msg}`,loading:`导览中…`,pagerInfo:`第 {page} / {pages} 层 · 共 {total} 间`,prevPage:`上层`,nextPage:`下层`,cancel:`作罢`,saveWithHint:`修缮(旧铭牌归展厅)`,detailAttributes:`铭牌`,detailSource:`发掘地`,detailRelations:`邻接走廊`,detailOperations:`管家日志`,relSupersededBy:`被替代`,relSupersedes:`替代`,relContradicts:`互斥`,relRelated:`相邻`,headerTitle:`记忆宫殿`,headerSubtitle:`跨会话长期记忆宫殿`,tabLibrary:`宫殿陈展`,tabObservability:`导览管家`,tabLibraryCount:`{n} 间`,drawerClose:`归殿`,drawerTitle:`房间铭牌`,kpiTotal:`房间`,kpiActive:`开放`,kpiForgotten:`闭馆`,kpiSignal:`清晰度`,opWrite:`落成`,opUpdate:`修缮`,opForget:`封门`,opRestore:`重开`,opDecay:`闭门陈列`,opSuperseded:`被替代`,opIngestRequest:`发掘请求`,opIngestDone:`发掘完成`,opOutcomeReport:`管家验证`,opSearchRewrite:`路线改写`,opCompressRequest:`导览压缩`,opDistillRequest:`重塑楼层`,selectAll:`本页全选`,deselectAll:`取消全选`,selectedCount:`已选 {n} 间`,batchForget:`批量封门({n})`,batchForgetConfirm:`确认封门 {n} 间?`,batchRestore:`批量重开({n})`,clearSelection:`清空所选`,sectionBench:`试走一遍`,sectionCorridor:`走廊鸟瞰`,corridorEmpty:`走廊空空如也,落成几间房间后这里会出现鸟瞰图。`,corridorFailed:`走廊加载失败`,corridorLoad:`加载走廊鸟瞰…`,healthTitle:`宫殿健康分`,healthLoading:`正在诊脉…`,healthFailed:`诊脉失败`,healthMetricSignal:`走廊清晰度`,healthMetricActive:`对外开放率`,healthMetricCorridors:`走廊密度`,healthMetricRedaction:`涂改缓解`,healthMetricDecay:`衰减覆盖`,teleTitle:`管家日报`,teleFailed:`遥测加载失败`,teleLoading:`聚合管家记录中…`,teleGroupScale:`规模`,teleGroupRecent:`近 7 天`,telePrivacyHint:`数据仅在本机聚合 · 不外传`,telePrivacyTip:`所有 op_log 与遥测计数只在当前进程的 SQLite 里聚合,从未发送至任何外部服务;本机重启或卸载插件即清空。`,teleWrites:`落成`,teleForgets:`闭馆`,teleIngest:`发掘`,teleDistill:`蒸馏`,teleConsolidate:`整理`,benchPlaceholder:`说出要找的房间关键词或语义…`,benchRun:`出发`,benchScopeAll:`全部宫殿`,benchHits:`到访 {n} 间`,benchDegraded:`语义灯熄,仅关键词引路`,benchEmpty:`此路不通`,benchNote:`试走与正式导览共用同一张地图,会计入参观人次`,viaFts:`关键词`,viaVec:`语义`,viaBoth:`双路`,viaEdgeLabel:`邻接走廊`,benchRewrite:`路线改写为 {n} 段`,benchCompress:`铭牌压缩 {n} 条`,sectionActivity:`管家日志`,activityEmpty:`暂无管家活动`,detailRevisions:`陈展沿革`,tourProposalTitle:`入殿导航`,tourProposalEmpty:`宫殿尚空,建议先放第一段记忆(调用 engram_save)`,tourProposalHint:`点击房间可展开抽屉查看铭牌`,tourFocusAll:`全部`,refurbTitle:`翻新清单`,refurbEmpty:`所有房间状态健康,无翻新建议`,refurbRun:`重新扫描`,refurbActionDemote:`降级`,refurbActionMerge:`合并`,refurbActionReview:`复习`,refurbActionSplit:`拆分`,refurbCount:`{n} 条建议`,refurbExecute:`执行`,refurbConfirmDemote:`确认降级此房间?执行后状态转 archived,可在统计页恢复。`,refurbConfirmMerge:`确认合并 {n} 间相似房间?将触发 engram_distill 把多间归纳为 1 条高层规律。`,refurbDemoteDone:`已降级`,refurbMergeDone:`合并任务已派发`,refurbActionFailed:`执行失败:{msg}`,refurbMergeEmpty:`无可合并的候选条目`,reviewQueueTitle:`今日待回忆`,reviewQueueEmpty:`今日无到期记忆,宫殿节奏良好`,reviewReveal:`揭示铭牌`,reviewGradeRemember:`记得`,reviewGradeVague:`模糊`,reviewGradeForgot:`忘了`,reviewOverdue:`逾期 {n} 天`,reviewDueToday:`今日到期`,reviewNoPlacard:`(无门牌)`,reviewScheduled:`已排入 {n} 天后再回忆`,sortTime:`按时间`,sortTour:`按巡游路线`,dueBadgeLabel:`今日待回忆 {n} 段,点击前往`},U={nav:`Memory Palace`,scopeUser:`Private Palace`,scopeProject:`Project Palace`,scopeShared:`Shared Palace`,refresh:`Revisit`,exportMd:`Export MD`,exportJson:`Export JSON`,export:`Export`,exportMirror:`Mirror tree`,exportMdHint:`Single file, easy to share`,exportJsonHint:`Structured full dump for scripts`,exportMirrorHint:`One .md per room, roamable in Obsidian`,allStatuses:`All rooms`,allKinds:`All floors`,redactedAll:`All placards`,redactedOnly:`Redacted`,redactedNone:`Unredacted`,tagRedacted:`redacted`,tagOutcomeSuccess:`curator: worked`,tagOutcomeFailure:`curator: failed`,searchPlaceholder:`Wander the palace…`,statusActive:`open to public`,statusArchived:`on display`,statusForgotten:`closed`,kindFact:`Fact Floor`,kindPreference:`Preference Floor`,kindDecision:`Decision Floor`,kindEpisode:`Episode Floor`,kindSkill:`Skill Floor`,labelContent:`Placard`,labelKind:`Floor`,labelStatus:`Door`,labelScope:`Palace`,importance:`Beacon`,confidence:`Provenance`,accessCount:`{n} visits`,labelCreated:`Opened`,timeJustNow:`just now`,timeMinutesAgo:`{n} min ago`,timeHoursAgo:`{n} hr ago`,timeDaysAgo:`{n} d ago`,sourceExplicit:`Curator placed`,sourceSession:`Excavated at {id}`,round:`pass {n}`,cardActive:`{n} open`,cardRedacted:`{n} redacted`,signalRatio:`corridor clarity {n}%`,detail:`Tour`,edit:`Renovate`,forget:`Close`,restore:`Reopen`,empty:`No exhibits to display`,emptyHint:`Adjust the floors above, or place a new room`,loadFailed:`Tour halted: {msg}`,loading:`Guiding…`,pagerInfo:`Floor {page} / {pages} · {total} rooms`,prevPage:`Floor up`,nextPage:`Floor down`,cancel:`Cancel`,saveWithHint:`Renovate (archive old placard)`,detailAttributes:`Placard`,detailSource:`Excavation`,detailRelations:`Corridors`,detailOperations:`Curator log`,relSupersededBy:`Superseded by`,relSupersedes:`Supersedes`,relContradicts:`Contradicts`,relRelated:`Adjacent`,headerTitle:`Memory Palace`,headerSubtitle:`Cross-session long-term memory palace`,tabLibrary:`Palace`,tabObservability:`Tour butler`,tabLibraryCount:`{n} rooms`,drawerClose:`Return`,drawerTitle:`Room placard`,kpiTotal:`Rooms`,kpiActive:`Open`,kpiForgotten:`Closed`,kpiSignal:`Clarity`,opWrite:`opened`,opUpdate:`renovated`,opForget:`closed`,opRestore:`reopened`,opDecay:`archived`,opSuperseded:`superseded`,opIngestRequest:`excavation requested`,opIngestDone:`excavated`,opOutcomeReport:`curator report`,opSearchRewrite:`route rewritten`,opCompressRequest:`placard compressed`,opDistillRequest:`floor remodelled`,selectAll:`Select all on floor`,deselectAll:`Deselect all`,selectedCount:`{n} rooms`,batchForget:`Close selected ({n})`,batchForgetConfirm:`Close {n} rooms?`,batchRestore:`Reopen selected ({n})`,clearSelection:`Clear selection`,sectionBench:`Take a walk`,sectionCorridor:`Corridor overview`,corridorEmpty:`No rooms yet — the bird’s-eye view appears after a few rooms open.`,corridorFailed:`Failed to load corridor`,corridorLoad:`Loading corridor overview…`,healthTitle:`Palace health`,healthLoading:`Taking pulse…`,healthFailed:`Pulse failed`,healthMetricSignal:`Corridor clarity`,healthMetricActive:`Open ratio`,healthMetricCorridors:`Corridor density`,healthMetricRedaction:`Redaction relief`,healthMetricDecay:`Decay coverage`,teleTitle:`Curator log`,teleFailed:`Telemetry failed`,teleLoading:`Aggregating curator events…`,teleGroupScale:`Scale`,teleGroupRecent:`Last 7 days`,telePrivacyHint:`Local aggregation only · never transmitted`,telePrivacyTip:`All op_log and telemetry counters are aggregated in this process’s SQLite only; nothing is sent to any external service. Clearing the plugin or restarting the host wipes the data.`,teleWrites:`Opened`,teleForgets:`Closed`,teleIngest:`Excavated`,teleDistill:`Distilled`,teleConsolidate:`Consolidated`,benchPlaceholder:`Name a room by keyword or meaning…`,benchRun:`Walk`,benchScopeAll:`All palaces`,benchHits:`{n} rooms found`,benchDegraded:`Beacon dark · keyword lane only`,benchEmpty:`No route found`,benchNote:`Walk uses the same map as the guided tour and counts as a visit`,viaFts:`keyword`,viaVec:`semantic`,viaBoth:`dual`,viaEdgeLabel:`corridor`,benchRewrite:`route split into {n}`,benchCompress:`compressed {n} overflow placards`,sectionActivity:`Curator log`,activityEmpty:`No curator activity yet`,detailRevisions:`Exhibit history`,tourProposalTitle:`Tour proposal`,tourProposalEmpty:`The palace is empty — place a first room via engram_save`,tourProposalHint:`Click a room to open its placard`,tourFocusAll:`All`,refurbTitle:`Refurb suggestions`,refurbEmpty:`All rooms are healthy — no suggestions`,refurbRun:`Re-scan`,refurbActionDemote:`demote`,refurbActionMerge:`merge`,refurbActionReview:`review`,refurbActionSplit:`split`,refurbCount:`{n} suggestions`,refurbExecute:`Apply`,refurbConfirmDemote:`Demote this room? Status will become archived; you can reopen it later.`,refurbConfirmMerge:`Merge {n} similar rooms? This triggers engram_distill to fold them into one higher-level pattern.`,refurbDemoteDone:`Demoted`,refurbMergeDone:`Merge dispatched`,refurbActionFailed:`Action failed: {msg}`,refurbMergeEmpty:`No merge candidates`,reviewQueueTitle:`Due today`,reviewQueueEmpty:`Nothing due today — palace rhythm is healthy`,reviewReveal:`Reveal placard`,reviewGradeRemember:`Remembered`,reviewGradeVague:`Hazy`,reviewGradeForgot:`Forgot`,reviewOverdue:`{n}d overdue`,reviewDueToday:`due today`,reviewNoPlacard:`(no placard)`,reviewScheduled:`Scheduled again in {n}d`,sortTime:`By time`,sortTour:`By tour route`,dueBadgeLabel:`{n} due for review — click to open`},W=[`slots`,`locale`];function G(e){e.effect(()=>e.locale.register(V,{zh:H,en:U}),`dsh-engram: dictionaries`);let t=e.locale.bind(V);e.slots.inject(`settings.section`,()=>e.slots.register({name:`settings.section`,id:`engram`,order:20,label:()=>t(`nav`),locale:V},B))}return n.apply=G,n.inject=W,t.exports}});
|
|
1
|
+
window.__ModuleLoader__.load({id:`@kenz1117/dsh-engram`,factory:e=>{var t={exports:{}},n=t.exports;Object.defineProperty(n,Symbol.toStringTag,{value:`Module`});let r=e("react"),i=e("react/jsx-runtime"),a=`@kenz1117/dsh-engram/panel.module.css`;if(typeof document<`u`&&document.querySelector(`style[data-plugin-css=`+JSON.stringify(a)+`]`)===null){let e=document.createElement(`style`);e.dataset.plugin=`@kenz1117/dsh-engram`,e.dataset.pluginCss=a,e.textContent=`:root{--ease-spring:cubic-bezier(.32, .72, 0, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.14s;--dur-base:.22s;--dur-slow:.36s;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-control:8px;--radius-card:12px;--fs-micro:11px;--fs-body:12px;--fs-ctrl:13px;--fs-display:14px;--fs-tag:10px}.bWwFiW_panel{max-width:1240px;animation:bWwFiW_panelIn var(--dur-slow) var(--ease-out) both;margin:0 auto;position:relative}@keyframes bWwFiW_panelIn{0%{opacity:0;filter:blur(2px);transform:translateY(6px)}to{opacity:1;filter:blur();transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.bWwFiW_header{justify-content:space-between;align-items:center;gap:var(--space-5);row-gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;display:flex}.bWwFiW_headerBrand{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.bWwFiW_headerLogo{border-radius:var(--radius-control);background:color-mix(in srgb, var(--dsw-alias-brand-primary) 12%, var(--dsw-alias-bg-layer-1));border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, var(--dsw-alias-border-l2));width:36px;height:36px;color:var(--dsw-alias-brand-primary);transition:transform var(--dur-base) var(--ease-spring), background var(--dur-base) var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.bWwFiW_headerLogo:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, var(--dsw-alias-bg-layer-1));transform:rotate(-6deg)}.bWwFiW_headerLogo svg{transition:transform var(--dur-slow) var(--ease-spring);display:block}.bWwFiW_headerLogo:hover svg{transform:rotate(6deg)}.bWwFiW_headerTitle{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.bWwFiW_headerTitle h2{letter-spacing:-.01em;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:600;overflow:hidden}.bWwFiW_headerTitle p{font-size:var(--fs-body);color:var(--dsw-alias-label-tertiary);margin:0;line-height:1.5}.bWwFiW_headerActions{gap:var(--space-2);flex-shrink:0;align-items:center;display:flex}.bWwFiW_dueBadge{height:28px;padding:0 var(--space-3);border-radius:var(--radius-control);border:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 38%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 8%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-primary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);align-items:center;gap:5px;line-height:1;display:inline-flex}.bWwFiW_dueBadge:hover{border-color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 14%, var(--dsw-alias-bg-layer-1))}.bWwFiW_dueBadge:active{transform:scale(.96)}.bWwFiW_dueDot{background:var(--dsw-alias-state-error-primary);border-radius:50%;flex:none;width:6px;height:6px}.bWwFiW_tabs{align-items:flex-end;gap:var(--space-5);border-bottom:1px solid var(--dsw-alias-border-l2);margin-bottom:var(--space-4);display:flex;position:relative}.bWwFiW_tabs:after{content:"";background:var(--dsw-alias-border-l2);height:1px;position:absolute;bottom:-1px;left:0;right:0}.bWwFiW_tabItem{padding:var(--space-2) 0 var(--space-3);color:var(--dsw-alias-label-tertiary);font-size:var(--fs-ctrl);cursor:pointer;transition:color var(--dur-fast) var(--ease-spring);background:0 0;border:0;font-weight:500;position:relative}.bWwFiW_tabItem:hover{color:var(--dsw-alias-label-secondary)}.bWwFiW_tabItem.bWwFiW_on{color:var(--dsw-alias-label-primary)}.bWwFiW_tabItem.bWwFiW_on:after{content:"";background:var(--dsw-alias-brand-primary);height:2px;animation:bWwFiW_tabUnderline var(--dur-base) var(--ease-spring) both;border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0}@keyframes bWwFiW_tabUnderline{0%{opacity:0;transform:scaleX(.4)}to{opacity:1;transform:scaleX(1)}}.bWwFiW_tabItem small{margin-left:var(--space-2);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.bWwFiW_tabPanel{animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both}.bWwFiW_drawerScrim{background:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, transparent);border-radius:inherit;z-index:40;animation:bWwFiW_scrimIn var(--dur-base) var(--ease-spring) both;position:absolute;inset:0}@keyframes bWwFiW_scrimIn{0%{opacity:0}to{opacity:1}}.bWwFiW_drawer{background:var(--dsw-alias-bg-base);border-left:1px solid var(--dsw-alias-border-l2);width:100%;max-height:100%;box-shadow:-16px 0 40px -16px color-mix(in srgb, var(--dsw-alias-label-primary) 25%, transparent);z-index:41;animation:bWwFiW_drawerIn var(--dur-slow) var(--ease-spring) both;border-radius:inherit;flex-direction:column;display:flex;position:absolute;top:0;bottom:auto;right:0;overflow:hidden}@keyframes bWwFiW_drawerIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.bWwFiW_drawerHead{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--dsw-alias-border-l2);flex-shrink:0;display:flex}.bWwFiW_drawerTitle{align-items:baseline;gap:var(--space-2);flex:1;min-width:0;display:flex}.bWwFiW_drawerTitle h3{font-size:var(--fs-display);color:var(--dsw-alias-label-primary);margin:0;font-weight:600}.bWwFiW_drawerTitle span{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-family:ui-monospace,SF Mono,Menlo,monospace;overflow:hidden}.bWwFiW_drawerClose{border-radius:var(--radius-control);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.bWwFiW_drawerClose:hover{background:var(--dsw-alias-fill-tsp-secondary);border-color:var(--dsw-alias-border-l2);color:var(--dsw-alias-label-primary)}.bWwFiW_drawerClose svg{display:block}.bWwFiW_drawerBody{min-height:0;padding:var(--space-4);scrollbar-width:none;flex:1;overflow-y:auto}.bWwFiW_drawerBody::-webkit-scrollbar{display:none}.bWwFiW_reviewGrid{gap:var(--space-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=720px){.bWwFiW_reviewGrid{grid-template-columns:1fr}}.bWwFiW_button{height:28px;padding:0 var(--space-3);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-secondary);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);cursor:pointer;font-size:var(--fs-body);transition:color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);justify-content:center;align-items:center;gap:5px;line-height:1;display:inline-flex}.bWwFiW_button:hover{color:var(--dsw-alias-label-primary);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 55%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-brand-primary) 5%, var(--dsw-alias-bg-layer-1))}.bWwFiW_button:active{transform:scale(.96)}.bWwFiW_button:disabled{opacity:.45;cursor:default;transform:none}.bWwFiW_button.bWwFiW_danger{color:var(--dsw-alias-state-error-primary);border-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 35%, var(--dsw-alias-border-l2))}.bWwFiW_button.bWwFiW_danger:hover{color:var(--dsw-alias-state-error-primary);border-color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_button.bWwFiW_primary{background:var(--dsw-alias-brand-primary);border-color:var(--dsw-alias-brand-primary);color:var(--dsw-alias-label-primary-foreground)}.bWwFiW_button.bWwFiW_primary:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 88%, transparent);border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 88%, transparent);color:var(--dsw-alias-label-primary-foreground);filter:brightness(1.05)}.bWwFiW_button.bWwFiW_primary:disabled{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, transparent);opacity:.6;border-color:#0000}.bWwFiW_input{background:var(--dsw-alias-bg-layer-1);height:28px;color:var(--dsw-alias-label-primary);border:1px solid var(--dsw-alias-border-l2);transition:border-color var(--dur-fast) var(--ease-spring), box-shadow var(--dur-fast) var(--ease-spring);border-radius:8px;padding:0 10px;font-size:12px;line-height:1}.bWwFiW_input::placeholder{color:var(--dsw-alias-label-tertiary)}.bWwFiW_input:hover{border-color:color-mix(in srgb, var(--dsw-alias-label-primary) 22%, var(--dsw-alias-border-l2))}.bWwFiW_input:focus-visible{border-color:var(--dsw-alias-brand-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, transparent);outline:none}.bWwFiW_search{flex:1;min-width:120px}select.bWwFiW_input{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--dsw-alias-label-tertiary) 50%), linear-gradient(135deg, var(--dsw-alias-label-tertiary) 50%, transparent 50%);transition:background-position var(--dur-fast) var(--ease-spring);background-position:calc(100% - 13px) 12px,calc(100% - 8px) 12px;background-repeat:no-repeat;background-size:5px 5px;padding-right:24px}.bWwFiW_segGroup{background:var(--dsw-alias-fill-tsp-secondary);border-radius:9px;gap:2px;padding:2px;display:inline-flex;position:relative}.bWwFiW_segItem{height:24px;color:var(--dsw-alias-label-tertiary);cursor:pointer;font-size:var(--fs-body);transition:color var(--dur-fast) var(--ease-spring), transform 80ms var(--ease-spring);z-index:1;white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;padding:0 12px;line-height:1;display:inline-flex;position:relative}.bWwFiW_segItem:hover{color:var(--dsw-alias-label-secondary)}.bWwFiW_segItem:active{transform:scale(.96)}.bWwFiW_segItem.bWwFiW_on{color:var(--dsw-alias-label-primary)}.bWwFiW_segIndicator{z-index:0;background:var(--dsw-alias-bg-layer-1);box-shadow:0 1px 2px color-mix(in srgb, var(--dsw-alias-label-primary) 10%, transparent), inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-border-l2) 60%, transparent);transition:left var(--dur-base) var(--ease-spring), width var(--dur-base) var(--ease-spring), opacity var(--dur-fast) var(--ease-spring);pointer-events:none;border-radius:7px;position:absolute;top:2px;bottom:2px}.bWwFiW_segScope{border-radius:10px;padding:3px}.bWwFiW_layout{gap:var(--space-5);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.bWwFiW_mainCol{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.bWwFiW_sideCol{gap:var(--space-4);min-width:0;top:var(--space-3);flex-direction:column;display:flex;position:sticky}@media (width<=960px){.bWwFiW_layout{gap:var(--space-4);grid-template-columns:1fr}.bWwFiW_sideCol{position:static}}.bWwFiW_filters{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_filters .bWwFiW_segGroup{flex:none}.bWwFiW_filters .bWwFiW_search{flex:1;min-width:160px}.bWwFiW_exportWrap{display:inline-flex;position:relative}.bWwFiW_exportCaret{opacity:.7;transition:transform var(--dur-fast) var(--ease-spring);margin-left:4px;font-size:9px}.bWwFiW_exportWrap button[aria-expanded=true] .bWwFiW_exportCaret{transform:rotate(180deg)}.bWwFiW_exportMenu{background:var(--dsw-alias-bg-base);border:1px solid var(--dsw-alias-border-l2);min-width:220px;box-shadow:0 8px 24px -10px color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);z-index:30;animation:bWwFiW_drawerIn var(--dur-base) var(--ease-spring) both;border-radius:10px;padding:4px;position:absolute;top:calc(100% + 4px);right:0}.bWwFiW_exportItem{color:var(--dsw-alias-label-primary);transition:background var(--dur-fast) var(--ease-spring);border-radius:7px;flex-direction:column;gap:2px;padding:8px 10px;text-decoration:none;display:flex}.bWwFiW_exportItem:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 8%, var(--dsw-alias-bg-layer-1))}.bWwFiW_exportItemLabel{font-size:13px;font-weight:500;line-height:1.2}.bWwFiW_exportItemHint{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:1.3}.bWwFiW_batchBar{bottom:var(--space-3);z-index:5;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:color-mix(in srgb, var(--dsw-alias-bg-layer-1) 88%, transparent);-webkit-backdrop-filter:blur(10px);border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, var(--dsw-alias-border-l2));border-radius:var(--radius-card);box-shadow:0 8px 24px -12px color-mix(in srgb, var(--dsw-alias-label-primary) 30%, transparent);animation:bWwFiW_barUp var(--dur-base) var(--ease-spring) both;flex-wrap:wrap;align-items:center;display:flex;position:sticky}@keyframes bWwFiW_barUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.bWwFiW_batchBar>span{color:var(--dsw-alias-label-primary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;margin-right:auto}.bWwFiW_batchBar .bWwFiW_button{height:26px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_itemList{border-top:1px solid var(--dsw-alias-border-l1);flex-direction:column;display:flex}.bWwFiW_item{gap:var(--space-3);padding:var(--space-3) var(--space-2);border-bottom:1px solid var(--dsw-alias-border-l1);border-radius:var(--radius-control);transition:background var(--dur-fast) var(--ease-spring);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both;grid-template-columns:20px minmax(0,1fr) auto;align-items:start;display:grid}.bWwFiW_itemList>.bWwFiW_item:last-child{border-bottom:0}@keyframes bWwFiW_itemIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.bWwFiW_item:hover{background:var(--dsw-alias-bg-layer-1)}.bWwFiW_item.bWwFiW_selected{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 6%, var(--dsw-alias-bg-layer-1));box-shadow:inset 2px 0 0 var(--dsw-alias-brand-primary)}.bWwFiW_itemCheck{width:14px;height:14px;accent-color:var(--dsw-alias-brand-primary);cursor:pointer;transition:transform 80ms var(--ease-spring);margin-top:3px}.bWwFiW_itemCheck:active{transform:scale(.85)}.bWwFiW_itemBody{flex-direction:column;gap:4px;min-width:0;display:flex}.bWwFiW_itemTags{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_itemStamp{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);white-space:nowrap;margin-left:auto}.bWwFiW_content{white-space:pre-wrap;word-break:break-word;color:var(--dsw-alias-label-primary);font-size:var(--fs-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.6;display:-webkit-box;overflow:hidden}.bWwFiW_itemMeta{gap:var(--space-3);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_itemMeta b{color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;font-weight:500}.bWwFiW_itemOps{gap:var(--space-1);opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-spring), visibility var(--dur-fast) var(--ease-spring);flex-shrink:0;align-items:center;display:flex}.bWwFiW_item:hover .bWwFiW_itemOps,.bWwFiW_item.bWwFiW_selected .bWwFiW_itemOps,.bWwFiW_item:focus-within .bWwFiW_itemOps{opacity:1;visibility:visible}.bWwFiW_itemOps .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}@media (hover:none){.bWwFiW_itemOps{opacity:1;visibility:visible}}@media (width<=720px){.bWwFiW_item{grid-template-columns:20px minmax(0,1fr)}.bWwFiW_itemOps{grid-column:2;justify-content:flex-end}}.bWwFiW_pill{height:18px;font-size:var(--fs-tag);background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 14%, transparent);color:var(--dsw-alias-label-secondary);white-space:nowrap;animation:bWwFiW_pillIn var(--dur-base) var(--ease-spring) both;transition:transform var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring);border-radius:999px;align-items:center;padding:0 7px;line-height:1;display:inline-flex}@keyframes bWwFiW_pillIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}.bWwFiW_pill:hover{transform:translateY(-1px)}.bWwFiW_pill.bWwFiW_kind{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 10%, transparent);color:var(--dsw-alias-brand-primary)}.bWwFiW_pill.bWwFiW_statusActive{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent);color:var(--dsw-alias-state-success-primary)}.bWwFiW_pill.bWwFiW_statusArchived{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);color:var(--dsw-alias-state-warn-primary)}.bWwFiW_pill.bWwFiW_statusForgotten{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);color:var(--dsw-alias-state-error-primary)}.bWwFiW_pill.bWwFiW_outcomeSuccess{background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent);color:var(--dsw-alias-state-success-primary)}.bWwFiW_pill.bWwFiW_outcomeFailure{background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent);color:var(--dsw-alias-state-error-primary)}.bWwFiW_pill.bWwFiW_redacted{background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);color:var(--dsw-alias-state-warn-primary)}.bWwFiW_expand{border-top:1px dashed var(--dsw-alias-border-l2);animation:bWwFiW_expandIn var(--dur-slow) var(--ease-spring) both;grid-column:1/-1;margin-top:4px;padding-top:10px;overflow:hidden}@keyframes bWwFiW_expandIn{0%{opacity:0;max-height:0;transform:translateY(-4px)}to{opacity:1;max-height:1200px;transform:none}}.bWwFiW_expandLoading{color:var(--dsw-alias-label-tertiary);animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both;padding:6px 0;font-size:12px}@keyframes bWwFiW_fadeSoft{0%{opacity:0}to{opacity:1}}.bWwFiW_attrGrid{grid-template-columns:max-content 1fr;align-items:center;gap:6px 14px;font-size:12px;display:grid}.bWwFiW_attrGrid>dt{color:var(--dsw-alias-label-tertiary);margin:0;font-size:11px}.bWwFiW_attrGrid>dd{color:var(--dsw-alias-label-primary);flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.bWwFiW_relBlock{margin-top:10px}.bWwFiW_relBlock>h5{color:var(--dsw-alias-label-tertiary);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:500}.bWwFiW_relChips{flex-wrap:wrap;gap:4px;display:flex}.bWwFiW_relChip{border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-base);text-overflow:ellipsis;white-space:nowrap;border-radius:4px;max-width:100%;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;overflow:hidden}.bWwFiW_timeline{margin:var(--space-2) 0 0;padding:0 0 0 var(--space-3);list-style:none;position:relative}.bWwFiW_timeline:before{background:var(--dsw-alias-border-l2);content:"";width:1px;position:absolute;top:6px;bottom:6px;left:3px}.bWwFiW_timeline li{padding:var(--space-1) 0 var(--space-1) var(--space-3);font-size:var(--fs-micro);color:var(--dsw-alias-label-secondary);line-height:1.55;position:relative}.bWwFiW_timeline li:before{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-brand-primary);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:-10px}.bWwFiW_editForm{flex-direction:column;gap:10px;display:flex}.bWwFiW_editForm .bWwFiW_input{box-sizing:border-box;width:100%}.bWwFiW_editForm textarea.bWwFiW_input{resize:vertical;height:auto;min-height:64px;padding:8px 10px;line-height:1.55}.bWwFiW_fieldLabel{color:var(--dsw-alias-label-secondary);margin-bottom:4px;font-size:11px;display:block}.bWwFiW_fieldRow{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.bWwFiW_fieldRow .bWwFiW_fieldLabel{flex:1;min-width:120px}.bWwFiW_fieldRow input[type=range]{accent-color:var(--dsw-alias-brand-primary);width:100%}.bWwFiW_modalFoot{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.bWwFiW_pager{gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-1) 0;color:var(--dsw-alias-label-secondary);font-size:var(--fs-body);font-variant-numeric:tabular-nums;animation:bWwFiW_fadeSoft var(--dur-base) var(--ease-spring) both;justify-content:center;align-items:center;display:flex}.bWwFiW_pager .bWwFiW_button{width:28px;transition:transform var(--dur-fast) var(--ease-spring), opacity var(--dur-fast) var(--ease-spring), background var(--dur-fast) var(--ease-spring);padding:0}.bWwFiW_pager .bWwFiW_button:not(:disabled):hover{transform:translateY(-1px)}.bWwFiW_pager .bWwFiW_button:disabled{opacity:.3}.bWwFiW_skeletonList{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_skeleton{border-radius:var(--radius-control);border:1px solid var(--dsw-alias-border-l2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-layer-1);gap:var(--space-2);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both;flex-direction:column;display:flex}.bWwFiW_skeleton i{background:linear-gradient(90deg, color-mix(in srgb, var(--dsw-alias-label-tertiary) 10%, transparent) 25%, color-mix(in srgb, var(--dsw-alias-label-tertiary) 22%, transparent) 50%, color-mix(in srgb, var(--dsw-alias-label-tertiary) 10%, transparent) 75%);background-size:200% 100%;border-radius:4px;height:10px;animation:1.6s linear infinite bWwFiW_shimmer;display:block}.bWwFiW_skeleton i:first-child{width:30%}.bWwFiW_skeleton i:nth-child(2){width:80%;animation-delay:80ms}.bWwFiW_skeleton i:last-child{width:55%;animation-delay:.16s}@keyframes bWwFiW_shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.bWwFiW_empty{text-align:center;color:var(--dsw-alias-label-secondary);font-size:var(--fs-ctrl);animation:bWwFiW_fadeSoft var(--dur-slow) var(--ease-spring) both;padding:56px 16px}.bWwFiW_empty b{color:var(--dsw-alias-label-primary);font-size:var(--fs-display);margin-bottom:var(--space-1);font-weight:500;display:block}.bWwFiW_empty span{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-body)}.bWwFiW_empty:before{content:"";border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 35%, var(--dsw-alias-border-l2));background:linear-gradient(135deg, color-mix(in srgb, var(--dsw-alias-brand-primary) 18%, transparent), transparent 70%);width:36px;height:36px;animation:bWwFiW_floaty 6s var(--ease-in-out) infinite;border-radius:10px;margin:0 auto 14px;display:block}@keyframes bWwFiW_floaty{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-3px)rotate(2deg)}}.bWwFiW_panelCard{background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-card);padding:var(--space-4);animation:bWwFiW_cardIn var(--dur-slow) var(--ease-spring) both;transition:border-color var(--dur-base) var(--ease-spring);position:relative}@keyframes bWwFiW_cardIn{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:none}}.bWwFiW_panelCard:hover{border-color:color-mix(in srgb, var(--dsw-alias-label-primary) 18%, var(--dsw-alias-border-l2))}.bWwFiW_panelCard+.bWwFiW_panelCard{animation-delay:60ms}.bWwFiW_benchBar{gap:var(--space-2);margin-bottom:var(--space-3);display:flex}.bWwFiW_benchBar .bWwFiW_search{flex:1;min-width:0}.bWwFiW_benchBar .bWwFiW_button{flex:none}.bWwFiW_benchMeta{gap:var(--space-3);margin-bottom:var(--space-2);color:var(--dsw-alias-label-tertiary);font-size:var(--fs-micro);flex-wrap:wrap;align-items:baseline;display:flex}.bWwFiW_degradedNote{color:var(--dsw-alias-state-warn-primary)}.bWwFiW_benchEmpty{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-body);padding:var(--space-2) 0}.bWwFiW_benchList{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_benchRow{border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-base);transition:border-color var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both}.bWwFiW_benchRow:hover{border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 40%, var(--dsw-alias-border-l2));transform:translate(2px)}.bWwFiW_benchHead{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_benchHead .bWwFiW_pill{font-size:var(--fs-tag);height:16px;padding:0 6px}.bWwFiW_viaChip{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-fill-tsp-secondary);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-tag);border-radius:4px;height:16px;padding:0 6px;line-height:16px}.bWwFiW_benchScore{color:var(--dsw-alias-label-tertiary);font-size:var(--fs-micro);font-variant-numeric:tabular-nums;margin-left:auto}.bWwFiW_benchContent{margin:var(--space-2) 0;color:var(--dsw-alias-label-primary);font-size:var(--fs-body);word-break:break-word;-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.bWwFiW_benchId{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.bWwFiW_mapWrap{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_map{background:color-mix(in srgb, var(--dsw-alias-bg-base) 70%, transparent);border-radius:var(--radius-control);border:1px solid var(--dsw-alias-border-l2);user-select:none;width:100%;height:auto;display:block}.bWwFiW_node{cursor:grab;transition:transform var(--dur-fast) var(--ease-spring)}.bWwFiW_node:active{cursor:grabbing}.bWwFiW_tooltip{pointer-events:none}.bWwFiW_legend{gap:var(--space-3);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);flex-wrap:wrap;align-items:center;display:flex}.bWwFiW_legendItem{align-items:center;gap:var(--space-1);display:inline-flex}.bWwFiW_legendDot{border-radius:50%;width:8px;height:8px;display:inline-block}.bWwFiW_node,.bWwFiW_edgeFade{animation:bWwFiW_corridorFadeIn var(--dur-slow) var(--ease-spring) backwards}@keyframes bWwFiW_corridorFadeIn{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}.bWwFiW_progressBar{background:color-mix(in srgb, var(--dsw-alias-label-tertiary) 18%, transparent);border-radius:2px;height:4px;overflow:hidden}.bWwFiW_progressBar i{background:var(--dsw-alias-brand-primary);height:100%;transition:width var(--dur-slow) var(--ease-out);border-radius:2px;display:block}.bWwFiW_telePrivacy{align-items:center;gap:var(--space-1);border-radius:var(--radius-control);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);cursor:help;transition:background var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;outline:none;align-self:center;padding:4px 8px;display:inline-flex;position:relative}.bWwFiW_telePrivacy:hover,.bWwFiW_telePrivacy:focus-visible{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-fill-tsp-secondary);border-color:var(--dsw-alias-border-l2)}.bWwFiW_telePrivacy svg{opacity:.85;flex:none}.bWwFiW_telePrivacyHint{white-space:nowrap}.bWwFiW_telePrivacyTip{min-width:260px;max-width:320px;padding:var(--space-2) var(--space-3);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:var(--radius-control);box-shadow:0 6px 18px -8px color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);font-size:var(--fs-body);color:var(--dsw-alias-label-primary);white-space:normal;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);z-index:5;text-align:left;line-height:1.5;position:absolute;top:calc(100% + 6px);right:0;transform:translateY(-2px)}.bWwFiW_telePrivacy:hover .bWwFiW_telePrivacyTip,.bWwFiW_telePrivacy:focus-visible .bWwFiW_telePrivacyTip{opacity:1;transform:translateY(0)}.bWwFiW_timeline li{animation:bWwFiW_itemIn var(--dur-base) var(--ease-spring) both}.bWwFiW_timeline li:nth-child(2){animation-delay:40ms}.bWwFiW_timeline li:nth-child(3){animation-delay:80ms}.bWwFiW_timeline li:nth-child(4){animation-delay:.12s}.bWwFiW_timeline li:nth-child(5){animation-delay:.16s}.bWwFiW_timeline li:nth-child(n+6){animation-delay:.2s}.bWwFiW_tourProposal{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_tourFocusRow{gap:var(--space-1);padding-bottom:var(--space-2);border-bottom:1px dashed var(--dsw-alias-border-l2);flex-wrap:wrap;display:flex}.bWwFiW_tourFocusChip{font-size:var(--fs-micro);letter-spacing:.04em;padding:3px var(--space-2);border:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-tertiary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), color var(--dur-fast) var(--ease-spring);background:0 0;border-radius:999px}.bWwFiW_tourFocusChip:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 6%, var(--dsw-alias-bg-layer-1));color:var(--dsw-alias-label-secondary)}.bWwFiW_tourFocusChipOn{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, var(--dsw-alias-bg-layer-1));border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 45%, var(--dsw-alias-border-l2));color:var(--dsw-alias-label-primary)}.bWwFiW_tourFocusChipOn:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 20%, var(--dsw-alias-bg-layer-1))}.bWwFiW_tourGreeting{font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);margin:0;line-height:1.55}.bWwFiW_tourStops{gap:var(--space-1);counter-reset:tour;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_tourStops li{animation:bWwFiW_tourItemIn var(--dur-base) var(--ease-spring) backwards}.bWwFiW_tourStops li:nth-child(2){animation-delay:40ms}.bWwFiW_tourStops li:nth-child(3){animation-delay:80ms}.bWwFiW_tourStops li:nth-child(4){animation-delay:.12s}.bWwFiW_tourStops li:nth-child(n+5){animation-delay:.16s}.bWwFiW_tourStop{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-control);color:inherit;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-spring), border-color var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring);background:0 0;border:1px solid #0000;display:flex}.bWwFiW_tourStop:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 6%, var(--dsw-alias-bg-layer-1));border-color:color-mix(in srgb, var(--dsw-alias-brand-primary) 28%, var(--dsw-alias-border-l2));transform:translate(2px)}.bWwFiW_tourStop:active{transform:translate(2px)scale(.99)}@keyframes bWwFiW_tourItemIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}.bWwFiW_tourStopIndex{width:20px;height:20px;font-size:var(--fs-micro);color:var(--dsw-alias-label-primary-foreground);background:var(--dsw-alias-brand-primary);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}.bWwFiW_tourStopBody{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bWwFiW_tourStopKind{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);letter-spacing:.04em;text-transform:uppercase}.bWwFiW_tourStopText{font-size:var(--fs-body);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;line-height:1.4;overflow:hidden}.bWwFiW_tourHint{margin:var(--space-1) 0 0;font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);line-height:1.4}.bWwFiW_refurb{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_refurbHead{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.bWwFiW_refurbHead .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_refurbCount{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.bWwFiW_refurbList{gap:var(--space-1);animation:bWwFiW_refurbReflow var(--dur-slow) var(--ease-spring) backwards;flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_refurbItem{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-fill-tsp-secondary);border-radius:var(--radius-control);font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);animation:bWwFiW_refurbItemIn var(--dur-base) var(--ease-spring) backwards;flex-wrap:wrap;display:flex}.bWwFiW_refurbItem:nth-child(2){animation-delay:40ms}.bWwFiW_refurbItem:nth-child(3){animation-delay:80ms}.bWwFiW_refurbItem:nth-child(4){animation-delay:.12s}.bWwFiW_refurbItem:nth-child(n+5){animation-delay:.16s}@keyframes bWwFiW_refurbReflow{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}@keyframes bWwFiW_refurbItemIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.bWwFiW_refurbBadge{padding:2px var(--space-2);font-size:var(--fs-micro);letter-spacing:.04em;background:color-mix(in srgb, var(--dsw-alias-brand-primary) 14%, var(--dsw-alias-bg-layer-1));border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary) 30%, var(--dsw-alias-border-l2));color:var(--dsw-alias-label-primary);cursor:pointer;transition:background var(--dur-fast) var(--ease-spring);border-radius:999px;flex:none;font-weight:600}.bWwFiW_refurbBadge:hover{background:color-mix(in srgb, var(--dsw-alias-brand-primary) 22%, var(--dsw-alias-bg-layer-1))}.bWwFiW_refurbReason{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:120px;line-height:1.45;display:-webkit-box;overflow:hidden}.bWwFiW_refurbConfidence{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}.bWwFiW_refurbExec{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro);flex:none;line-height:1}.bWwFiW_reviewQueue{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bWwFiW_reviewItem{gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--dsw-alias-fill-tsp-secondary);border-radius:var(--radius-control);animation:bWwFiW_refurbItemIn var(--dur-base) var(--ease-spring) backwards;flex-direction:column;display:flex}.bWwFiW_reviewCue{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.bWwFiW_reviewSlot{font-size:var(--fs-micro);color:var(--dsw-alias-brand-primary);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.bWwFiW_reviewCaption{min-width:100px;font-size:var(--fs-body);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;flex:1;line-height:1.4;overflow:hidden}.bWwFiW_reviewOverdue{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none}.bWwFiW_reviewContent{font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);padding:var(--space-2);background:var(--dsw-alias-bg-layer-1);border-radius:var(--radius-control);word-break:break-word;line-height:1.5}.bWwFiW_reviewGrades{gap:var(--space-2);display:flex}.bWwFiW_reviewGrades .bWwFiW_button{height:24px;padding:0 var(--space-2);font-size:var(--fs-micro)}.bWwFiW_backfill{gap:var(--space-3);flex-direction:column;display:flex}.bWwFiW_backfillIntro{font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);margin:0;line-height:1.6}.bWwFiW_backfillRules{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.bWwFiW_backfillRule{gap:var(--space-1);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);flex-direction:column;display:flex}.bWwFiW_backfillToggles{gap:var(--space-4);padding-top:var(--space-1);flex-wrap:wrap;display:flex}.bWwFiW_backfillToggle{align-items:center;gap:var(--space-2);font-size:var(--fs-body);color:var(--dsw-alias-label-secondary);cursor:pointer;display:inline-flex}.bWwFiW_backfillEstimate{gap:var(--space-2);padding:var(--space-3);background:var(--dsw-alias-fill-tsp-secondary);border-radius:var(--radius-control);flex-direction:column;display:flex}.bWwFiW_backfillNumbers{gap:var(--space-5);flex-wrap:wrap;display:flex}.bWwFiW_backfillMetric{font-size:var(--fs-body);color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums}.bWwFiW_backfillMuted{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);line-height:1.5}.bWwFiW_backfillActions{gap:var(--space-2);flex-wrap:wrap;display:flex}.bWwFiW_backfillProgress{gap:var(--space-2);flex-direction:column;display:flex}.bWwFiW_backfillProgressHead{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--fs-micro);color:var(--dsw-alias-label-secondary);font-variant-numeric:tabular-nums;display:flex}.bWwFiW_backfillMeta{gap:var(--space-4);font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.bWwFiW_backfillFailures{font-size:var(--fs-micro);color:var(--dsw-alias-label-secondary);flex-direction:column;gap:2px;margin:0;padding:0;font-family:ui-monospace,SF Mono,Menlo,monospace;list-style:none;display:flex}.bWwFiW_toastViewport{top:var(--space-4);right:var(--space-4);z-index:9999;gap:var(--space-2);pointer-events:none;flex-direction:column;max-width:min(360px,100vw - 32px);display:flex;position:fixed}.bWwFiW_toast{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-card);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:0 6px 18px -8px color-mix(in srgb, var(--dsw-alias-label-primary) 24%, transparent);font-size:var(--fs-body);color:var(--dsw-alias-label-primary);pointer-events:auto;animation:bWwFiW_toastIn var(--dur-base) var(--ease-spring) both;line-height:1.5;display:flex}.bWwFiW_toastBody{word-break:break-word;flex:1;min-width:0}.bWwFiW_toastDismiss{color:var(--dsw-alias-label-tertiary);cursor:pointer;padding:0 var(--space-1);transition:color var(--dur-fast) var(--ease-spring);background:0 0;border:none;font-size:16px;line-height:1}.bWwFiW_toastDismiss:hover{color:var(--dsw-alias-label-primary)}.bWwFiW_toastInfo{border-left:3px solid var(--dsw-alias-brand-primary)}.bWwFiW_toastSuccess{border-left:3px solid color-mix(in srgb, var(--dsw-alias-state-success-primary,#2da44e) 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-success-primary,#2da44e) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_toastError{border-left:3px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1))}.bWwFiW_toastWarning{border-left:3px solid color-mix(in srgb, #d4a017 80%, var(--dsw-alias-border-l2));background:color-mix(in srgb, #d4a017 6%, var(--dsw-alias-bg-layer-1))}@keyframes bWwFiW_toastIn{0%{opacity:0;transform:translate(8px)scale(.98)}to{opacity:1;transform:none}}.bWwFiW_section{margin-bottom:var(--space-5)}.bWwFiW_section:last-child{margin-bottom:0}.bWwFiW_sectionHead{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.bWwFiW_sectionTitle{font-size:var(--fs-ctrl);color:var(--dsw-alias-label-primary);margin:0;font-weight:600}.bWwFiW_sectionHint{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);line-height:1.4}.bWwFiW_sectionAction{align-self:center;margin-left:auto}.bWwFiW_hero{gap:var(--space-5);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.bWwFiW_heroMetrics{gap:var(--space-6);flex-wrap:wrap;min-width:0;display:flex}.bWwFiW_heroSide{align-items:center;gap:var(--space-4);min-width:0;display:flex}.bWwFiW_heroFoot{justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--dsw-alias-border-l1);flex-wrap:wrap;display:flex}.bWwFiW_metric{flex-direction:column;gap:2px;min-width:0;display:flex}.bWwFiW_metricLabel{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);white-space:nowrap}.bWwFiW_metricValue{letter-spacing:-.02em;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;line-height:1.1}.bWwFiW_metricValueSecondary{font-size:20px}.bWwFiW_metricTail{font-size:var(--fs-micro);color:var(--dsw-alias-label-tertiary);white-space:nowrap}.bWwFiW_ring{flex-shrink:0;width:56px;height:56px;position:relative}.bWwFiW_ring svg{display:block;transform:rotate(-90deg)}.bWwFiW_ring b{font-size:var(--fs-display);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}:root{--room-fact:#3b6ef5;--room-preference:#a45cf0;--room-decision:#16a394;--room-episode:#e08a2e;--room-skill:#d94f8a}@media (prefers-color-scheme:dark){:root{--room-fact:#6b96ff;--room-preference:#bb86f7;--room-decision:#3fc7b5;--room-episode:#f0a95a;--room-skill:#f077a9}}.bWwFiW_pill.bWwFiW_roomFact{background:color-mix(in srgb, var(--room-fact) 12%, transparent);color:var(--room-fact)}.bWwFiW_pill.bWwFiW_roomPreference{background:color-mix(in srgb, var(--room-preference) 12%, transparent);color:var(--room-preference)}.bWwFiW_pill.bWwFiW_roomDecision{background:color-mix(in srgb, var(--room-decision) 12%, transparent);color:var(--room-decision)}.bWwFiW_pill.bWwFiW_roomEpisode{background:color-mix(in srgb, var(--room-episode) 12%, transparent);color:var(--room-episode)}.bWwFiW_pill.bWwFiW_roomSkill{background:color-mix(in srgb, var(--room-skill) 12%, transparent);color:var(--room-skill)}.bWwFiW_roomList{flex-direction:column;display:flex}.bWwFiW_roomRow{gap:var(--space-3);font-size:var(--fs-body);grid-template-columns:10px minmax(0,1fr) auto;align-items:center;padding:6px 0;display:grid}.bWwFiW_roomSwatch{background:var(--room-fact);border-radius:3px;width:10px;height:10px}.bWwFiW_roomSwatch.bWwFiW_roomFact{background:var(--room-fact)}.bWwFiW_roomSwatch.bWwFiW_roomPreference{background:var(--room-preference)}.bWwFiW_roomSwatch.bWwFiW_roomDecision{background:var(--room-decision)}.bWwFiW_roomSwatch.bWwFiW_roomEpisode{background:var(--room-episode)}.bWwFiW_roomSwatch.bWwFiW_roomSkill{background:var(--room-skill)}.bWwFiW_roomCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.bWwFiW_logList{flex-direction:column;padding:0;display:flex}.bWwFiW_logRow{gap:var(--space-3);padding:var(--space-2);border-bottom:1px solid var(--dsw-alias-border-l1);font-size:var(--fs-body);grid-template-columns:76px 96px 60px minmax(0,1fr);align-items:baseline;display:grid}.bWwFiW_logRow:last-child{border-bottom:0}.bWwFiW_logRow:hover{background:var(--dsw-alias-bg-layer-1)}.bWwFiW_logTime{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.bWwFiW_logOp{color:var(--dsw-alias-label-primary);font-weight:500}.bWwFiW_logScope{color:var(--dsw-alias-label-tertiary)}.bWwFiW_logDetail{color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (width<=960px){.bWwFiW_hero{grid-template-columns:1fr}.bWwFiW_heroMetrics{gap:var(--space-5)}.bWwFiW_logRow{grid-template-columns:64px 88px minmax(0,1fr)}.bWwFiW_logScope{display:none}}@media (width<=720px){.bWwFiW_metricValue{font-size:22px}}`,document.head.appendChild(e)}var o={statusActive:`bWwFiW_statusActive`,itemIn:`bWwFiW_itemIn`,backfillProgressHead:`bWwFiW_backfillProgressHead`,logTime:`bWwFiW_logTime`,degradedNote:`bWwFiW_degradedNote`,segScope:`bWwFiW_segScope`,telePrivacy:`bWwFiW_telePrivacy`,editForm:`bWwFiW_editForm`,benchHead:`bWwFiW_benchHead`,backfillRules:`bWwFiW_backfillRules`,pillIn:`bWwFiW_pillIn`,mapWrap:`bWwFiW_mapWrap`,drawerClose:`bWwFiW_drawerClose`,tourProposal:`bWwFiW_tourProposal`,benchRow:`bWwFiW_benchRow`,tourFocusRow:`bWwFiW_tourFocusRow`,reviewItem:`bWwFiW_reviewItem`,toastViewport:`bWwFiW_toastViewport`,refurbItemIn:`bWwFiW_refurbItemIn`,floaty:`bWwFiW_floaty`,ring:`bWwFiW_ring`,panelIn:`bWwFiW_panelIn`,drawerIn:`bWwFiW_drawerIn`,exportItemLabel:`bWwFiW_exportItemLabel`,pill:`bWwFiW_pill`,mainCol:`bWwFiW_mainCol`,shimmer:`bWwFiW_shimmer`,headerBrand:`bWwFiW_headerBrand`,panel:`bWwFiW_panel`,tourFocusChip:`bWwFiW_tourFocusChip`,tourItemIn:`bWwFiW_tourItemIn`,tabItem:`bWwFiW_tabItem`,backfillNumbers:`bWwFiW_backfillNumbers`,refurbBadge:`bWwFiW_refurbBadge`,sectionAction:`bWwFiW_sectionAction`,batchBar:`bWwFiW_batchBar`,exportMenu:`bWwFiW_exportMenu`,reviewCaption:`bWwFiW_reviewCaption`,tourStopIndex:`bWwFiW_tourStopIndex`,backfillEstimate:`bWwFiW_backfillEstimate`,metricValue:`bWwFiW_metricValue`,roomCount:`bWwFiW_roomCount`,progressBar:`bWwFiW_progressBar`,backfillMetric:`bWwFiW_backfillMetric`,drawerScrim:`bWwFiW_drawerScrim`,toastSuccess:`bWwFiW_toastSuccess`,sectionHint:`bWwFiW_sectionHint`,headerActions:`bWwFiW_headerActions`,exportItem:`bWwFiW_exportItem`,item:`bWwFiW_item`,search:`bWwFiW_search`,benchList:`bWwFiW_benchList`,tourStop:`bWwFiW_tourStop`,backfillRule:`bWwFiW_backfillRule`,logDetail:`bWwFiW_logDetail`,logScope:`bWwFiW_logScope`,dueDot:`bWwFiW_dueDot`,tabUnderline:`bWwFiW_tabUnderline`,scrimIn:`bWwFiW_scrimIn`,itemCheck:`bWwFiW_itemCheck`,sideCol:`bWwFiW_sideCol`,timeline:`bWwFiW_timeline`,itemMeta:`bWwFiW_itemMeta`,redacted:`bWwFiW_redacted`,barUp:`bWwFiW_barUp`,empty:`bWwFiW_empty`,refurbConfidence:`bWwFiW_refurbConfidence`,filters:`bWwFiW_filters`,roomFact:`bWwFiW_roomFact`,itemList:`bWwFiW_itemList`,selected:`bWwFiW_selected`,panelCard:`bWwFiW_panelCard`,heroMetrics:`bWwFiW_heroMetrics`,outcomeFailure:`bWwFiW_outcomeFailure`,legendItem:`bWwFiW_legendItem`,tourHint:`bWwFiW_tourHint`,fieldRow:`bWwFiW_fieldRow`,toastDismiss:`bWwFiW_toastDismiss`,node:`bWwFiW_node`,corridorFadeIn:`bWwFiW_corridorFadeIn`,segGroup:`bWwFiW_segGroup`,heroFoot:`bWwFiW_heroFoot`,tourStopKind:`bWwFiW_tourStopKind`,exportWrap:`bWwFiW_exportWrap`,metricLabel:`bWwFiW_metricLabel`,tabPanel:`bWwFiW_tabPanel`,modalFoot:`bWwFiW_modalFoot`,toastIn:`bWwFiW_toastIn`,roomDecision:`bWwFiW_roomDecision`,roomRow:`bWwFiW_roomRow`,drawerTitle:`bWwFiW_drawerTitle`,roomSkill:`bWwFiW_roomSkill`,primary:`bWwFiW_primary`,relChips:`bWwFiW_relChips`,backfillToggles:`bWwFiW_backfillToggles`,attrGrid:`bWwFiW_attrGrid`,benchBar:`bWwFiW_benchBar`,dueBadge:`bWwFiW_dueBadge`,viaChip:`bWwFiW_viaChip`,tourStops:`bWwFiW_tourStops`,tourStopBody:`bWwFiW_tourStopBody`,tourStopText:`bWwFiW_tourStopText`,legendDot:`bWwFiW_legendDot`,tooltip:`bWwFiW_tooltip`,drawerHead:`bWwFiW_drawerHead`,itemTags:`bWwFiW_itemTags`,telePrivacyTip:`bWwFiW_telePrivacyTip`,tourGreeting:`bWwFiW_tourGreeting`,headerTitle:`bWwFiW_headerTitle`,refurbExec:`bWwFiW_refurbExec`,reviewQueue:`bWwFiW_reviewQueue`,reviewOverdue:`bWwFiW_reviewOverdue`,fadeSoft:`bWwFiW_fadeSoft`,pager:`bWwFiW_pager`,expandLoading:`bWwFiW_expandLoading`,tourFocusChipOn:`bWwFiW_tourFocusChipOn`,reviewSlot:`bWwFiW_reviewSlot`,benchId:`bWwFiW_benchId`,backfill:`bWwFiW_backfill`,exportItemHint:`bWwFiW_exportItemHint`,tabs:`bWwFiW_tabs`,statusArchived:`bWwFiW_statusArchived`,benchContent:`bWwFiW_benchContent`,statusForgotten:`bWwFiW_statusForgotten`,telePrivacyHint:`bWwFiW_telePrivacyHint`,backfillIntro:`bWwFiW_backfillIntro`,metricValueSecondary:`bWwFiW_metricValueSecondary`,backfillMuted:`bWwFiW_backfillMuted`,itemStamp:`bWwFiW_itemStamp`,refurbItem:`bWwFiW_refurbItem`,reviewGrades:`bWwFiW_reviewGrades`,segIndicator:`bWwFiW_segIndicator`,backfillProgress:`bWwFiW_backfillProgress`,metric:`bWwFiW_metric`,relBlock:`bWwFiW_relBlock`,benchEmpty:`bWwFiW_benchEmpty`,reviewCue:`bWwFiW_reviewCue`,itemBody:`bWwFiW_itemBody`,metricTail:`bWwFiW_metricTail`,benchScore:`bWwFiW_benchScore`,hero:`bWwFiW_hero`,exportCaret:`bWwFiW_exportCaret`,outcomeSuccess:`bWwFiW_outcomeSuccess`,legend:`bWwFiW_legend`,logList:`bWwFiW_logList`,map:`bWwFiW_map`,backfillToggle:`bWwFiW_backfillToggle`,relChip:`bWwFiW_relChip`,content:`bWwFiW_content`,backfillMeta:`bWwFiW_backfillMeta`,danger:`bWwFiW_danger`,kind:`bWwFiW_kind`,toast:`bWwFiW_toast`,on:`bWwFiW_on`,roomList:`bWwFiW_roomList`,roomSwatch:`bWwFiW_roomSwatch`,roomPreference:`bWwFiW_roomPreference`,skeleton:`bWwFiW_skeleton`,logRow:`bWwFiW_logRow`,toastError:`bWwFiW_toastError`,roomEpisode:`bWwFiW_roomEpisode`,section:`bWwFiW_section`,logOp:`bWwFiW_logOp`,heroSide:`bWwFiW_heroSide`,edgeFade:`bWwFiW_edgeFade`,header:`bWwFiW_header`,expand:`bWwFiW_expand`,refurbReflow:`bWwFiW_refurbReflow`,refurb:`bWwFiW_refurb`,refurbCount:`bWwFiW_refurbCount`,reviewGrid:`bWwFiW_reviewGrid`,refurbList:`bWwFiW_refurbList`,skeletonList:`bWwFiW_skeletonList`,headerLogo:`bWwFiW_headerLogo`,toastBody:`bWwFiW_toastBody`,backfillFailures:`bWwFiW_backfillFailures`,refurbHead:`bWwFiW_refurbHead`,expandIn:`bWwFiW_expandIn`,toastWarning:`bWwFiW_toastWarning`,backfillActions:`bWwFiW_backfillActions`,reviewContent:`bWwFiW_reviewContent`,input:`bWwFiW_input`,segItem:`bWwFiW_segItem`,benchMeta:`bWwFiW_benchMeta`,drawerBody:`bWwFiW_drawerBody`,cardIn:`bWwFiW_cardIn`,button:`bWwFiW_button`,refurbReason:`bWwFiW_refurbReason`,toastInfo:`bWwFiW_toastInfo`,itemOps:`bWwFiW_itemOps`,drawer:`bWwFiW_drawer`,layout:`bWwFiW_layout`,fieldLabel:`bWwFiW_fieldLabel`,sectionTitle:`bWwFiW_sectionTitle`,sectionHead:`bWwFiW_sectionHead`};let s=`engram`,c={fact:`kindFact`,preference:`kindPreference`,decision:`kindDecision`,episode:`kindEpisode`,skill:`kindSkill`},l={nav:`记忆宫殿`,scopeUser:`私人宫殿`,scopeProject:`项目宫殿`,scopeShared:`共享宫殿`,refresh:`重访`,exportMd:`导出 MD`,exportJson:`导出 JSON`,export:`导出`,exportMirror:`镜像目录`,exportMdHint:`单文件,可直接分享`,exportJsonHint:`结构化全文,便于程序处理`,exportMirrorHint:`每条记忆一个 .md,可用 Obsidian 漫游`,allStatuses:`全部状态`,allKinds:`全部房间`,redactedAll:`全部铭牌`,redactedOnly:`含涂改`,redactedNone:`无涂改`,tagRedacted:`已涂改`,tagOutcomeSuccess:`管家验证·有效`,tagOutcomeFailure:`管家验证·失效`,searchPlaceholder:`在宫殿里寻找…`,statusActive:`对外开放`,statusArchived:`展厅陈列`,statusForgotten:`已闭馆`,kindFact:`事实厅`,kindPreference:`偏好阁`,kindDecision:`决策堂`,kindEpisode:`往事廊`,kindSkill:`技法坊`,labelContent:`铭牌`,labelKind:`房间`,labelStatus:`状态`,labelScope:`宫殿归属`,importance:`地标亮度`,confidence:`考据可靠度`,accessCount:`参观 {n} 人次`,labelCreated:`开馆时间`,timeJustNow:`方才`,timeMinutesAgo:`{n} 分钟前`,timeHoursAgo:`{n} 小时前`,timeDaysAgo:`{n} 天前`,sourceExplicit:`管理员添置`,sourceSession:`发掘地 {id}`,round:`第 {n} 趟`,cardRedacted:`涂改 {n}`,detail:`参观`,edit:`修缮`,forget:`封门`,restore:`重开`,empty:`宫殿暂无可陈展的记忆`,emptyHint:`试试调整房间筛选,或新添一条`,loadFailed:`访客受挫:{msg}`,loading:`导览中…`,pagerInfo:`第 {page} / {pages} 页 · 共 {total} 条`,prevPage:`上一页`,nextPage:`下一页`,cancel:`作罢`,saveWithHint:`修缮(旧铭牌归展厅)`,detailAttributes:`铭牌`,detailSource:`发掘地`,detailRelations:`邻接走廊`,detailOperations:`管家日志`,relSupersededBy:`被替代`,relSupersedes:`替代`,relContradicts:`互斥`,relRelated:`相邻`,headerTitle:`记忆宫殿`,headerSubtitle:`跨会话长期记忆宫殿`,tabToday:`今日管家`,tabLibrary:`宫殿陈展`,tabCorridor:`走廊巡游`,tabLog:`管家日志`,tabLibraryCount:`{n} 条`,roomsTitle:`房间目录`,roomsHint:`每间满 9 个桩位后开新间`,reviewQueueHint:`只给线索:先在脑中复述,再揭示核对`,healthEvaluatedAt:`诊脉于 {time}`,logFilterAll:`全部`,logFilterWrite:`落成类`,logFilterIngest:`发掘`,logFilterRetrieve:`检索`,logFilterOrganize:`整理`,logCount:`{n} 条 · 两库合并倒序`,benchTitle:`检索实验台`,drawerClose:`归殿`,drawerTitle:`记忆铭牌`,kpiTotal:`记忆`,kpiActive:`开放`,kpiForgotten:`闭馆`,kpiSignal:`清晰度`,opWrite:`落成`,opUpdate:`修缮`,opForget:`封门`,opRestore:`重开`,opDecay:`闭门陈列`,opSuperseded:`被替代`,opIngestRequest:`发掘请求`,opIngestDone:`发掘完成`,opOutcomeReport:`管家验证`,opSearchRewrite:`路线改写`,opCompressRequest:`导览压缩`,opDistillRequest:`合并房间`,selectAll:`本页全选`,deselectAll:`取消全选`,selectedCount:`已选 {n} 条`,batchForget:`批量封门({n})`,batchForgetConfirm:`确认封门 {n} 条?`,batchRestore:`批量重开({n})`,clearSelection:`清空所选`,sectionCorridor:`走廊鸟瞰`,corridorEmpty:`走廊空空如也,落成几条记忆后这里会出现鸟瞰图。`,corridorFailed:`走廊加载失败`,corridorLoad:`加载走廊鸟瞰…`,corridorAria:`走廊鸟瞰图`,corridorSummary:`{nodes} 条记忆 · {edges} 条走廊`,edgeSupersedes:`推陈出新`,edgeContradicts:`互斥`,edgeOther:`相邻 / 支持 / 提炼`,healthLoading:`正在诊脉…`,teleFailed:`遥测加载失败`,teleLoading:`聚合管家记录中…`,teleGroupRecent:`近 7 天`,telePrivacyHint:`数据仅在本机聚合 · 不外传`,telePrivacyTip:`所有 op_log 与遥测计数只在当前进程的 SQLite 里聚合,从未发送至任何外部服务;本机重启或卸载插件即清空。`,teleWrites:`落成`,teleIngest:`发掘`,teleConsolidate:`整理`,benchPlaceholder:`说出要找的房间关键词或语义…`,benchRun:`出发`,benchScopeAll:`全部宫殿`,benchHits:`到访 {n} 间`,benchDegraded:`语义灯熄,仅关键词引路`,benchEmpty:`此路不通`,benchNote:`试走与正式导览共用同一张地图,会计入参观人次`,viaFts:`关键词`,viaVec:`语义`,viaBoth:`双路`,viaEdgeLabel:`邻接走廊`,benchRewrite:`路线改写为 {n} 段`,benchCompress:`铭牌压缩 {n} 条`,activityEmpty:`暂无管家活动`,detailRevisions:`陈展沿革`,tourProposalTitle:`入殿导航`,tourProposalEmpty:`宫殿尚空,建议先放第一段记忆(调用 engram_save)`,tourProposalHint:`点击记忆可展开抽屉查看铭牌`,tourFocusAll:`全部`,refurbTitle:`翻新清单`,refurbEmpty:`所有房间状态健康,无翻新建议`,refurbRun:`重新扫描`,refurbActionDemote:`降级`,refurbActionMerge:`合并`,refurbActionReview:`复习`,refurbActionSplit:`拆分`,refurbCount:`{n} 条建议`,refurbExecute:`执行`,refurbConfirmDemote:`确认降级这条记忆?执行后状态转 archived,可在统计页恢复。`,refurbConfirmMerge:`确认合并 {n} 条相似记忆?将触发 engram_distill 把它们归纳为 1 条高层规律。`,refurbDemoteDone:`已降级`,refurbMergeDone:`合并任务已派发`,refurbActionFailed:`执行失败:{msg}`,refurbMergeEmpty:`无可合并的候选条目`,reviewQueueTitle:`今日待回忆`,reviewQueueEmpty:`今日无到期记忆,宫殿节奏良好`,reviewReveal:`揭示铭牌`,reviewGradeRemember:`记得`,reviewGradeVague:`模糊`,reviewGradeForgot:`忘了`,reviewOverdue:`逾期 {n} 天`,reviewDueToday:`今日到期`,reviewNoPlacard:`(无门牌)`,reviewScheduled:`已排入 {n} 天后再回忆`,sortTime:`按时间`,sortTour:`按巡游路线`,dueBadgeLabel:`今日待回忆 {n} 段,点击前往`,tabBackfill:`历史回填`,backfillIntro:`把 dsh 的历史会话逐轮提炼进宫殿:每条会话写进它自己 cwd 对应的项目库;已摄取过的轮次按幂等键自动跳过,中断后再次开始即可续做。回填的条目不会进入今日复习队列。`,backfillRulesTitle:`导入规则`,backfillDays:`时间窗`,backfillDaysAll:`不限`,backfillDaysUnit:`{n} 天`,backfillMaxTurns:`单会话最多轮数`,backfillMaxTotal:`本次总轮数上限`,backfillModel:`辅助模型`,backfillModelAuto:`自动(用当前在用的模型)`,backfillIncludeSubagents:`包含子代理会话`,backfillIncludeSeeded:`包含种子会话`,backfillIncludeNoCwd:`包含无 cwd 会话(只能进私人宫殿)`,backfillReestimate:`重新估算`,backfillEstimateTitle:`估算`,backfillCandidates:`候选会话 {n}`,backfillPendingTurns:`待处理 {n} 轮`,backfillAlready:`已摄取跳过 {n} 轮`,backfillSkippedDetail:`已排除:子代理 {subagent} · 种子 {seeded} · 无 cwd {noCwd} · 超时间窗 {tooOld} · 日志不可读 {unreadable}`,backfillTruncated:`候选超出总轮数上限:本次只处理最近的一部分会话,可调大上限或分几次跑`,backfillStart:`开始回填`,backfillPause:`暂停`,backfillStateRunning:`回填中…`,backfillStateDone:`已完成`,backfillStateCancelled:`已中止(可再次开始续做)`,backfillStateFailed:`失败`,backfillProgressSessions:`会话 {done}/{total}`,backfillProgressTurns:`轮次 {done}/{total}`,backfillWritten:`写入 {n} 条`,backfillTurnsSkipped:`跳过 {n} 轮`,backfillTurnsFailed:`失败 {n} 轮`,backfillFailures:`失败明细`,backfillEstimating:`正在估算…`,backfillSkipReasons:`跳过原因`,backfillRouteHint:`失败多半是因为历史会话当时用的模型在当前环境不可用:可在 cordis.yml 配置 provider/model,或先用目标模型跑一轮会话(回填会复用当前在用的模型)再重试——已完成的轮次会自动跳过。`,skipLowActivity:`低活动轮`,skipChitchat:`寒暄轮`,skipForbidden:`显式禁记`,skipNoContent:`无用户内容`,skipAlready:`已摄取`,skipNoTurn:`无此轮`,skipNoRoute:`日志无路由`,skipUnparsable:`提炼输出不可解析`},u={nav:`Memory Palace`,scopeUser:`Private Palace`,scopeProject:`Project Palace`,scopeShared:`Shared Palace`,refresh:`Revisit`,exportMd:`Export MD`,exportJson:`Export JSON`,export:`Export`,exportMirror:`Mirror tree`,exportMdHint:`Single file, easy to share`,exportJsonHint:`Structured full dump for scripts`,exportMirrorHint:`One .md per memory, roamable in Obsidian`,allStatuses:`All statuses`,allKinds:`All rooms`,redactedAll:`All placards`,redactedOnly:`Redacted`,redactedNone:`Unredacted`,tagRedacted:`redacted`,tagOutcomeSuccess:`curator: worked`,tagOutcomeFailure:`curator: failed`,searchPlaceholder:`Wander the palace…`,statusActive:`open to public`,statusArchived:`on display`,statusForgotten:`closed`,kindFact:`Fact Hall`,kindPreference:`Preference Pavilion`,kindDecision:`Decision Chamber`,kindEpisode:`Episode Gallery`,kindSkill:`Skill Workshop`,labelContent:`Placard`,labelKind:`Room`,labelStatus:`Status`,labelScope:`Palace`,importance:`Beacon`,confidence:`Provenance`,accessCount:`{n} visits`,labelCreated:`Opened`,timeJustNow:`just now`,timeMinutesAgo:`{n} min ago`,timeHoursAgo:`{n} hr ago`,timeDaysAgo:`{n} d ago`,sourceExplicit:`Curator placed`,sourceSession:`Excavated at {id}`,round:`pass {n}`,cardRedacted:`{n} redacted`,detail:`Tour`,edit:`Renovate`,forget:`Close`,restore:`Reopen`,empty:`No memories to display`,emptyHint:`Adjust the rooms above, or place a new memory`,loadFailed:`Tour halted: {msg}`,loading:`Guiding…`,pagerInfo:`Page {page} / {pages} · {total} memories`,prevPage:`Previous page`,nextPage:`Next page`,cancel:`Cancel`,saveWithHint:`Renovate (archive old placard)`,detailAttributes:`Placard`,detailSource:`Excavation`,detailRelations:`Corridors`,detailOperations:`Curator log`,relSupersededBy:`Superseded by`,relSupersedes:`Supersedes`,relContradicts:`Contradicts`,relRelated:`Adjacent`,headerTitle:`Memory Palace`,headerSubtitle:`Cross-session long-term memory palace`,tabToday:`Today`,tabLibrary:`Palace`,tabCorridor:`Corridor tour`,tabLog:`Curator log`,tabLibraryCount:`{n} memories`,roomsTitle:`Room directory`,roomsHint:`A new room opens once 9 slots fill`,reviewQueueHint:`Cues only: recall first, then reveal to check`,healthEvaluatedAt:`Scored {time}`,logFilterAll:`All`,logFilterWrite:`Writes`,logFilterIngest:`Capture`,logFilterRetrieve:`Retrieval`,logFilterOrganize:`Organize`,logCount:`{n} entries · both stores merged, newest first`,benchTitle:`Retrieval bench`,drawerClose:`Return`,drawerTitle:`Memory placard`,kpiTotal:`Memories`,kpiActive:`Open`,kpiForgotten:`Closed`,kpiSignal:`Clarity`,opWrite:`opened`,opUpdate:`renovated`,opForget:`closed`,opRestore:`reopened`,opDecay:`archived`,opSuperseded:`superseded`,opIngestRequest:`excavation requested`,opIngestDone:`excavated`,opOutcomeReport:`curator report`,opSearchRewrite:`route rewritten`,opCompressRequest:`placard compressed`,opDistillRequest:`rooms merged`,selectAll:`Select all on page`,deselectAll:`Deselect all`,selectedCount:`{n} memories`,batchForget:`Close selected ({n})`,batchForgetConfirm:`Close {n} memories?`,batchRestore:`Reopen selected ({n})`,clearSelection:`Clear selection`,sectionCorridor:`Corridor overview`,corridorEmpty:`No memories yet — the bird’s-eye view appears after a few memories arrive.`,corridorFailed:`Failed to load corridor`,corridorLoad:`Loading corridor overview…`,corridorAria:`Corridor overview map`,corridorSummary:`{nodes} memories · {edges} corridors`,edgeSupersedes:`supersedes`,edgeContradicts:`contradicts`,edgeOther:`related / supports / refines`,healthLoading:`Taking pulse…`,teleFailed:`Telemetry failed`,teleLoading:`Aggregating curator events…`,teleGroupRecent:`Last 7 days`,telePrivacyHint:`Local aggregation only · never transmitted`,telePrivacyTip:`All op_log and telemetry counters are aggregated in this process’s SQLite only; nothing is sent to any external service. Clearing the plugin or restarting the host wipes the data.`,teleWrites:`Opened`,teleIngest:`Excavated`,teleConsolidate:`Consolidated`,benchPlaceholder:`Name a room by keyword or meaning…`,benchRun:`Walk`,benchScopeAll:`All palaces`,benchHits:`{n} rooms found`,benchDegraded:`Beacon dark · keyword lane only`,benchEmpty:`No route found`,benchNote:`Walk uses the same map as the guided tour and counts as a visit`,viaFts:`keyword`,viaVec:`semantic`,viaBoth:`dual`,viaEdgeLabel:`corridor`,benchRewrite:`route split into {n}`,benchCompress:`compressed {n} overflow placards`,activityEmpty:`No curator activity yet`,detailRevisions:`Exhibit history`,tourProposalTitle:`Tour proposal`,tourProposalEmpty:`The palace is empty — place a first memory via engram_save`,tourProposalHint:`Click a memory to open its placard`,tourFocusAll:`All`,refurbTitle:`Refurb suggestions`,refurbEmpty:`All rooms are healthy — no suggestions`,refurbRun:`Re-scan`,refurbActionDemote:`demote`,refurbActionMerge:`merge`,refurbActionReview:`review`,refurbActionSplit:`split`,refurbCount:`{n} suggestions`,refurbExecute:`Apply`,refurbConfirmDemote:`Demote this memory? Status will become archived; you can reopen it later.`,refurbConfirmMerge:`Merge {n} similar memories? This triggers engram_distill to fold them into one higher-level pattern.`,refurbDemoteDone:`Demoted`,refurbMergeDone:`Merge dispatched`,refurbActionFailed:`Action failed: {msg}`,refurbMergeEmpty:`No merge candidates`,reviewQueueTitle:`Due today`,reviewQueueEmpty:`Nothing due today — palace rhythm is healthy`,reviewReveal:`Reveal placard`,reviewGradeRemember:`Remembered`,reviewGradeVague:`Hazy`,reviewGradeForgot:`Forgot`,reviewOverdue:`{n}d overdue`,reviewDueToday:`due today`,reviewNoPlacard:`(no placard)`,reviewScheduled:`Scheduled again in {n}d`,sortTime:`By time`,sortTour:`By tour route`,dueBadgeLabel:`{n} due for review — click to open`,tabBackfill:`History backfill`,backfillIntro:`Distils past dsh sessions into the palace, turn by turn: each session is written into the project store matching its own cwd. Turns already captured are skipped by idempotency key, so starting again resumes where it stopped. Backfilled memories never enter the due-today queue.`,backfillRulesTitle:`Import rules`,backfillDays:`Time window`,backfillDaysAll:`All`,backfillDaysUnit:`{n} days`,backfillMaxTurns:`Max turns per session`,backfillMaxTotal:`Total turn budget`,backfillModel:`Auxiliary model`,backfillModelAuto:`Auto (model currently in use)`,backfillIncludeSubagents:`Include subagent sessions`,backfillIncludeSeeded:`Include seeded sessions`,backfillIncludeNoCwd:`Include sessions without cwd (private palace only)`,backfillReestimate:`Re-estimate`,backfillEstimateTitle:`Estimate`,backfillCandidates:`{n} candidate sessions`,backfillPendingTurns:`{n} turns pending`,backfillAlready:`{n} turns already captured`,backfillSkippedDetail:`Excluded: subagent {subagent} · seeded {seeded} · no cwd {noCwd} · outside window {tooOld} · unreadable {unreadable}`,backfillTruncated:`Candidates exceed the total turn budget: only the most recent sessions run this time — raise the budget or run in batches`,backfillStart:`Start backfill`,backfillPause:`Pause`,backfillStateRunning:`Running…`,backfillStateDone:`Finished`,backfillStateCancelled:`Stopped (start again to resume)`,backfillStateFailed:`Failed`,backfillProgressSessions:`Sessions {done}/{total}`,backfillProgressTurns:`Turns {done}/{total}`,backfillWritten:`{n} memories written`,backfillTurnsSkipped:`{n} turns skipped`,backfillTurnsFailed:`{n} turns failed`,backfillFailures:`Failures`,backfillEstimating:`Estimating…`,backfillSkipReasons:`Skipped`,backfillRouteHint:`Failures are usually because the model a past session used is not available here: set provider/model in cordis.yml, or run one turn with the target model first (backfill reuses the model currently in use) and retry — finished turns are skipped automatically.`,skipLowActivity:`low activity`,skipChitchat:`chitchat`,skipForbidden:`capture forbidden`,skipNoContent:`no user content`,skipAlready:`already captured`,skipNoTurn:`no such turn`,skipNoRoute:`no route in log`,skipUnparsable:`unparsable output`};function d(e,t){let n=c[t];return n===void 0?t:e(n)}let f={fact:`#5b8def`,preference:`#f0a85c`,decision:`#9b6bd9`,episode:`#3cb489`,skill:`#e26b86`},p={related:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},refines:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},supports:{color:`rgba(120, 130, 150, 0.6)`,dash:void 0,width:1},supersedes:{color:`rgba(91, 141, 239, 0.85)`,dash:void 0,width:1.8},contradicts:{color:`rgba(226, 107, 134, 0.9)`,dash:`4 4`,width:1.4}};function m(e){return Math.max(4,Math.min(14,4+10*e.importance*e.confidence))}function h(e,t,n,r,i){let a=.003;for(let t=0;t<e.length;t+=1){let n=e[t];for(let r=t+1;r<e.length;r+=1){let t=e[r],a=n.x-t.x,o=n.y-t.y,s=Math.sqrt(a*a+o*o)+.01,c=4800*i/(s*s),l=a/s*c,u=o/s*c;n.vx+=l,n.vy+=u,t.vx-=l,t.vy-=u}}let o=new Map(e.map(e=>[e.id,e]));for(let e of t){let t=o.get(e.from),n=o.get(e.to);if(t===void 0||n===void 0)continue;let r=n.x-t.x,a=n.y-t.y,s=Math.sqrt(r*r+a*a)+.01,c=(s-64)*.04*i,l=r/s*c,u=a/s*c;t.vx+=l,t.vy+=u,n.vx-=l,n.vy-=u}let s=[...new Set(e.map(e=>e.kind))],c=n/Math.max(s.length,1);for(let t of e){if(t.fixed)continue;t.vx+=(n/2-t.x)*a*i,t.vy+=(r/2-t.y)*a*i;let e=s.indexOf(t.kind);if(e>=0){let n=c*(e+.5);t.vx+=(n-t.x)*.005*i}}let l=.82;for(let t of e){if(t.fixed){t.vx=0,t.vy=0;continue}t.vx*=l,t.vy*=l,t.x=Math.max(20,Math.min(n-20,t.x+t.vx)),t.y=Math.max(20,Math.min(r-20,t.y+t.vy))}}function g(e){let{scope:t,nodes:n,edges:a,onSelect:s,selectedId:c,t:l}=e,u=(0,r.useMemo)(()=>{let e=new Map;for(let t of n)e.set(t.id,new Set);for(let t of a)e.has(t.from)||e.set(t.from,new Set),e.has(t.to)||e.set(t.to,new Set),e.get(t.from).add(t.to),e.get(t.to).add(t.from);return e},[n,a]),g=(0,r.useMemo)(()=>{let e=[...new Set(n.map(e=>e.kind))],t=560/Math.max(e.length,1);return n.map((n,r)=>({...n,x:e.indexOf(n.kind)>=0?t*(e.indexOf(n.kind)+.5):280,y:30+r*47%260,vx:0,vy:0,r:m(n),fixed:!1}))},[n,560,320]),_=(0,r.useRef)(g.map(e=>({...e}))),[,v]=(0,r.useState)(0),y=(0,r.useRef)(null),b=(0,r.useRef)(0);(0,r.useEffect)(()=>{_.current=g.map(e=>({...e})),b.current=0,v(e=>e+1)},[g]),(0,r.useEffect)(()=>{let e=()=>{let t=_.current;b.current+=1;let n=Math.max(.1,1-b.current/280*.9);h(t,a,560,320,n),_.current=t.map(e=>({...e})),v(e=>e+1),b.current<280&&(y.current=requestAnimationFrame(e))};return y.current=requestAnimationFrame(e),()=>{y.current!==null&&cancelAnimationFrame(y.current)}},[g,a]);let x=_.current,S=(0,r.useMemo)(()=>new Map(x.map(e=>[e.id,e])),[x]),C=(0,r.useMemo)(()=>[...new Set(n.map(e=>e.kind))],[n]),[w,T]=(0,r.useState)(null),E=(0,r.useMemo)(()=>w===null?null:u.get(w)??new Set,[w,u]),D=e=>w!==null&&e!==w&&!(E?.has(e)??!1),O=e=>w===null?!1:e.from===w||e.to===w,k=(0,r.useRef)(null),A=(0,r.useRef)(null),j=(e,t)=>{let n=k.current;if(n===null)return null;let r=n.getBoundingClientRect(),i=560/r.width,a=320/r.height;return{x:(e-r.left)*i,y:(t-r.top)*a}},M=(e,t)=>{e.preventDefault(),A.current=t;let n=_.current.find(e=>e.id===t);n!==void 0&&(n.fixed=!0)};return(0,r.useEffect)(()=>{let e=e=>{let t=A.current;if(t===null)return;let n=j(e.clientX,e.clientY);if(n===null)return;let r=_.current.find(e=>e.id===t);r!==void 0&&(r.x=Math.max(20,Math.min(540,n.x)),r.y=Math.max(20,Math.min(300,n.y)),r.vx=0,r.vy=0,v(e=>e+1))},t=()=>{let e=A.current;if(e===null)return;let t=_.current.find(t=>t.id===e);t!==void 0&&(t.fixed=!1),A.current=null};return window.addEventListener(`mousemove`,e),window.addEventListener(`mouseup`,t),()=>{window.removeEventListener(`mousemove`,e),window.removeEventListener(`mouseup`,t)}},[]),n.length===0?(0,i.jsx)(`div`,{className:o.empty,children:l(`corridorEmpty`)}):(0,i.jsxs)(`div`,{className:o.mapWrap,children:[(0,i.jsxs)(`svg`,{ref:k,viewBox:`0 0 560 320`,className:o.map,preserveAspectRatio:`xMidYMid meet`,role:`img`,"aria-label":l(`corridorAria`),children:[C.map((e,t)=>{let n=560/Math.max(C.length,1);return(0,i.jsx)(`rect`,{x:n*t,y:0,width:n,height:320,fill:t%2==0?`rgba(127,127,127,0.04)`:`transparent`},e)}),C.map((e,t)=>{let n=560/Math.max(C.length,1);return(0,i.jsx)(`text`,{x:n*(t+.5),y:14,textAnchor:`middle`,fill:`rgba(127,127,127,0.7)`,fontSize:`10`,fontFamily:`ui-sans-serif, system-ui`,children:d(l,e)},`${e}-label`)}),a.map((e,t)=>{let n=S.get(e.from),r=S.get(e.to);if(n===void 0||r===void 0)return null;let a=p[e.type]??p.related,s=O(e),c=w!==null&&!s;if(s){let t=(n.x+r.x)/2,o=(n.y+r.y)/2,s=r.x-n.x,c=r.y-n.y,l=Math.sqrt(s*s+c*c)||1,u=-c/l*6,d=s/l*6;return(0,i.jsx)(`path`,{d:`M ${String(n.x)} ${String(n.y)} Q ${String(t+u)} ${String(o+d)} ${String(r.x)} ${String(r.y)}`,fill:`none`,stroke:a.color,strokeWidth:a.width+1.2,strokeDasharray:a.dash,style:{transition:`stroke-width 200ms ease, d 240ms ease`},children:(0,i.jsx)(`title`,{children:`${n.title} --${e.type}--> ${r.title}`})},e.id)}return(0,i.jsx)(`line`,{x1:n.x,y1:n.y,x2:r.x,y2:r.y,stroke:a.color,strokeWidth:a.width,strokeDasharray:a.dash,opacity:c?.1:1,className:o.edgeFade,style:{transition:`opacity 200ms ease, stroke-width 200ms ease`,animationDelay:`${String(Math.min(t,24)*24)}ms`},children:(0,i.jsx)(`title`,{children:`${n.title} --${e.type}--> ${r.title}`})},e.id)}),x.map((e,t)=>{let n=f[e.kind]??`#7d8590`,r=c===e.id,a=w===e.id,l=D(e.id);return(0,i.jsxs)(`g`,{className:o.node,transform:`translate(${String(e.x)} ${String(e.y)})`,style:{cursor:A.current===e.id?`grabbing`:`grab`,opacity:l?.15:1,transition:`opacity 200ms ease`,animationDelay:`${String(Math.min(t,24)*24)}ms`},onMouseEnter:()=>{T(e.id)},onMouseLeave:()=>{T(t=>t===e.id?null:t)},onMouseDown:t=>M(t,e.id),onClick:()=>s?.(e.id),children:[(a||r)&&(0,i.jsx)(`circle`,{r:String(e.r+6),fill:n,fillOpacity:.18}),(0,i.jsx)(`circle`,{r:String(e.r),fill:n,fillOpacity:e.status===`active`?.88:.42,stroke:r?`var(--dsw-alias-brand-primary)`:a?n:`rgba(255,255,255,0.9)`,strokeWidth:r?2:a?1.5:1,style:{transition:`stroke 160ms ease, stroke-width 160ms ease`},children:(0,i.jsx)(`title`,{children:`${e.title}(${e.kind}/${e.status})`})}),r&&(0,i.jsx)(`circle`,{r:String(e.r+4),fill:`none`,stroke:n,strokeOpacity:.4,strokeWidth:1})]},e.id)}),w!==null&&(()=>{let e=S.get(w);if(e===void 0)return null;let t=Math.min(380,Math.max(8,e.x+14)),n=Math.min(260,Math.max(28,e.y-16)),r=(e.content??e.title).slice(0,120);return(0,i.jsxs)(`g`,{className:o.tooltip,transform:`translate(${String(t)} ${String(n)})`,children:[(0,i.jsx)(`rect`,{x:0,y:0,width:176,height:48,rx:6,ry:6,fill:`var(--dsw-alias-bg-base)`,stroke:`var(--dsw-alias-border-l2)`,strokeWidth:1,opacity:.96}),(0,i.jsx)(`text`,{x:8,y:16,fill:`var(--dsw-alias-label-primary)`,fontSize:`11`,fontWeight:600,fontFamily:`ui-sans-serif, system-ui`,children:d(l,e.kind)}),(0,i.jsx)(`text`,{x:8,y:32,fill:`var(--dsw-alias-label-secondary)`,fontSize:`10`,fontFamily:`ui-sans-serif, system-ui`,children:`${r}${(e.content??e.title).length>120?`…`:``}`})]})})()]},t),(0,i.jsxs)(`div`,{className:o.legend,children:[C.map(e=>(0,i.jsxs)(`span`,{className:o.legendItem,children:[(0,i.jsx)(`span`,{className:o.legendDot,style:{background:f[e]??`#7d8590`}}),d(l,e)]},e)),(0,i.jsx)(`span`,{className:o.legendItem,children:l(`corridorSummary`,{nodes:n.length,edges:a.length})})]}),(0,i.jsx)(`div`,{className:o.legend,style:{marginTop:2},children:Object.entries(p).map(([e,t])=>(0,i.jsxs)(`span`,{className:o.legendItem,children:[(0,i.jsx)(`svg`,{width:20,height:6,"aria-hidden":`true`,children:(0,i.jsx)(`line`,{x1:0,y1:3,x2:20,y2:3,stroke:t.color,strokeWidth:t.width,strokeDasharray:t.dash})}),(0,i.jsx)(`span`,{children:l(e===`supersedes`?`edgeSupersedes`:e===`contradicts`?`edgeContradicts`:`edgeOther`)})]},e))})]})}let _={info:3e3,success:3e3,warning:5e3,error:5e3},v=0;function y({items:e,onDismiss:t}){return(0,i.jsx)(`div`,{className:o.toastViewport,role:`region`,"aria-live":`polite`,"aria-label":`notifications`,children:e.map(e=>{let n=e.kind===`success`?o.toastSuccess:e.kind===`error`?o.toastError:e.kind===`warning`?o.toastWarning:o.toastInfo;return(0,i.jsxs)(`div`,{className:`${o.toast} ${n}`,role:e.kind===`error`||e.kind===`warning`?`alert`:`status`,children:[(0,i.jsx)(`span`,{className:o.toastBody,children:e.message}),(0,i.jsx)(`button`,{type:`button`,className:o.toastDismiss,"aria-label":`dismiss`,onClick:()=>{t(e.id)},children:`×`})]},e.id)})})}function b(){let[e,t]=(0,r.useState)([]),n=(0,r.useRef)(new Map),a=(0,r.useCallback)(e=>{t(t=>t.filter(t=>t.id!==e));let r=n.current.get(e);r!==void 0&&(clearTimeout(r),n.current.delete(e))},[]),o=(0,r.useCallback)((e,r,i)=>{v+=1;let o=v,s=i??_[e],c={id:o,kind:e,message:r,duration:s};t(e=>[...e,c]);let l=setTimeout(()=>{a(o)},s);n.current.set(o,l)},[a]);return(0,r.useEffect)(()=>()=>{for(let e of n.current.values())clearTimeout(e);n.current.clear()},[]),{toasts:e,push:o,dismiss:a,viewport:(0,i.jsx)(y,{items:e,onDismiss:a})}}let x=`dsh-engram.ui`;function S(e){try{return window.localStorage.getItem(e)??void 0}catch{return}}function C(e,t){try{window.localStorage.setItem(e,t)}catch{}}function w(e,t){return e!==void 0&&t.includes(e)}function T(e,t,n){let i=`${x}.${e}`,[a,o]=(0,r.useState)(()=>{let e=S(i);return w(e,n)?e:t});return(0,r.useEffect)(()=>{C(i,a)},[i,a]),[a,(0,r.useCallback)(e=>{o(e)},[])]}function E(e,t){let n=`${x}.${e}`,[i,a]=(0,r.useState)(()=>S(n)??t);return(0,r.useEffect)(()=>{C(n,i)},[n,i]),[i,(0,r.useCallback)(e=>{a(e)},[])]}let D=[`fact`,`preference`,`decision`,`episode`,`skill`],O={active:`statusActive`,archived:`statusArchived`,forgotten:`statusForgotten`},k={user:`scopeUser`,project:`scopeProject`,shared:`scopeShared`},A={fact:`roomFact`,preference:`roomPreference`,decision:`roomDecision`,episode:`roomEpisode`,skill:`roomSkill`},j={write:`opWrite`,update:`opUpdate`,forget:`opForget`,restore:`opRestore`,decay:`opDecay`,superseded:`opSuperseded`,"ingest-request":`opIngestRequest`,"ingest-done":`opIngestDone`,"outcome-report":`opOutcomeReport`,"search-rewrite-request":`opSearchRewrite`,"compress-request":`opCompressRequest`,"distill-request":`opDistillRequest`},M={supersededBy:`relSupersededBy`,supersedes:`relSupersedes`,contradicts:`relContradicts`,related:`relRelated`},N={kind:`labelKind`,scope:`labelScope`,status:`labelStatus`};function P(e,t){let n=c[t];return n===void 0?t:e(n)}function F(e){return`${o.pill} ${o[A[e]??`kind`]??``}`}function I(e,t){let n=j[t];return n===void 0?t:e(n)}function L(e,t,n){if(n===null)return``;if(t!==`write`&&t!==`update`&&t!==`superseded`)return` ${n}`;try{let t=JSON.parse(n),r=Object.entries(t);return r.length===0?` ${n}`:` `+r.map(([t,n])=>{let r=N[t];return r===void 0?`${t}=${String(n)}`:t===`kind`&&typeof n==`string`?`${e(r)}=${P(e,n)}`:t===`scope`&&(n===`user`||n===`project`)?`${e(r)}=${e(k[n])}`:`${e(r)}=${String(n)}`}).join(` · `)}catch{return` ${n}`}}function ee(e,t){if(t.sourceSessionId===null)return e(`sourceExplicit`);let n=`${t.sourceSessionId.slice(0,16)}…`;return e(`sourceSession`,{id:t.sourceRound===null?n:`${n} ${e(`round`,{n:t.sourceRound})}`})}async function R(e,t){let n=await fetch(`/api/engram/${e}`,t),r=await n.json();if(!n.ok)throw Error(r.error??`HTTP ${String(n.status)}`);return r}function z(e){return new Date(e).toLocaleString(navigator.language||`zh-CN`,{hour12:!1})}function B(e,t){let n=Math.max(0,Date.now()-t),r=Math.floor(n/6e4);if(r<1)return e(`timeJustNow`);if(r<60)return e(`timeMinutesAgo`,{n:r});let i=Math.floor(r/60);return i<48?e(`timeHoursAgo`,{n:i}):e(`timeDaysAgo`,{n:Math.floor(i/24)})}function V({label:e,value:t,tail:n,secondary:r}){return(0,i.jsxs)(`div`,{className:o.metric,children:[(0,i.jsx)(`span`,{className:o.metricLabel,children:e}),(0,i.jsx)(`b`,{className:r===!0?`${o.metricValue} ${o.metricValueSecondary}`:o.metricValue,children:t}),n!==void 0&&(0,i.jsx)(`span`,{className:o.metricTail,children:n})]})}function H({score:e}){let t=2*Math.PI*24,n=Math.min(100,Math.max(0,e))/100*t,r=e>=80?`var(--dsw-alias-state-success-primary)`:e>=50?`var(--dsw-alias-state-warn-primary)`:`var(--dsw-alias-state-error-primary)`;return(0,i.jsxs)(`div`,{className:o.ring,role:`meter`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e,children:[(0,i.jsxs)(`svg`,{width:`56`,height:`56`,viewBox:`0 0 56 56`,"aria-hidden":`true`,children:[(0,i.jsx)(`circle`,{cx:`28`,cy:`28`,r:24,fill:`none`,stroke:`var(--dsw-alias-border-l2)`,strokeWidth:`4`}),(0,i.jsx)(`circle`,{cx:`28`,cy:`28`,r:24,fill:`none`,stroke:r,strokeWidth:`4`,strokeLinecap:`round`,strokeDasharray:`${n.toFixed(1)} ${t.toFixed(1)}`})]}),(0,i.jsx)(`b`,{children:e})]})}function U({value:e,conf:t}){return(0,i.jsx)(`span`,{className:t===!0?`${o.meter} ${o.conf}`:o.meter,children:(0,i.jsx)(`i`,{style:{width:`${String(Math.round(Math.min(1,Math.max(0,e))*100))}%`}})})}function W({ids:e}){return(0,i.jsx)(`div`,{className:o.relChips,children:e.map(e=>(0,i.jsx)(`span`,{className:o.relChip,title:e,children:e.slice(0,18)},e))})}function te({t:e,recordId:t,scope:n}){let[a,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(null);if((0,r.useEffect)(()=>{let e=!1;return R(`review?scope=${n}&id=${encodeURIComponent(t)}`).then(t=>{e||s(t)}).catch(t=>{e||l(t.message)}),()=>{e=!0}},[t,n,e]),c!==null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loadFailed`,{msg:c})});if(a===null)return(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)});let{record:u}=a,d=[`supersededBy`,`supersedes`,`contradicts`,`related`].map(e=>({key:e,label:M[e],ids:a[e]??[]})).filter(e=>e.ids.length>0),f=a.operations??[];return(0,i.jsxs)(`div`,{className:o.reviewGrid,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`dl`,{className:o.attrGrid,children:[(0,i.jsx)(`dt`,{children:e(`labelContent`)}),(0,i.jsx)(`dd`,{children:u.content}),(0,i.jsx)(`dt`,{children:e(`labelKind`)}),(0,i.jsx)(`dd`,{children:(0,i.jsx)(`span`,{className:F(u.kind),children:P(e,u.kind)})}),(0,i.jsx)(`dt`,{children:e(`labelStatus`)}),(0,i.jsx)(`dd`,{children:(0,i.jsx)(`span`,{className:`${o.pill} ${o[`status${u.status.charAt(0).toUpperCase()}${u.status.slice(1)}`]??``}`,children:e(O[u.status])})}),(0,i.jsx)(`dt`,{children:e(`importance`)}),(0,i.jsxs)(`dd`,{children:[u.importance.toFixed(2),(0,i.jsx)(U,{value:u.importance})]}),(0,i.jsx)(`dt`,{children:e(`confidence`)}),(0,i.jsxs)(`dd`,{children:[u.confidence.toFixed(2),(0,i.jsx)(U,{value:u.confidence,conf:!0})]}),(0,i.jsx)(`dt`,{children:e(`detailSource`)}),(0,i.jsx)(`dd`,{children:ee(e,u)}),(0,i.jsx)(`dt`,{children:e(`labelCreated`)}),(0,i.jsx)(`dd`,{children:z(u.createdAt)})]}),d.map(({key:t,label:n,ids:r})=>(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:n===void 0?t:e(n)}),(0,i.jsx)(W,{ids:r})]},t))]}),(0,i.jsxs)(`div`,{children:[(a.revisions??[]).length>0&&(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:e(`detailRevisions`)}),(0,i.jsx)(`ul`,{className:o.timeline,children:a.revisions.map((t,n)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`time`,{children:z(t.supersededAt)}),(0,i.jsx)(`b`,{children:P(e,t.kind)}),` `,t.content]},n))})]}),f.length>0&&(0,i.jsxs)(`div`,{className:o.relBlock,children:[(0,i.jsx)(`h5`,{children:e(`detailOperations`)}),(0,i.jsx)(`ul`,{className:o.timeline,children:f.map((t,n)=>(0,i.jsxs)(`li`,{children:[(0,i.jsx)(`time`,{children:z(t.at)}),(0,i.jsx)(`b`,{children:I(e,t.op)}),L(e,t.op,t.detail)]},n))})]})]})]})}function ne({t:e,record:t,onClose:n,onSaved:a,toast:s}){let[c,l]=(0,r.useState)(t.content),[u,d]=(0,r.useState)(t.kind),[f,p]=(0,r.useState)(t.importance);return(0,i.jsxs)(`div`,{className:o.editForm,children:[(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:e(`labelContent`)}),(0,i.jsx)(`textarea`,{className:o.input,rows:3,value:c,onChange:e=>l(e.target.value)})]}),(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:e(`labelKind`)}),(0,i.jsx)(`select`,{className:o.input,value:u,onChange:e=>d(e.target.value),children:D.map(t=>(0,i.jsx)(`option`,{value:t,children:P(e,t)},t))})]}),(0,i.jsx)(`div`,{className:o.fieldRow,children:(0,i.jsxs)(`div`,{children:[(0,i.jsx)(`label`,{className:o.fieldLabel,children:`${e(`importance`)} ${f.toFixed(2)}`}),(0,i.jsx)(`input`,{type:`range`,min:0,max:1,step:.05,value:f,onChange:e=>p(Number(e.target.value))})]})}),(0,i.jsxs)(`div`,{className:o.modalFoot,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:n,children:e(`cancel`)}),(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,onClick:()=>{R(`update`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.id,scope:t.scope,content:c,kind:u,importance:f})}).then(a).catch(e=>{s.push(`error`,e.message)})},children:e(`saveWithHint`)})]})]})}let G={fts:`viaFts`,vec:`viaVec`,both:`viaBoth`};function re({t:e,scope:t}){let[n,a]=(0,r.useState)(``),[s,c]=(0,r.useState)(t),[l,u]=(0,r.useState)(null),[d,f]=(0,r.useState)(!1),[p,m]=(0,r.useState)(null);(0,r.useEffect)(()=>{c(t)},[t]);let h=()=>{n.trim()===``||d||(f(!0),R(`search-test?q=${encodeURIComponent(n.trim())}&scope=${s}`).then(e=>{u(e),m(null)}).catch(e=>m(e.message)).finally(()=>f(!1)))},g=l?.hits??[];return(0,i.jsxs)(`div`,{children:[(0,i.jsxs)(`div`,{className:o.benchBar,children:[(0,i.jsx)(`input`,{className:`${o.input} ${o.search}`,placeholder:e(`benchPlaceholder`),value:n,onChange:e=>a(e.target.value),onKeyDown:e=>{e.key===`Enter`&&h()}}),(0,i.jsxs)(`select`,{className:o.input,value:s,onChange:e=>c(e.target.value),children:[(0,i.jsx)(`option`,{value:`all`,children:e(`benchScopeAll`)}),(0,i.jsx)(`option`,{value:`user`,children:e(`scopeUser`)}),(0,i.jsx)(`option`,{value:`project`,children:e(`scopeProject`)}),(0,i.jsx)(`option`,{value:`shared`,children:e(`scopeShared`)})]}),(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,disabled:d||n.trim()===``,onClick:h,children:e(`benchRun`)})]}),p!==null&&(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loadFailed`,{msg:p})}),l!==null&&p===null&&(0,i.jsxs)(`div`,{className:o.benchMeta,children:[(0,i.jsx)(`span`,{children:e(`benchHits`,{n:g.length})}),l.degraded&&(0,i.jsx)(`span`,{className:o.degradedNote,children:e(`benchDegraded`)})]}),(0,i.jsx)(`div`,{className:o.benchList,children:g.map(t=>(0,i.jsxs)(`div`,{className:o.benchRow,children:[(0,i.jsxs)(`div`,{className:o.benchHead,children:[(0,i.jsx)(`span`,{className:o.viaChip,children:e(G[t.via])}),t.viaEdge!==void 0&&(0,i.jsxs)(`span`,{className:o.viaChip,title:`${t.viaEdge.type} ${t.viaEdge.from}`,children:[e(`viaEdgeLabel`),` · `,t.viaEdge.type]}),(0,i.jsx)(`span`,{className:F(t.kind),children:P(e,t.kind)}),(0,i.jsx)(`span`,{className:o.benchScore,children:t.score.toFixed(4)})]}),(0,i.jsx)(`div`,{className:o.benchContent,children:t.content}),(0,i.jsx)(`span`,{className:o.benchId,title:t.id,children:t.id})]},t.id))}),l!==null&&g.length===0&&p===null&&(0,i.jsx)(`div`,{className:o.benchEmpty,children:e(`benchEmpty`)})]})}function K(e,t){if(t===null)return``;try{let n=JSON.parse(t);if(typeof n.round==`number`&&typeof n.userText==`string`){let t=typeof n.mode==`string`?` · ${n.mode}`:``;return`${e(`round`,{n:n.round})}${t} · ${n.userText.slice(0,48)}`}if(typeof n.query==`string`&&Array.isArray(n.queries))return`${e(`benchRewrite`,{n:n.queries.length})} · ${n.query.slice(0,36)}`;if(typeof n.count==`number`&&Object.keys(n).length===1)return e(`benchCompress`,{n:n.count})}catch{}return t.length>56?`${t.slice(0,56)}…`:t}let q={all:null,write:[`write`,`update`,`forget`,`restore`,`decay`,`superseded`,`outcome-report`],ingest:[`ingest-request`,`ingest-done`],retrieve:[`search-rewrite-request`,`compress-request`],organize:[`distill-request`]},ie={all:`logFilterAll`,write:`logFilterWrite`,ingest:`logFilterIngest`,retrieve:`logFilterRetrieve`,organize:`logFilterOrganize`};function ae({t:e,telemetry:t}){let[n,a]=(0,r.useState)(null),[s,c]=(0,r.useState)(`all`);(0,r.useEffect)(()=>{let e=!1;return R(`activity?limit=50`).then(t=>{e||a(t.operations)}).catch(()=>{e||a([])}),()=>{e=!0}},[]);let l=q[s],u=(n??[]).filter(e=>l===null||l.includes(e.op)),d=t?.counts;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`section`,{className:o.section,children:(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsxs)(`div`,{className:o.heroMetrics,children:[(0,i.jsx)(V,{label:e(`teleWrites`),value:d?.writes??0,tail:e(`teleGroupRecent`)}),(0,i.jsx)(V,{label:e(`teleIngest`),value:d?.ingestDones??0,tail:e(`teleGroupRecent`)}),(0,i.jsx)(V,{label:e(`teleConsolidate`),value:d?.consolidations??0,tail:e(`teleGroupRecent`)})]})})}),(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsxs)(`div`,{className:o.sectionHead,children:[(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`tabLog`)}),(0,i.jsx)(`span`,{className:o.sectionHint,children:e(`logCount`,{n:u.length})})]}),(0,i.jsx)(`div`,{className:o.filters,role:`tablist`,children:(0,i.jsx)(`div`,{className:o.segGroup,children:[`all`,`write`,`ingest`,`retrieve`,`organize`].map(t=>(0,i.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":s===t,className:s===t?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{c(t)},children:e(ie[t])},t))})}),(0,i.jsx)(`div`,{className:o.panelCard,children:n===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):u.length===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`activityEmpty`)}):(0,i.jsx)(`div`,{className:o.logList,children:u.map((t,n)=>(0,i.jsxs)(`div`,{className:o.logRow,children:[(0,i.jsx)(`span`,{className:o.logTime,children:B(e,t.at)}),(0,i.jsx)(`span`,{className:o.logOp,children:I(e,t.op)}),(0,i.jsx)(`span`,{className:o.logScope,children:t.scope===`user`?e(`scopeUser`):e(`scopeProject`)}),(0,i.jsx)(`span`,{className:o.logDetail,title:t.detail??``,children:K(e,t.detail)})]},n))})})]})]})}function oe({t:e,scope:t,toast:n,onAnswered:a}){let[s,c]=(0,r.useState)(null),[l,u]=(0,r.useState)({}),[d,f]=(0,r.useState)(null),p=(0,r.useCallback)(()=>{R(`review-due?scope=${t}`).then(e=>{c(e.items),u({})}).catch(e=>{n.push(`error`,e.message),c([])})},[t,n]);(0,r.useEffect)(()=>{p()},[p]);let m=e=>{f(e),R(`review?scope=${t}&id=${encodeURIComponent(e)}`).then(t=>{u(n=>({...n,[e]:t.record.content}))}).catch(e=>{n.push(`error`,e.message)}).finally(()=>{f(null)})},h=(r,i)=>{f(r.id),R(`review-answer`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:r.id,scope:t,grade:i})}).then(t=>{c(e=>e?.filter(e=>e.id!==r.id)??null);let i=t.review?.intervalDays??1;n.push(`success`,e(`reviewScheduled`,{n:i})),a()}).catch(e=>{n.push(`error`,e.message)}).finally(()=>{f(null)})};return s===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):s.length===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`reviewQueueEmpty`)}):(0,i.jsx)(`ul`,{className:o.reviewQueue,children:s.map(t=>(0,i.jsxs)(`li`,{className:o.reviewItem,children:[(0,i.jsxs)(`div`,{className:o.reviewCue,children:[(0,i.jsx)(`span`,{className:F(t.kind),children:P(e,t.kind)}),t.slot!==void 0&&(0,i.jsxs)(`span`,{className:o.reviewSlot,children:[t.slot.room,`#`,t.slot.index]}),(0,i.jsx)(`span`,{className:o.reviewCaption,children:t.caption??e(`reviewNoPlacard`)}),(0,i.jsx)(`span`,{className:o.reviewOverdue,children:t.overdueDays>0?e(`reviewOverdue`,{n:t.overdueDays}):e(`reviewDueToday`)})]}),l[t.id]===void 0?(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{m(t.id)},children:e(`reviewReveal`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:o.reviewContent,children:l[t.id]}),(0,i.jsxs)(`div`,{className:o.reviewGrades,children:[(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,disabled:d===t.id,onClick:()=>{h(t,5)},children:e(`reviewGradeRemember`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{h(t,3)},children:e(`reviewGradeVague`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:d===t.id,onClick:()=>{h(t,1)},children:e(`reviewGradeForgot`)})]})]})]},t.id))})}function se({t:e,scope:t,onSelect:n}){let a=[``,`fact`,`preference`,`decision`,`episode`,`skill`],[s,l]=T(`tour.focusKind`,``,a),[u,d]=(0,r.useState)(null);(0,r.useEffect)(()=>{let n=!1;return R(s===``?`tour-proposal?scope=${t}`:`tour-proposal?scope=${t}&focusKind=${s}`).then(e=>{n||d(e)}).catch(()=>{n||d({greeting:e(`tourProposalEmpty`),activeCount:0,empty:!0,suggestedStops:[]})}),()=>{n=!0}},[e,t,s]);let f=t=>{if(t===``)return e(`tourFocusAll`);let n=c[t];return n===void 0?t:e(n)};return u===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):(0,i.jsxs)(`div`,{className:o.tourProposal,children:[(0,i.jsx)(`div`,{className:o.tourFocusRow,role:`tablist`,"aria-label":`focus-kind`,children:a.map(e=>(0,i.jsx)(`button`,{type:`button`,role:`tab`,"aria-selected":s===e,className:s===e?`${o.tourFocusChip} ${o.tourFocusChipOn}`:o.tourFocusChip,onClick:()=>{l(e)},children:f(e)},e||`all`))}),u.empty?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`tourProposalEmpty`)}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`p`,{className:o.tourGreeting,children:u.greeting}),(0,i.jsx)(`ol`,{className:o.tourStops,children:u.suggestedStops.map((t,r)=>(0,i.jsx)(`li`,{children:(0,i.jsxs)(`button`,{type:`button`,className:o.tourStop,onClick:()=>{n(t.id)},children:[(0,i.jsx)(`span`,{className:o.tourStopIndex,children:r+1}),(0,i.jsxs)(`span`,{className:o.tourStopBody,children:[(0,i.jsx)(`span`,{className:o.tourStopKind,children:P(e,t.kind)}),(0,i.jsx)(`span`,{className:o.tourStopText,children:t.content.length>60?`${t.content.slice(0,60)}…`:t.content})]})]})},t.id))}),(0,i.jsx)(`p`,{className:o.tourHint,children:e(`tourProposalHint`)})]})]})}function ce({t:e,scope:t,onSelect:n,onAfterAction:a,toast:s}){let[c,l]=(0,r.useState)(null),[u,d]=(0,r.useState)(!1),f=(0,r.useCallback)(()=>{d(!0),R(`refurb?scope=${t}`).then(e=>{l(e)}).catch(()=>{l({count:0,suggestions:[]})}).finally(()=>{d(!1)})},[t]);(0,r.useEffect)(()=>{f()},[f]);let p=t=>{switch(t){case`demote`:return e(`refurbActionDemote`);case`merge`:return e(`refurbActionMerge`);case`review`:return e(`refurbActionReview`);case`split`:return e(`refurbActionSplit`)}},m=(0,r.useCallback)(r=>{if(r.action===`review`||r.action===`split`){n(r.primaryId);return}if(r.action===`demote`){if(!window.confirm(e(`refurbConfirmDemote`)))return;d(!0),R(`forget`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:r.primaryId,scope:t,reason:`翻新清单降级`,affects:`无`,stillUseful:`可经 engram_restore 复原`})}).then(()=>{f(),a(),s.push(`success`,e(`refurbDemoteDone`))}).catch(t=>{s.push(`error`,e(`refurbActionFailed`,{msg:t.message}))}).finally(()=>{d(!1)});return}if(r.action===`merge`){let n=r.candidates.length+1;if(n<2){s.push(`warning`,e(`refurbMergeEmpty`));return}if(!window.confirm(e(`refurbConfirmMerge`,{n})))return;d(!0);let i=[r.primaryId,...r.candidates];R(`consolidate`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({scope:t,candidates:i})}).then(()=>{f(),a(),s.push(`success`,e(`refurbMergeDone`))}).catch(t=>{s.push(`error`,e(`refurbActionFailed`,{msg:t.message}))}).finally(()=>{d(!1)})}},[f,n,a,s,e,t]);return c===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`loading`)}):(0,i.jsxs)(`div`,{className:o.refurb,children:[(0,i.jsxs)(`div`,{className:o.refurbHead,children:[(0,i.jsx)(`span`,{className:o.refurbCount,children:e(`refurbCount`,{n:c.count})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:u,onClick:f,children:e(`refurbRun`)})]}),c.count===0?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`refurbEmpty`)}):(0,i.jsx)(`ul`,{className:o.refurbList,children:c.suggestions.map((t,r)=>(0,i.jsxs)(`li`,{className:o.refurbItem,children:[(0,i.jsx)(`button`,{type:`button`,className:o.refurbBadge,onClick:()=>{n(t.primaryId)},children:p(t.action)}),(0,i.jsx)(`div`,{className:o.refurbReason,children:t.reason}),(0,i.jsxs)(`span`,{className:o.refurbConfidence,children:[(t.confidence*100).toFixed(0),`%`]}),(0,i.jsx)(`button`,{type:`button`,className:`${o.refurbExec} ${o.button}`,disabled:u,onClick:()=>{m(t)},children:e(`refurbExecute`)})]},`${t.action}-${t.primaryId}-${r}`))})]})}function le({t:e,scope:t,onSelect:n}){let[a,s]=(0,r.useState)(null),[c,l]=(0,r.useState)(null);return(0,r.useEffect)(()=>{let e=!1;return R(`corridor?status=active,archived&scope=${t}`).then(t=>{e||s(t),l(null)}).catch(t=>{e||l(t.message)}),()=>{e=!0}},[t]),c===null?a===null?(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`corridorLoad`)}):a.nodes.length===0?(0,i.jsx)(`div`,{className:o.empty,children:e(`corridorEmpty`)}):(0,i.jsx)(g,{scope:t,nodes:a.nodes,edges:a.edges,onSelect:n,t:e}):(0,i.jsxs)(`div`,{className:o.expandLoading,children:[e(`corridorFailed`),`:`,c]})}function ue({t:e,byKind:t}){return(0,i.jsx)(`div`,{className:o.roomList,children:D.map(n=>(0,i.jsxs)(`div`,{className:o.roomRow,children:[(0,i.jsx)(`span`,{className:`${o.roomSwatch} ${o[A[n]??``]??``}`,"aria-hidden":`true`}),(0,i.jsx)(`span`,{children:P(e,n)}),(0,i.jsx)(`b`,{className:o.roomCount,children:t[n]??0})]},n))})}function de(e){let[t,n]=(0,r.useState)({stats:null,byKind:{},telemetry:null,health:null,failed:null});return(0,r.useEffect)(()=>{let t=!1;return Promise.all([R(`stats`),R(`telemetry?days=7&scope=${e}`),R(`health?scope=${e}`)]).then(([r,i,a])=>{if(t)return;let o=r.parts.find(t=>t.scope===e)?.stats??null;n({stats:o,byKind:o?.byKind??{},telemetry:i,health:a,failed:null})}).catch(e=>{t||n(t=>({...t,failed:e.message}))}),()=>{t=!0}},[e]),t}function fe({t:e,overview:t}){let{stats:n,telemetry:r,health:a,failed:s}=t;if(s!==null)return(0,i.jsx)(`section`,{className:o.panelCard,children:(0,i.jsxs)(`div`,{className:o.expandLoading,children:[e(`teleFailed`),`:`,s]})});if(r===null)return(0,i.jsx)(`section`,{className:o.panelCard,children:(0,i.jsx)(`div`,{className:o.expandLoading,children:e(`teleLoading`)})});let c=r.counts;return(0,i.jsxs)(`section`,{className:o.panelCard,children:[(0,i.jsxs)(`div`,{className:o.hero,children:[(0,i.jsxs)(`div`,{className:o.heroMetrics,children:[(0,i.jsx)(V,{label:e(`kpiTotal`),value:n?.total??0,tail:`${e(`teleGroupRecent`)} +${String(c.writes)}`}),(0,i.jsx)(V,{label:e(`kpiActive`),value:n?.active??0,tail:`${e(`kpiForgotten`)} ${String(n?.forgotten??0)}`}),(0,i.jsx)(V,{label:e(`kpiSignal`),value:`${String(Math.round((n?.signalRatio??0)*100))}%`,tail:e(`cardRedacted`,{n:n?.redacted??0})})]}),(0,i.jsxs)(`div`,{className:o.heroSide,children:[(0,i.jsx)(V,{label:e(`teleWrites`),value:c.writes,secondary:!0}),(0,i.jsx)(V,{label:e(`teleIngest`),value:c.ingestRequests,secondary:!0}),(0,i.jsx)(V,{label:e(`teleConsolidate`),value:c.consolidations,secondary:!0}),(0,i.jsx)(H,{score:a?.overall??0})]})]}),(0,i.jsxs)(`div`,{className:o.heroFoot,children:[(0,i.jsx)(`span`,{className:o.sectionHint,children:a===null?e(`healthLoading`):e(`healthEvaluatedAt`,{time:B(e,a.evaluatedAt)})}),(0,i.jsxs)(`span`,{className:o.telePrivacy,role:`note`,"aria-label":e(`telePrivacyHint`),tabIndex:0,children:[(0,i.jsxs)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,"aria-hidden":`true`,children:[(0,i.jsx)(`circle`,{cx:`7`,cy:`7`,r:`5.5`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`7`,y1:`6`,x2:`7`,y2:`10.5`,stroke:`currentColor`,strokeWidth:`1.4`,strokeLinecap:`round`}),(0,i.jsx)(`circle`,{cx:`7`,cy:`4.2`,r:`0.7`,fill:`currentColor`})]}),(0,i.jsx)(`span`,{className:o.telePrivacyHint,children:e(`telePrivacyHint`)}),(0,i.jsx)(`span`,{className:o.telePrivacyTip,role:`tooltip`,children:e(`telePrivacyTip`)})]})]})]})}let J={"low-activity":`skipLowActivity`,chitchat:`skipChitchat`,"capture-forbidden":`skipForbidden`,"no-user-content":`skipNoContent`,"already-ingested":`skipAlready`,"no-such-turn":`skipNoTurn`,"no-previous-turn":`skipNoTurn`,"no-route-in-log":`skipNoRoute`,unparsable:`skipUnparsable`};function Y(e,t){let n=J[t];return n===void 0?t:e(n)}function pe({t:e,toast:t}){let[n,a]=T(`backfill.days`,`7`,[`7`,`30`,`90`,`0`]),[s,c]=E(`backfill.maxTurns`,`20`),[l,u]=E(`backfill.maxTotal`,`200`),[d,f]=T(`backfill.subagents`,`false`,[`false`,`true`]),[p,m]=T(`backfill.seeded`,`false`,[`false`,`true`]),[h,g]=T(`backfill.noCwd`,`false`,[`false`,`true`]),[_,v]=E(`backfill.model`,``),[y,b]=(0,r.useState)(null),[x,S]=(0,r.useState)(null),[C,w]=(0,r.useState)(null),[D,O]=(0,r.useState)(!1);(0,r.useEffect)(()=>{let e=!1;return R(`models`).then(t=>{e||b(t)}).catch(()=>{e||b({providers:[],failures:[]})}),()=>{e=!0}},[]);let k=(()=>{if(_===``)return;let e=_.indexOf(`::`);if(!(e<=0))return{provider:_.slice(0,e),model:_.slice(e+2)}})(),A=new URLSearchParams({days:n,maxTurnsPerSession:s,maxTotalTurns:l,includeSubagents:d,includeSeeded:p,includeNoCwd:h});k!==void 0&&(A.set(`provider`,k.provider),A.set(`model`,k.model));let j=A.toString(),M=(0,r.useCallback)(()=>{O(!0),R(`history-backfill?${j}`).then(e=>{S(e.estimate)}).catch(e=>{t.push(`error`,e.message)}).finally(()=>{O(!1)})},[j,t]);(0,r.useEffect)(()=>{M()},[M]);let N=C?.progress.state===`running`;(0,r.useEffect)(()=>{let e=!1,t=()=>{R(`history-backfill/status`).then(t=>{e||w(t)}).catch(()=>{})};if(t(),!N)return()=>{e=!0};let n=window.setInterval(t,1500);return()=>{e=!0,window.clearInterval(n)}},[N]);let P=()=>{O(!0),R(`history-backfill/start`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({days:Number(n),maxTurnsPerSession:Number(s),maxTotalTurns:Number(l),includeSubagents:d===`true`,includeSeeded:p===`true`,includeNoCwd:h===`true`,...k===void 0?{}:{provider:k.provider,model:k.model}})}).then(e=>{w(e.status)}).catch(e=>{t.push(`error`,e.message)}).finally(()=>{O(!1)})},F=()=>{R(`history-backfill/cancel`,{method:`POST`,headers:{"content-type":`application/json`},body:`{}`}).then(e=>{w(e.status)}).catch(e=>{t.push(`error`,e.message)})},I=C?.progress,L=I===void 0?``:I.state===`running`?e(`backfillStateRunning`):I.state===`done`?e(`backfillStateDone`):I.state===`cancelled`?e(`backfillStateCancelled`):e(`backfillStateFailed`),ee=I===void 0||I.turnsPlanned===0?0:Math.min(100,Math.round(I.turnsDone/I.turnsPlanned*100));return(0,i.jsxs)(`div`,{className:o.backfill,children:[(0,i.jsx)(`p`,{className:o.backfillIntro,children:e(`backfillIntro`)}),(0,i.jsxs)(`div`,{className:o.backfillRules,children:[(0,i.jsxs)(`label`,{className:o.backfillRule,children:[(0,i.jsx)(`span`,{children:e(`backfillDays`)}),(0,i.jsxs)(`select`,{className:o.input,value:n,onChange:e=>{a(e.target.value)},children:[(0,i.jsx)(`option`,{value:`7`,children:e(`backfillDaysUnit`,{n:7})}),(0,i.jsx)(`option`,{value:`30`,children:e(`backfillDaysUnit`,{n:30})}),(0,i.jsx)(`option`,{value:`90`,children:e(`backfillDaysUnit`,{n:90})}),(0,i.jsx)(`option`,{value:`0`,children:e(`backfillDaysAll`)})]})]}),(0,i.jsxs)(`label`,{className:o.backfillRule,children:[(0,i.jsx)(`span`,{children:e(`backfillMaxTurns`)}),(0,i.jsx)(`input`,{className:o.input,type:`number`,min:1,max:500,value:s,onChange:e=>{c(e.target.value)}})]}),(0,i.jsxs)(`label`,{className:o.backfillRule,children:[(0,i.jsx)(`span`,{children:e(`backfillMaxTotal`)}),(0,i.jsx)(`input`,{className:o.input,type:`number`,min:1,max:5e3,value:l,onChange:e=>{u(e.target.value)}})]}),(0,i.jsxs)(`label`,{className:o.backfillRule,children:[(0,i.jsx)(`span`,{children:e(`backfillModel`)}),(0,i.jsxs)(`select`,{className:o.input,value:_,onChange:e=>{v(e.target.value)},children:[(0,i.jsx)(`option`,{value:``,children:e(`backfillModelAuto`)}),(y?.providers??[]).map(e=>(0,i.jsx)(`optgroup`,{label:e.name,children:e.models.map(t=>(0,i.jsx)(`option`,{value:`${e.id}::${t.id}`,children:t.name},`${e.id}::${t.id}`))},e.id))]})]})]}),(0,i.jsxs)(`div`,{className:o.backfillToggles,children:[(0,i.jsxs)(`label`,{className:o.backfillToggle,children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:d===`true`,onChange:e=>{f(e.target.checked?`true`:`false`)}}),e(`backfillIncludeSubagents`)]}),(0,i.jsxs)(`label`,{className:o.backfillToggle,children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:p===`true`,onChange:e=>{m(e.target.checked?`true`:`false`)}}),e(`backfillIncludeSeeded`)]}),(0,i.jsxs)(`label`,{className:o.backfillToggle,children:[(0,i.jsx)(`input`,{type:`checkbox`,checked:h===`true`,onChange:e=>{g(e.target.checked?`true`:`false`)}}),e(`backfillIncludeNoCwd`)]})]}),(0,i.jsx)(`div`,{className:o.backfillEstimate,children:x===null?(0,i.jsx)(`span`,{className:o.backfillMuted,children:e(`backfillEstimating`)}):x.unavailable===void 0?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(`div`,{className:o.backfillNumbers,children:[(0,i.jsx)(`span`,{className:o.backfillMetric,children:e(`backfillCandidates`,{n:x.candidates})}),(0,i.jsx)(`span`,{className:o.backfillMetric,children:e(`backfillPendingTurns`,{n:x.pendingTurns})}),(0,i.jsx)(`span`,{className:o.backfillMetric,children:e(`backfillAlready`,{n:x.alreadyIngested})})]}),(0,i.jsx)(`div`,{className:o.backfillMuted,children:e(`backfillSkippedDetail`,{subagent:x.skipped.subagent,seeded:x.skipped.seeded,noCwd:x.skipped.noCwd,tooOld:x.skipped.tooOld,unreadable:x.skipped.unreadable})}),x.truncated&&(0,i.jsx)(`div`,{className:o.backfillMuted,children:e(`backfillTruncated`)})]}):(0,i.jsx)(`span`,{className:o.backfillMuted,children:x.unavailable})}),(0,i.jsxs)(`div`,{className:o.backfillActions,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:D,onClick:M,children:e(`backfillReestimate`)}),(0,i.jsx)(`button`,{type:`button`,className:`${o.button} ${o.primary}`,disabled:D||N||x===null||x.unavailable!==void 0||x.pendingTurns===0,onClick:P,children:e(`backfillStart`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:!N,onClick:F,children:e(`backfillPause`)})]}),I!==void 0&&(0,i.jsxs)(`div`,{className:o.backfillProgress,children:[(0,i.jsxs)(`div`,{className:o.backfillProgressHead,children:[(0,i.jsx)(`span`,{children:L}),(0,i.jsx)(`span`,{children:e(`backfillProgressTurns`,{done:I.turnsDone,total:I.turnsPlanned})})]}),(0,i.jsx)(`div`,{className:o.progressBar,children:(0,i.jsx)(`i`,{style:{width:`${String(ee)}%`}})}),(0,i.jsxs)(`div`,{className:o.backfillMeta,children:[(0,i.jsx)(`span`,{children:e(`backfillProgressSessions`,{done:I.sessionsDone,total:I.sessionsTotal})}),(0,i.jsx)(`span`,{children:e(`backfillWritten`,{n:I.memoriesWritten})}),(0,i.jsx)(`span`,{children:e(`backfillTurnsSkipped`,{n:I.turnsSkipped})}),(0,i.jsx)(`span`,{children:e(`backfillTurnsFailed`,{n:I.turnsFailed})})]}),Object.keys(I.skipReasons).length>0&&(0,i.jsxs)(`div`,{className:o.backfillMeta,children:[(0,i.jsx)(`span`,{children:e(`backfillSkipReasons`)}),Object.entries(I.skipReasons).sort(([,e],[,t])=>t-e).map(([t,n])=>(0,i.jsx)(`span`,{children:`${Y(e,t)} ${String(n)}`},t))]}),(C?.failures??[]).length>0&&(0,i.jsxs)(`ul`,{className:o.backfillFailures,children:[(0,i.jsx)(`li`,{className:o.backfillMuted,children:e(`backfillFailures`)}),C.failures.slice(0,3).map((e,t)=>(0,i.jsx)(`li`,{children:`${e.sessionId.slice(-12)} · ${String(e.turn)} · ${e.reason}`},`${e.sessionId}-${String(e.turn)}-${String(t)}`))]}),(C?.failures??[]).length>0&&(0,i.jsx)(`div`,{className:o.backfillMuted,children:e(`backfillRouteHint`)}),C?.error!==void 0&&(0,i.jsx)(`div`,{className:o.backfillMuted,children:C.error})]})]})}function me({t:e,scope:t}){let[n,a]=(0,r.useState)(!1),s=(0,r.useRef)(null);(0,r.useEffect)(()=>{if(!n)return;let e=e=>{(s.current===null||!s.current.contains(e.target))&&a(!1)};return window.addEventListener(`mousedown`,e),()=>{window.removeEventListener(`mousedown`,e)}},[n]);let c=[{label:e(`exportMd`),hint:e(`exportMdHint`),href:`/api/engram/export?scope=${t}&format=markdown`},{label:e(`exportJson`),hint:e(`exportJsonHint`),href:`/api/engram/export?scope=${t}&format=json`},{label:e(`exportMirror`),hint:e(`exportMirrorHint`),href:`/api/engram/mirror?scope=${t}`}];return(0,i.jsxs)(`div`,{className:o.exportWrap,ref:s,children:[(0,i.jsxs)(`button`,{type:`button`,className:o.button,"aria-haspopup":`menu`,"aria-expanded":n,onClick:()=>{a(e=>!e)},children:[e(`export`),(0,i.jsx)(`span`,{className:o.exportCaret,"aria-hidden":`true`,children:`▾`})]}),n&&(0,i.jsx)(`div`,{className:o.exportMenu,role:`menu`,children:c.map(e=>(0,i.jsxs)(`a`,{role:`menuitem`,className:o.exportItem,href:e.href,onClick:()=>{a(!1)},children:[(0,i.jsx)(`span`,{className:o.exportItemLabel,children:e.label}),(0,i.jsx)(`span`,{className:o.exportItemHint,children:e.hint})]},e.href))})]})}function he({t:e}){let t=b(),[n,a]=T(`library.scope`,`user`,[`user`,`project`,`shared`]),[s,c]=T(`library.status`,`all`,[`all`,`active`,`archived`,`forgotten`]),[l,u]=T(`library.kind`,`all`,[`all`,`fact`,`preference`,`decision`,`episode`,`skill`]),[d,f]=E(`library.q`,``),[p,m]=T(`library.sort`,`time`,[`time`,`tour`]),[h,g]=(0,r.useState)(0),[_]=(0,r.useState)(`all`),[v,y]=(0,r.useState)(0),[x,S]=(0,r.useState)(null),[C,w]=(0,r.useState)(null),[A,j]=(0,r.useState)(null),[M,N]=(0,r.useState)(0),[I,L]=(0,r.useState)(new Set),[V,H]=(0,r.useState)(!1),[U,W]=(0,r.useState)(`today`),G=de(n),K=(0,r.useCallback)(()=>{N(e=>e+1)},[]),q=(0,r.useCallback)(()=>{R(`review-due?scope=${n}&limit=50`).then(e=>{g(e.items.length)}).catch(()=>{g(0)})},[n]);(0,r.useEffect)(()=>{q()},[q]);let ie=()=>{W(`today`),requestAnimationFrame(()=>{document.getElementById(`engram-review-due`)?.scrollIntoView({behavior:`smooth`,block:`nearest`})})},J=(0,r.useCallback)(e=>{let t=x?.records.find(t=>t.id===e);j({kind:`review`,record:t??{id:e,scope:n,kind:`fact`,content:``,importance:.5,confidence:.5,status:`active`,createdAt:Date.now(),accessCount:0,sourceSessionId:null,sourceRound:null}})},[x,n]);(0,r.useEffect)(()=>{let e=!1,t=new URLSearchParams({scope:n,status:s,kind:l,redacted:_,limit:`20`,offset:String(v)});return d!==``&&t.set(`q`,d),p===`tour`&&t.set(`sort`,`tour`),R(`list?${t.toString()}`).then(t=>{e||(S(t),w(null))}).catch(t=>{e||w(t.message)}),()=>{e=!0}},[n,s,l,_,d,p,v,M]);let Y=(e,n)=>{R(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:n.id,scope:n.scope})}).then(K).catch(e=>{t.push(`error`,e.message)})},he=(e,t)=>{j(n=>n!==null&&n.kind===e&&n.record.id===t.id?null:{kind:e,record:t})},X=x?.records??[],Z=X.filter(e=>I.has(e.id)),ge=Z.filter(e=>e.status===`active`).length,_e=Z.length-ge,ve=X.length>0&&X.every(e=>I.has(e.id)),ye=e=>{L(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},Q=()=>{L(new Set),H(!1)},be=()=>{L(e=>{let t=new Set(e);return ve?X.forEach(e=>t.delete(e.id)):X.forEach(e=>t.add(e.id)),t})},xe=e=>{let t=e===`forget`?Z.filter(e=>e.status===`active`):Z.filter(e=>e.status!==`active`);t.length!==0&&Promise.allSettled(t.map(t=>R(e,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({id:t.id,scope:t.scope})}))).then(()=>{Q(),K()})},Se=()=>{if(V){xe(`forget`);return}H(!0)},Ce=Math.floor(v/20)+1,we=x===null?1:Math.max(1,Math.ceil(x.total/20)),Te=(0,r.useRef)(new Map),[Ee,De]=(0,r.useState)({left:0,width:0,opacity:0}),$=(0,r.useCallback)(()=>{let e=Te.current.get(n);e!=null&&De({left:e.offsetLeft,width:e.offsetWidth,opacity:1})},[n]);return(0,r.useEffect)(()=>{$();let e=()=>$();return window.addEventListener(`resize`,e),()=>{window.removeEventListener(`resize`,e)}},[$]),(0,i.jsxs)(`div`,{className:o.panel,children:[(0,i.jsxs)(`div`,{className:o.header,children:[(0,i.jsxs)(`div`,{className:o.headerBrand,children:[(0,i.jsx)(`span`,{className:o.headerLogo,"aria-hidden":`true`,children:(0,i.jsxs)(`svg`,{width:`18`,height:`18`,viewBox:`0 0 48 48`,fill:`none`,children:[(0,i.jsx)(`path`,{d:`M6 20 L24 7 L42 20 Z`,fill:`currentColor`,fillOpacity:`0.9`}),(0,i.jsx)(`rect`,{x:`9`,y:`20`,width:`30`,height:`18`,rx:`1.5`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`}),(0,i.jsx)(`rect`,{x:`13`,y:`24`,width:`6`,height:`6`,rx:`1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`}),(0,i.jsx)(`line`,{x1:`16`,y1:`24`,x2:`16`,y2:`30`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`13`,y1:`27`,x2:`19`,y2:`27`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`path`,{d:`M21 38 L21 28 Q21 25 24 25 Q27 25 27 28 L27 38`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`}),(0,i.jsx)(`rect`,{x:`29`,y:`24`,width:`6`,height:`6`,rx:`1`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.6`}),(0,i.jsx)(`line`,{x1:`32`,y1:`24`,x2:`32`,y2:`30`,stroke:`currentColor`,strokeWidth:`1.2`}),(0,i.jsx)(`line`,{x1:`29`,y1:`27`,x2:`35`,y2:`27`,stroke:`currentColor`,strokeWidth:`1.2`})]})}),(0,i.jsxs)(`div`,{className:o.headerTitle,children:[(0,i.jsx)(`h2`,{children:e(`headerTitle`)}),(0,i.jsx)(`p`,{children:e(`headerSubtitle`)})]})]}),(0,i.jsxs)(`div`,{className:o.headerActions,children:[(0,i.jsxs)(`div`,{className:`${o.segGroup} ${o.segScope}`,children:[(0,i.jsx)(`span`,{className:o.segIndicator,style:{left:`${String(Ee.left)}px`,width:`${String(Ee.width)}px`,opacity:Ee.opacity}}),[`user`,`project`,`shared`].map(t=>(0,i.jsx)(`button`,{type:`button`,ref:e=>{Te.current.set(t,e)},className:n===t?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{a(t),y(0),j(null),Q()},children:e(k[t])},t))]}),h>0&&(0,i.jsxs)(`button`,{type:`button`,className:o.dueBadge,title:e(`dueBadgeLabel`,{n:h}),"aria-label":e(`dueBadgeLabel`,{n:h}),onClick:ie,children:[(0,i.jsx)(`span`,{className:o.dueDot,"aria-hidden":`true`}),h]}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{K(),q()},children:e(`refresh`)}),(0,i.jsx)(me,{t:e,scope:n})]})]}),(0,i.jsxs)(`div`,{className:o.tabs,role:`tablist`,children:[(0,i.jsx)(`button`,{type:`button`,role:`tab`,className:U===`today`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":U===`today`,onClick:()=>{W(`today`)},children:e(`tabToday`)}),(0,i.jsxs)(`button`,{type:`button`,role:`tab`,className:U===`library`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":U===`library`,onClick:()=>{W(`library`)},children:[e(`tabLibrary`),(0,i.jsx)(`small`,{children:e(`tabLibraryCount`,{n:x?.total??0})})]}),(0,i.jsx)(`button`,{type:`button`,role:`tab`,className:U===`corridor`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":U===`corridor`,onClick:()=>{W(`corridor`)},children:e(`tabCorridor`)}),(0,i.jsx)(`button`,{type:`button`,role:`tab`,className:U===`log`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":U===`log`,onClick:()=>{W(`log`)},children:e(`tabLog`)}),(0,i.jsx)(`button`,{type:`button`,role:`tab`,className:U===`backfill`?`${o.tabItem} ${o.on}`:o.tabItem,"aria-selected":U===`backfill`,onClick:()=>{W(`backfill`)},children:e(`tabBackfill`)})]}),U===`library`&&(0,i.jsxs)(`div`,{className:o.tabPanel,children:[(0,i.jsx)(`div`,{className:o.sectionHead,children:(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`tabLibrary`)})}),(0,i.jsxs)(`div`,{className:o.filters,children:[(0,i.jsx)(`div`,{className:o.segGroup,children:[[`all`,e(`allStatuses`)],[`active`,e(`statusActive`)],[`archived`,e(`statusArchived`)],[`forgotten`,e(`statusForgotten`)]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:s===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{c(e),y(0),j(null),Q()},children:t},e))}),(0,i.jsx)(`div`,{className:o.segGroup,children:[[`all`,e(`allKinds`)],...D.map(t=>[t,P(e,t)])].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:l===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{u(e),y(0),j(null),Q()},children:t},e))}),(0,i.jsx)(`div`,{className:o.segGroup,children:[[`time`,e(`sortTime`)],[`tour`,e(`sortTour`)]].map(([e,t])=>(0,i.jsx)(`button`,{type:`button`,className:p===e?`${o.segItem} ${o.on}`:o.segItem,onClick:()=>{m(e),y(0),j(null),Q()},children:t},e))}),(0,i.jsx)(`input`,{className:`${o.input} ${o.search}`,placeholder:e(`searchPlaceholder`),value:d,onChange:e=>{f(e.target.value.trim()),y(0),j(null),Q()}})]}),I.size>0&&(0,i.jsxs)(`div`,{className:o.batchBar,children:[(0,i.jsx)(`span`,{children:e(`selectedCount`,{n:I.size})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:be,children:e(ve?`deselectAll`:`selectAll`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:_e===0,onClick:()=>xe(`restore`),children:e(`batchRestore`,{n:_e})}),(0,i.jsx)(`button`,{type:`button`,className:V?`${o.button} ${o.danger}`:o.button,disabled:ge===0,onClick:Se,children:e(V?`batchForgetConfirm`:`batchForget`,{n:ge})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:Q,children:e(`clearSelection`)})]}),C!==null&&(0,i.jsxs)(`div`,{className:o.empty,children:[(0,i.jsx)(`b`,{children:e(`loadFailed`,{msg:C})}),(0,i.jsx)(`span`,{children:e(`emptyHint`)})]}),C===null&&x===null&&(0,i.jsx)(`div`,{className:o.skeletonList,children:[0,1,2,3].map(e=>(0,i.jsxs)(`div`,{className:o.skeleton,style:{animationDelay:`${String(e*60)}ms`},children:[(0,i.jsx)(`i`,{}),(0,i.jsx)(`i`,{}),(0,i.jsx)(`i`,{})]},e))}),C===null&&x!==null&&x.records.length===0&&(0,i.jsxs)(`div`,{className:o.empty,children:[(0,i.jsx)(`b`,{children:e(`empty`)}),(0,i.jsx)(`span`,{children:e(`emptyHint`)})]}),(x?.records??[]).length>0&&(0,i.jsx)(`div`,{className:o.itemList,children:(x?.records??[]).map((t,n)=>(0,i.jsxs)(`div`,{className:I.has(t.id)?`${o.item} ${o.selected}`:o.item,style:{animationDelay:`${String(Math.min(n,12)*36)}ms`},children:[(0,i.jsx)(`input`,{type:`checkbox`,className:o.itemCheck,checked:I.has(t.id),"aria-label":t.content.slice(0,24),onChange:()=>ye(t.id)}),(0,i.jsxs)(`div`,{className:o.itemBody,children:[(0,i.jsxs)(`div`,{className:o.itemTags,children:[(0,i.jsx)(`span`,{className:`${o.pill} ${o[`status${t.status.charAt(0).toUpperCase()}${t.status.slice(1)}`]??``}`,children:e(O[t.status])}),(0,i.jsx)(`span`,{className:F(t.kind),children:P(e,t.kind)}),t.slot!==void 0&&(0,i.jsxs)(`span`,{className:o.pill,children:[t.slot.room,`#`,t.slot.index]}),t.content.includes(`[REDACTED:`)&&(0,i.jsx)(`span`,{className:`${o.pill} ${o.redacted}`,children:e(`tagRedacted`)}),t.outcome!==void 0&&(0,i.jsx)(`span`,{className:`${o.pill} ${t.outcome===`success`?o.outcomeSuccess:o.outcomeFailure}`,children:t.outcome===`success`?e(`tagOutcomeSuccess`):e(`tagOutcomeFailure`)}),(0,i.jsxs)(`span`,{className:o.itemStamp,title:z(t.createdAt),children:[e(k[t.scope]),` · `,B(e,t.createdAt)]})]}),(0,i.jsx)(`div`,{className:o.content,children:t.content}),(0,i.jsxs)(`div`,{className:o.itemMeta,children:[(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e(`importance`)}),` `,t.importance.toFixed(2)]}),(0,i.jsxs)(`span`,{children:[(0,i.jsx)(`b`,{children:e(`confidence`)}),` `,t.confidence.toFixed(2)]}),(0,i.jsx)(`span`,{children:e(`accessCount`,{n:t.accessCount})}),(0,i.jsx)(`span`,{children:ee(e,t)})]})]}),(0,i.jsxs)(`div`,{className:o.itemOps,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{he(`review`,t)},children:e(`detail`)}),(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{he(`edit`,t)},children:e(`edit`)}),t.status===`active`?(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{Y(`forget`,t)},children:e(`forget`)}):(0,i.jsx)(`button`,{type:`button`,className:o.button,onClick:()=>{Y(`restore`,t)},children:e(`restore`)})]})]},t.id))}),(0,i.jsxs)(`div`,{className:o.pager,children:[(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:v===0,"aria-label":e(`prevPage`),onClick:()=>{y(Math.max(0,v-20)),j(null),Q()},children:`‹`}),(0,i.jsx)(`span`,{children:e(`pagerInfo`,{page:Ce,pages:we,total:x?.total??0})}),(0,i.jsx)(`button`,{type:`button`,className:o.button,disabled:x===null||v+20>=x.total,"aria-label":e(`nextPage`),onClick:()=>{y(v+20),j(null),Q()},children:`›`})]})]}),U===`today`&&(0,i.jsxs)(`div`,{className:o.tabPanel,children:[(0,i.jsx)(fe,{t:e,overview:G}),(0,i.jsxs)(`div`,{className:o.layout,children:[(0,i.jsxs)(`div`,{className:o.mainCol,children:[(0,i.jsxs)(`section`,{className:o.section,id:`engram-review-due`,children:[(0,i.jsxs)(`div`,{className:o.sectionHead,children:[(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`reviewQueueTitle`)}),(0,i.jsx)(`span`,{className:o.sectionHint,children:e(`reviewQueueHint`)})]}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(oe,{t:e,scope:n,toast:t,onAnswered:q})})]}),(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsx)(`div`,{className:o.sectionHead,children:(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`refurbTitle`)})}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(ce,{t:e,scope:n,onSelect:J,onAfterAction:K,toast:t})})]})]}),(0,i.jsxs)(`aside`,{className:o.sideCol,children:[(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsxs)(`div`,{className:o.sectionHead,children:[(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`roomsTitle`)}),(0,i.jsx)(`span`,{className:o.sectionHint,children:e(`roomsHint`)})]}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(ue,{t:e,byKind:G.byKind})})]}),(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsx)(`div`,{className:o.sectionHead,children:(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`tourProposalTitle`)})}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(se,{t:e,scope:n,onSelect:J})})]})]})]})]}),U===`corridor`&&(0,i.jsx)(`div`,{className:o.tabPanel,children:(0,i.jsxs)(`div`,{className:o.mainCol,children:[(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsx)(`div`,{className:o.sectionHead,children:(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`sectionCorridor`)})}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(le,{t:e,scope:n,onSelect:J})})]}),(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsxs)(`div`,{className:o.sectionHead,children:[(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`benchTitle`)}),(0,i.jsx)(`span`,{className:o.sectionHint,children:e(`benchNote`)})]}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(re,{t:e,scope:n})})]})]})}),U===`log`&&(0,i.jsx)(`div`,{className:o.tabPanel,children:(0,i.jsx)(ae,{t:e,telemetry:G.telemetry})}),U===`backfill`&&(0,i.jsx)(`div`,{className:o.tabPanel,children:(0,i.jsxs)(`section`,{className:o.section,children:[(0,i.jsx)(`div`,{className:o.sectionHead,children:(0,i.jsx)(`h4`,{className:o.sectionTitle,children:e(`backfillRulesTitle`)})}),(0,i.jsx)(`div`,{className:o.panelCard,children:(0,i.jsx)(pe,{t:e,toast:t})})]})}),A!==null&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(`div`,{className:o.drawerScrim,onClick:()=>{j(null)}}),(0,i.jsxs)(`aside`,{className:o.drawer,role:`dialog`,"aria-label":e(`drawerTitle`),children:[(0,i.jsxs)(`header`,{className:o.drawerHead,children:[(0,i.jsxs)(`div`,{className:o.drawerTitle,children:[(0,i.jsx)(`h3`,{children:e(`drawerTitle`)}),(0,i.jsx)(`span`,{title:A.record.id,children:`#${A.record.id.slice(0,8)}…`})]}),(0,i.jsx)(`button`,{type:`button`,className:o.drawerClose,"aria-label":e(`drawerClose`),onClick:()=>{j(null)},children:(0,i.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 14 14`,fill:`none`,"aria-hidden":`true`,children:(0,i.jsx)(`path`,{d:`M2 2 L12 12 M12 2 L2 12`,stroke:`currentColor`,strokeWidth:`1.6`,strokeLinecap:`round`})})})]}),(0,i.jsx)(`div`,{className:o.drawerBody,children:A.kind===`review`?(0,i.jsx)(te,{t:e,recordId:A.record.id,scope:A.record.scope}):(0,i.jsx)(ne,{t:e,record:A.record,onClose:()=>{j(null)},onSaved:()=>{j(null),K()},toast:t})})]})]}),t.viewport]})}let X=[`slots`,`locale`];function Z(e){e.effect(()=>e.locale.register(s,{zh:l,en:u}),`dsh-engram: dictionaries`);let t=e.locale.bind(s);e.slots.inject(`settings.section`,()=>e.slots.register({name:`settings.section`,id:`engram`,order:20,label:()=>t(`nav`),locale:s},he))}return n.apply=Z,n.inject=X,t.exports}});
|
|
2
2
|
//# sourceMappingURL=client.js.map
|