dsh-mnemon 0.5.29 → 0.5.31

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/lib/client.js CHANGED
@@ -339,8 +339,9 @@ window.__ModuleLoader__.load({
339
339
  confirmed
340
340
  }));
341
341
  }
342
+ /** A session-scoped call reports the route that conversation's background work uses. */
342
343
  taskAgentModels(includeCatalog) {
343
- return this.call(MNEMON_READ_CHANNEL, "task-agent-models", includeCatalog === void 0 ? {} : { includeCatalog });
344
+ return this.call(MNEMON_READ_CHANNEL, "task-agent-models", this.scoped(includeCatalog === void 0 ? {} : { includeCatalog }));
344
345
  }
345
346
  versions() {
346
347
  return this.call(MNEMON_READ_CHANNEL, "versions", {});
@@ -354,6 +355,10 @@ window.__ModuleLoader__.load({
354
355
  updateProviderService(request) {
355
356
  return this.call(MNEMON_WRITE_CHANNEL, "provider-service-update", this.scoped(request));
356
357
  }
358
+ /** Fill in the vectors a Mnemon Native space lacks (#392). */
359
+ fillEmbeddings(memoryBodyId) {
360
+ return this.call(MNEMON_WRITE_CHANNEL, "embedding-fill", this.scoped({ memoryBodyId }));
361
+ }
357
362
  /** Settled memory-tool activity of one turn, shared across all mounted tails. */
358
363
  async turnActivity(turn, cursor = 0) {
359
364
  return (await loadTurnActivities(this.connection, this.sessionId, cursor)).activities.find((activity) => activity.turn === turn) ?? null;
@@ -673,7 +678,7 @@ window.__ModuleLoader__.load({
673
678
  }
674
679
  //#endregion
675
680
  //#region \0dsh-mnemon-css:/home/runner/work/dsh-mnemon/dsh-mnemon/src/client/MnemonSettingsCard.module.css.mjs
676
- const css$13 = "._v_wrq_page{box-sizing:border-box;width:100%;min-width:0;color:var(--dsw-alias-label-primary);flex-direction:column;gap:32px;font-family:inherit;display:flex}._v_wrq_surface{color:var(--dsw-alias-label-primary)}:where(._v_wrq_page,._v_wrq_surface) *,:where(._v_wrq_page,._v_wrq_surface) :before,:where(._v_wrq_page,._v_wrq_surface) :after{box-sizing:border-box}:where(._v_wrq_page,._v_wrq_surface) :where(button,input,select,textarea){color:inherit;font:inherit}._v_wrq_loading{min-height:140px;color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;font-size:13px;line-height:140px}._v_wrq_section{flex-direction:column;gap:4px;min-width:0;display:flex}._v_wrq_sectionHeading{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;min-width:0;display:grid}._v_wrq_sectionHeading h2{grid-column:1;margin:0;font-size:14px;font-weight:500;line-height:20px}._v_wrq_sectionHeading p{max-width:66ch;color:var(--dsw-alias-label-tertiary);grid-column:1;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_sectionHeading ._v_wrq_miniSpinner{grid-area:1/2}._v_wrq_sectionHeading>._v_wrq_boardLinks{grid-column:1;padding-top:6px}._v_wrq_componentListNote{max-width:72ch;color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_appliesNow{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);white-space:nowrap;grid-area:1/2;align-self:center;padding:1px 6px;font-size:11px;line-height:16px}._v_wrq_rows{flex-direction:column;min-width:0;display:flex}._v_wrq_settingRow,._v_wrq_toggleRow{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;padding:14px 0;display:flex;position:relative}._v_wrq_rows>:last-child,._v_wrq_rows>._v_wrq_packRow:last-child>._v_wrq_settingRow{border-bottom:0}._v_wrq_rows>._v_wrq_packRow:last-child{padding-bottom:0}._v_wrq_settingRow[data-stacked]{flex-direction:column;align-items:stretch}._v_wrq_settingCopy{flex-direction:column;flex:1 1 0;gap:2px;min-width:min(240px,100%);display:flex}._v_wrq_settingCopy strong,._v_wrq_settingCopy label{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}._v_wrq_settingCopy small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_settingCopy code{font-family:var(--ds-font-family-code,ui-monospace, monospace)}._v_wrq_settingControl{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_settingRow[data-stacked] ._v_wrq_settingControl{flex:auto;justify-content:stretch}._v_wrq_switch{flex:none}._v_wrq_rowNote{min-width:0;color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:4px 8px;padding-top:4px;font-size:12px;line-height:18px;display:flex}._v_wrq_groupCallout{margin:8px 0 4px}._v_wrq_boardSection{container-type:inline-size}._v_wrq_board{flex-direction:column;min-width:0;margin-top:10px;display:flex}._v_wrq_boardProblem{margin:0 0 4px}._v_wrq_boardLoading{min-height:40px;color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin:0;font-size:13px;line-height:20px;display:flex}._v_wrq_boardGroup{flex-direction:column;min-width:0;padding-top:14px;display:flex}._v_wrq_boardGroupHead{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}._v_wrq_boardGroupHead h3{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:18px}._v_wrq_boardGroupHead span{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px;line-height:18px}._v_wrq_pageLink{appearance:none;border-radius:var(--dsw-radius-sm);max-width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}._v_wrq_pageLink>span{overflow-wrap:anywhere;min-width:0}._v_wrq_pageLink:hover>span{text-underline-offset:3px;text-decoration:underline}._v_wrq_settingCopy ._v_wrq_pageLink{width:fit-content;color:var(--dsw-alias-label-primary);font-size:14px;line-height:22px}._v_wrq_boardIconButton{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}._v_wrq_boardIconButton:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_boardLinks{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;padding-top:4px;display:flex}._v_wrq_boardLink{appearance:none;border:.5px solid var(--dsw-alias-border-l3);max-width:100%;color:var(--dsw-alias-label-tertiary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s;display:inline-flex}._v_wrq_boardLink[data-on]{color:var(--dsw-alias-label-secondary)}._v_wrq_boardLink:hover{border-color:var(--dsw-alias-border-l4);color:var(--dsw-alias-label-primary)}._v_wrq_boardLink>svg{flex:none}._v_wrq_boardLinksLabel{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_pageLink:focus-visible,._v_wrq_boardIconButton:focus-visible,._v_wrq_boardLink:focus-visible,._v_wrq_detailsBack:focus-visible,._v_wrq_boardSearch:focus-within{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_boardSearch{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);min-width:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-base);align-items:center;gap:8px;margin:12px 0 0;padding:0 10px;display:flex}._v_wrq_boardSearch input{min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:13px}._v_wrq_detailsDialog{width:min(560px,100%);max-height:100%}._v_wrq_detailsScroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}._v_wrq_detailsBody{flex-direction:column;gap:16px;min-width:0;display:flex}._v_wrq_detailsHead{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_detailsHeadLine{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}._v_wrq_detailsPackage{min-width:0;color:var(--dsw-alias-label-tertiary);font-family:var(--ds-font-family-code,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}._v_wrq_detailsControl{align-items:center;margin-left:auto;display:flex}._v_wrq_detailsSection{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:8px;min-width:0;padding-top:14px;display:flex}._v_wrq_detailsSection>h3{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:18px}._v_wrq_detailsRelations{grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;min-width:0;margin:0;font-size:13px;line-height:20px;display:grid}._v_wrq_detailsRelations>div{display:contents}._v_wrq_detailsRelations dt{color:var(--dsw-alias-label-secondary)}._v_wrq_detailsRelations dd{min-width:0;color:var(--dsw-alias-label-primary);flex-wrap:wrap;gap:4px 12px;margin:0;display:flex}._v_wrq_detailsName{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}._v_wrq_detailsName:hover>span{text-underline-offset:3px;text-decoration:underline}._v_wrq_detailsBack{appearance:none;border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;margin:-4px 0 -6px -4px;padding:2px 4px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_detailsBack:hover{color:var(--dsw-alias-label-primary)}._v_wrq_detailsMissing{color:var(--dsw-alias-label-secondary)}._v_wrq_detailsEffect{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}._v_wrq_detailsBody ._v_wrq_optionsPanel{background:0 0;border-radius:0;margin:0;padding:0}._v_wrq_componentRowPage{flex-direction:column;gap:16px;min-width:0;display:flex}._v_wrq_detailsContributed{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:16px;min-width:0;padding-top:14px;display:flex}._v_wrq_panelSection{flex-direction:column;gap:8px;min-width:0;display:flex}._v_wrq_panelHeading{grid-template-columns:minmax(0,1fr) auto;column-gap:12px;min-width:0;display:grid}._v_wrq_panelHeading h3{color:var(--dsw-alias-label-primary);margin:0;font-size:13px;font-weight:500;line-height:20px}._v_wrq_panelHeading p{color:var(--dsw-alias-label-tertiary);grid-column:1;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_panelHeading ._v_wrq_miniSpinner{grid-area:1/2}._v_wrq_panelNote{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}._v_wrq_panelActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;padding-top:8px;display:flex}._v_wrq_panelActions>span{min-width:0;color:var(--dsw-alias-label-secondary);flex:1;font-size:12px;line-height:18px}._v_wrq_panelActions>span._v_wrq_panelError,._v_wrq_panelError{color:var(--dsw-alias-state-error-primary)}._v_wrq_rows>._v_wrq_panelActions{border-bottom:.5px solid var(--dsw-alias-border-l2);padding:10px 0}._v_wrq_rows>._v_wrq_panelNote{padding:8px 0}._v_wrq_panelError{margin:0;font-size:12px;line-height:18px}._v_wrq_boardRow{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;min-width:0;padding:14px 0;display:flex}._v_wrq_boardRowLine{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;display:flex}._v_wrq_boardGroup>._v_wrq_boardRow:last-child,._v_wrq_boardOthersList>._v_wrq_boardRow:last-child{border-bottom:0;padding-bottom:4px}._v_wrq_boardMain{padding-top:12px}._v_wrq_boardEmpty{color:var(--dsw-alias-label-tertiary);margin:0;padding:12px 0 4px;font-size:12px;line-height:18px}._v_wrq_boardOthers{flex-direction:column;min-width:0;padding-top:10px;display:flex}._v_wrq_boardOthersToggle{border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}._v_wrq_boardOthersToggle:hover{color:var(--dsw-alias-label-primary)}._v_wrq_boardOthersToggle>svg{transition:transform .14s;transform:rotate(-90deg)}._v_wrq_boardOthersToggle[aria-expanded=true]>svg{transform:rotate(0)}._v_wrq_boardOthersList{flex-direction:column;min-width:0;display:flex}._v_wrq_boardFootnote{color:var(--dsw-alias-label-tertiary);margin:12px 0 0;font-size:12px;line-height:18px}._v_wrq_optionsPanel{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;min-width:0;margin-top:12px;padding:14px 16px;display:flex}._v_wrq_optionField{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_optionLabel{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_optionLabel label{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}._v_wrq_optionDefault{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-tertiary);padding:0 6px;font-size:11px;line-height:16px}._v_wrq_optionReset{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-state-business-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:12px;line-height:18px}._v_wrq_optionReset:disabled{cursor:default;opacity:.5}._v_wrq_optionInput{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);width:100%;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);font:inherit;resize:vertical;outline:none;padding:7px 10px;font-size:13px;line-height:20px}._v_wrq_optionInput:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_optionInput[aria-invalid=true]{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_optionInput:disabled{opacity:.5}._v_wrq_optionHint{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_optionHint[data-error]{color:var(--dsw-alias-state-error-primary)}._v_wrq_optionChoices{flex-wrap:wrap;gap:6px 16px;min-width:0;display:flex}._v_wrq_optionEmpty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_boardControl{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:6px 12px;min-width:0;margin-left:auto;display:flex}._v_wrq_boardState{min-width:0;color:var(--dsw-alias-label-tertiary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_boardState[data-tone=warning],._v_wrq_boardState[data-tone=error]{color:var(--dsw-alias-label-secondary)}._v_wrq_boardValue{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px}@container (width<=420px){._v_wrq_boardMain ._v_wrq_boardControl{justify-content:stretch;width:100%}._v_wrq_boardMain ._v_wrq_boardControl>:last-child{flex:1}}@container (width<=180px){._v_wrq_boardSection ._v_wrq_sectionHeading p,._v_wrq_boardSection ._v_wrq_settingCopy small{display:none}._v_wrq_boardSection ._v_wrq_boardRow{padding:10px 0}._v_wrq_boardSection ._v_wrq_boardRowLine{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}._v_wrq_boardSection ._v_wrq_settingCopy{min-width:0}._v_wrq_boardSection ._v_wrq_settingCopy strong{overflow-wrap:anywhere}._v_wrq_boardSection ._v_wrq_boardControl{justify-self:end}}._v_wrq_placeholderRow{border-bottom:.5px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:16px;min-height:70px;display:flex}._v_wrq_placeholderRow span{background:var(--dsw-alias-bg-module-platform);border-radius:6px;height:12px;animation:1.4s ease-in-out infinite _v_wrq_placeholder-pulse}._v_wrq_placeholderRow span:first-child{width:38%}._v_wrq_placeholderRow span:last-child{border-radius:10px;width:36px;height:20px}@keyframes _v_wrq_placeholder-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){._v_wrq_boardRowCopy,._v_wrq_boardOthersToggle>svg{transition:none}._v_wrq_placeholderRow span{animation:none}}._v_wrq_selector{appearance:none;border-radius:var(--dsw-radius-md);max-width:280px;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-module-platform);white-space:nowrap;cursor:pointer;border:0;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._v_wrq_selector>span{text-overflow:ellipsis;min-width:0;overflow:hidden}._v_wrq_selector>svg{color:var(--dsw-alias-label-tertiary);flex:none}._v_wrq_selector:hover:not(:disabled),._v_wrq_selector[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_selector:disabled{cursor:default;opacity:.4}._v_wrq_selectMenu{min-width:220px}._v_wrq_selectOption{white-space:normal;gap:1px;min-width:0;display:grid}._v_wrq_selectOption>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_directoryInput{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font-family:var(--ds-font-family-code,ui-monospace, monospace);outline:none;padding:0 12px;font-size:12px;line-height:20px}._v_wrq_directoryInput::placeholder{color:var(--dsw-alias-label-dimmed);font-family:var(--dsw-font-family);font-size:13px}._v_wrq_directoryInput:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_directoryInput[aria-invalid=true]{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_directoryInput:disabled{cursor:default;opacity:.5}._v_wrq_rowDetail{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:10px;min-width:0;padding:0 0 14px;display:flex}._v_wrq_settingRow:has(+._v_wrq_rowDetail){border-bottom:0;padding-bottom:10px}._v_wrq_effectiveRoute{min-width:0;color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;gap:12px;font-size:12px;line-height:18px;display:flex}._v_wrq_effectiveRoute code{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);min-width:0;color:var(--dsw-alias-label-secondary);font-family:var(--ds-font-family-code,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;padding:1px 6px;font-size:11px;line-height:16px;overflow:hidden}._v_wrq_effectiveRoute small{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}._v_wrq_warning{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_advanced{min-width:0;padding:12px 0 2px}._v_wrq_advanced>summary{border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:inline-flex}._v_wrq_advanced>summary::-webkit-details-marker{display:none}._v_wrq_advanced>summary>svg{transition:transform .14s}._v_wrq_advanced[open]>summary>svg{transform:rotate(180deg)}._v_wrq_advanced>summary:hover{color:var(--dsw-alias-label-primary)}._v_wrq_advanced>._v_wrq_fieldGrid{padding-top:12px}._v_wrq_miniSpinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;width:14px;height:14px;margin-top:4px;animation:.7s linear infinite _v_wrq_settings-spin}@keyframes _v_wrq_settings-spin{to{transform:rotate(360deg)}}._v_wrq_providerList{flex-direction:column;gap:8px;min-width:0;margin-top:10px;display:flex}._v_wrq_providerRow{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);overflow:hidden}._v_wrq_providerRowHeader{align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}summary._v_wrq_providerRowHeader{cursor:pointer;list-style:none}summary._v_wrq_providerRowHeader::-webkit-details-marker{display:none}._v_wrq_providerDisclosure{appearance:none;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;outline:none;flex:1;align-items:center;gap:8px;padding:0;display:flex}._v_wrq_providerDisclosure:disabled{cursor:default}._v_wrq_providerDisclosure:focus-visible,summary._v_wrq_providerRowHeader:focus-visible{border-radius:var(--dsw-radius-md);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}._v_wrq_providerIdentity{flex:1;align-items:center;gap:12px;min-width:0;display:flex}._v_wrq_providerIdentity>span{flex-direction:column;min-width:0;display:flex}._v_wrq_providerIdentity strong{font-size:14px;font-weight:500;line-height:22px}._v_wrq_providerIdentity small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}._v_wrq_providerMark{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);flex:none;place-items:center;width:36px;height:36px;padding:6px;display:grid;overflow:hidden}._v_wrq_providerMark>img,._v_wrq_providerMark>svg{object-fit:contain;border-radius:4px;width:100%;height:100%;display:block}._v_wrq_providerEnableControl{flex:none;align-items:center;gap:10px;display:flex}._v_wrq_providerScopeTag{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);flex:none;padding:1px 6px;font-size:11px;line-height:16px}._v_wrq_providerScopeTag[data-scope=workspace]{border-color:color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, transparent);color:var(--dsw-alias-state-business-primary)}._v_wrq_providerState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_providerState:before{content:\"\";background:var(--dsw-alias-state-idle-primary);border-radius:50%;flex:none;width:6px;height:6px}._v_wrq_providerState[data-enabled]:before{background:var(--dsw-alias-state-success-primary)}._v_wrq_providerChevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .14s}._v_wrq_providerDisclosure[aria-expanded=true] ._v_wrq_providerChevron,details[open]>summary ._v_wrq_providerChevron{transform:rotate(180deg)}._v_wrq_providerToggle{cursor:pointer;display:inline-flex;position:relative}._v_wrq_providerInlineBody{padding:0 14px 14px}._v_wrq_providerToggleError{color:var(--dsw-alias-state-error-primary);margin:0;padding:0 14px 12px;font-size:12px;line-height:18px}._v_wrq_providerServiceForm,._v_wrq_editor{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:12px;min-width:0;padding:14px 16px;display:flex}._v_wrq_providerServicePrompt,._v_wrq_editorNote{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_editorHeading h3{margin:0;font-size:14px;font-weight:500;line-height:22px}._v_wrq_editorHeading p{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_editor ._v_wrq_toggleRow{border-top:.5px solid var(--dsw-alias-border-l3);border-bottom:.5px solid var(--dsw-alias-border-l3);padding:10px 0}._v_wrq_embeddingTest{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}._v_wrq_embeddingTest>span{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_embeddingTest>span._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_globalLocationSetting{flex-direction:column;min-width:0;display:flex}._v_wrq_providerServiceLocation{border-bottom:.5px solid var(--dsw-alias-border-l3);padding-bottom:12px}._v_wrq_providerServiceLocation>._v_wrq_nativeLocation{padding:0 0 12px}._v_wrq_providerLocationField{padding-top:2px}._v_wrq_nativeLocation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;display:flex}._v_wrq_inlineChoices{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);flex:none;align-items:center;gap:2px;padding:3px;display:inline-flex}._v_wrq_inlineChoices label{cursor:pointer;position:relative}._v_wrq_inlineChoices input{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}._v_wrq_inlineChoices span{border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;align-items:center;padding:0 12px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}._v_wrq_inlineChoices input:checked+span{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);box-shadow:var(--dsw-elevation-soft)}._v_wrq_inlineChoices input:focus-visible+span{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}._v_wrq_inlineChoices input:disabled+span{cursor:default;opacity:.4}._v_wrq_fieldGrid,._v_wrq_providerSettingsGrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;min-width:0;display:grid}._v_wrq_providerSettingsGrid{grid-template-columns:minmax(0,1fr)}._v_wrq_fieldGrid>label,._v_wrq_providerFieldControl>label:not(._v_wrq_providerBoolean){min-width:0;color:var(--dsw-alias-label-primary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;line-height:20px;display:flex}._v_wrq_fieldGrid input,._v_wrq_fieldGrid select,._v_wrq_providerFieldControl input:not([type=checkbox]),._v_wrq_providerFieldControl select{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;padding:0 12px;font-size:13px;font-weight:400;line-height:20px}._v_wrq_fieldGrid input::placeholder,._v_wrq_providerFieldControl input::placeholder{color:var(--dsw-alias-label-dimmed)}._v_wrq_fieldGrid select,._v_wrq_providerFieldControl select{appearance:none;cursor:pointer;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 12px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}._v_wrq_fieldGrid select:disabled,._v_wrq_providerFieldControl select:disabled{cursor:default}._v_wrq_fieldGrid input:focus-visible,._v_wrq_fieldGrid select:focus-visible,._v_wrq_providerFieldControl input:focus-visible,._v_wrq_providerFieldControl select:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_fieldGrid input[aria-invalid=true],._v_wrq_providerFieldControl input:invalid{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_fieldGrid input:disabled,._v_wrq_fieldGrid select:disabled,._v_wrq_providerFieldControl input:disabled,._v_wrq_providerFieldControl select:disabled{opacity:.5}._v_wrq_providerFieldControl{flex-direction:column;justify-content:flex-end;gap:4px;min-width:0;display:flex}._v_wrq_providerBoolean{min-height:34px;color:var(--dsw-alias-label-primary);align-items:center;gap:8px;font-size:13px;display:flex}._v_wrq_providerBoolean input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary);margin:0}._v_wrq_providerSecretInput{min-width:0;position:relative}._v_wrq_providerSecretInput>input{padding-right:40px}._v_wrq_providerSecretVisibility{appearance:none;border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:3px}._v_wrq_providerSecretVisibility:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_providerSecretVisibility:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_providerSecretVisibility:disabled{cursor:default;opacity:.35}._v_wrq_providerSecretVisibility svg{width:16px;height:16px}._v_wrq_memoryConfigFooter{justify-content:space-between;align-items:center;gap:10px;min-height:36px;display:flex}._v_wrq_memoryConfigFooter>div{align-items:center;gap:6px;display:flex}._v_wrq_providerServiceFooter{align-items:flex-end;min-height:0}._v_wrq_configFeedback{flex:1;min-width:0;font-size:12px;line-height:18px}._v_wrq_scopeChanging,._v_wrq_providerTarget{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_scopeChanging{border-radius:var(--dsw-radius-md);color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-warn-tertiary,var(--dsw-alias-bg-module-platform));padding:8px 12px}._v_wrq_providerLoadError{justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}._v_wrq_visuallyHidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}._v_wrq_location{align-items:baseline;gap:6px;min-width:0;display:flex}._v_wrq_locationRow{border-bottom:.5px solid var(--dsw-alias-border-l2);gap:10px;padding:14px 0}._v_wrq_rowActions{flex:none;align-items:center;gap:8px;display:flex}._v_wrq_packRow{flex-direction:column;gap:8px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_packRow>._v_wrq_settingRow{border-bottom:0;padding-bottom:6px}._v_wrq_packRow:has(>._v_wrq_packFeedback:empty):not(:has(>._v_wrq_importBar))>._v_wrq_settingRow{padding-bottom:0}._v_wrq_rows>._v_wrq_packRow:not(:last-child){border-bottom:.5px solid var(--dsw-alias-border-l2)}._v_wrq_importBar{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:grid}._v_wrq_importBar>div{min-width:0;display:grid}._v_wrq_importBar strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}._v_wrq_importBar small{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_packFeedback{gap:4px;display:grid}._v_wrq_packFeedback:empty{display:none}._v_wrq_packFeedback p{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_readOnlyNotice{color:var(--dsw-alias-label-tertiary);margin:0 0 -20px;font-size:12px;line-height:18px}._v_wrq_packSuccess{color:var(--dsw-alias-state-success-primary)}._v_wrq_syncRow{flex-direction:column;gap:8px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_syncRow>._v_wrq_settingRow,._v_wrq_syncRow>._v_wrq_toggleRow{border-bottom:0;padding-bottom:6px}._v_wrq_rows>._v_wrq_syncRow:not(:last-child){border-bottom:.5px solid var(--dsw-alias-border-l2)}._v_wrq_syncState{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:flex}._v_wrq_syncState>span{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncSuccess{color:var(--dsw-alias-state-success-primary)}._v_wrq_syncPanel{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);flex-direction:column;min-width:0;padding:2px 16px;display:flex}._v_wrq_syncPanel>._v_wrq_settingRow{padding:12px 0}._v_wrq_syncPanel>p{overflow-wrap:anywhere;margin:12px 0;font-size:12px;line-height:18px}._v_wrq_syncPanel>:last-child,._v_wrq_syncPanel>:last-child>._v_wrq_settingRow:last-child{border-bottom:0}._v_wrq_syncFeedbackLine{padding-top:2px;display:block}._v_wrq_syncWarning{border-radius:var(--dsw-radius-md);min-width:0;color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-warn-tertiary,var(--dsw-alias-bg-module-platform));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:10px 0 2px;padding:6px 6px 6px 12px;font-size:12px;line-height:18px;display:flex}._v_wrq_syncWarning>span{overflow-wrap:anywhere;min-width:0}._v_wrq_syncConnect{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:4px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_syncConnect>._v_wrq_settingRow{border-bottom:0;padding-bottom:4px}._v_wrq_syncRepositoryState{flex-direction:column;gap:2px;min-width:0;display:flex}._v_wrq_syncRepositoryName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._v_wrq_syncStateLine{flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;display:inline-flex}._v_wrq_syncStateLine[data-tone=error]>span{color:var(--dsw-alias-state-error-primary)}._v_wrq_syncInlineAction{appearance:none;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--dsw-alias-border-l4);text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:12px;line-height:18px}._v_wrq_syncInlineAction:hover:not(:disabled){color:var(--dsw-alias-label-primary);text-decoration-color:currentColor}._v_wrq_syncInlineAction:disabled{cursor:default;opacity:.5}._v_wrq_syncInlineAction:focus-visible{border-radius:var(--dsw-radius-xs);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_syncFieldLabel{min-width:0;color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:20px;display:flex}._v_wrq_syncFieldLabel>label{font:inherit}._v_wrq_fieldGrid>._v_wrq_syncFieldBox{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_fieldGrid label small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;font-weight:400;line-height:18px}._v_wrq_fieldGrid label small._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_editor ._v_wrq_error,._v_wrq_editor ._v_wrq_syncSuccess{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncAccount{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_syncAccount>span{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:13px;line-height:20px}._v_wrq_syncDevice{gap:8px;min-width:0;display:grid}._v_wrq_syncCode{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_syncCode>code{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font-family:var(--ds-font-family-code,ui-monospace, monospace);letter-spacing:.08em;user-select:all;padding:4px 12px;font-size:16px;font-weight:500;line-height:24px}._v_wrq_syncPicker{gap:8px;min-width:0;display:grid}._v_wrq_syncRepositoryList{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);flex-direction:column;min-width:0;max-height:264px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}._v_wrq_syncRepositoryList>li{border-bottom:.5px solid var(--dsw-alias-border-l2);min-width:0}._v_wrq_syncRepositoryList>li:last-child{border-bottom:0}._v_wrq_syncRepositoryList>li._v_wrq_editorNote{padding:10px 12px}._v_wrq_syncRepositoryOption{appearance:none;width:100%;min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 12px;font-size:13px;line-height:20px;display:flex}._v_wrq_syncRepositoryOption>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._v_wrq_syncRepositoryOption:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_syncRepositoryOption:disabled{cursor:default;opacity:.5}._v_wrq_syncRepositoryOption[aria-current=true]>span{font-weight:500}._v_wrq_syncRepositoryOption:focus-visible{box-shadow:inset 0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_syncAdvanced{flex-direction:column;gap:4px;min-width:0;padding-bottom:12px;display:flex}._v_wrq_syncDisclosure{appearance:none;width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px 0 8px;display:flex}._v_wrq_syncDisclosure>span{color:var(--dsw-alias-label-primary);flex:none;font-size:14px;line-height:22px}._v_wrq_syncDisclosure>small{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:18px;overflow:hidden}._v_wrq_syncDisclosure[aria-expanded=true] ._v_wrq_providerChevron{transform:rotate(180deg)}._v_wrq_syncDisclosure:focus-visible{border-radius:var(--dsw-radius-md);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_editor>._v_wrq_inlineChoices{align-self:flex-start}._v_wrq_syncChoice{justify-items:start;gap:8px;min-width:0;display:grid}._v_wrq_syncChoice>._v_wrq_fieldGrid{width:100%}._v_wrq_syncDialogBody{gap:12px;min-width:0;display:grid}._v_wrq_syncDialogNote{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncDialogBody>._v_wrq_error,._v_wrq_syncDialogBody>._v_wrq_syncSuccess{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncHistoryList{margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncHistoryEntry{border-bottom:.5px solid var(--dsw-alias-border-l2);gap:2px;min-width:0;padding:10px 0;display:grid}._v_wrq_syncHistoryEntry:first-child{padding-top:0}._v_wrq_syncHistoryEntry:last-child{border-bottom:0}._v_wrq_syncHistoryHead{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;display:flex}._v_wrq_syncHistoryHead>strong{font-size:13px;font-weight:500;line-height:20px}._v_wrq_syncHistoryHead>span{min-width:0;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;flex:1;font-size:12px;line-height:18px}._v_wrq_syncHistoryEntry>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncHistoryEntry>._v_wrq_syncHistoryMessage{color:var(--dsw-alias-label-secondary)}._v_wrq_syncCompareList{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-md);margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncCompareList>li{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;min-width:0;padding:10px 12px;display:flex}._v_wrq_syncCompareList>li:last-child{border-bottom:0}._v_wrq_syncCompareList>li>span{font-size:13px;line-height:20px}._v_wrq_syncCompareList>li>small{color:var(--dsw-alias-label-tertiary);text-align:right;overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncCompareList>li>small[data-differs]{color:var(--dsw-alias-label-primary)}._v_wrq_syncCompareNote{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);gap:6px;min-width:0;padding:10px 12px;display:grid}._v_wrq_syncCompareNote>._v_wrq_rowActions{justify-content:flex-start;gap:4px}._v_wrq_syncConflictList{gap:6px;margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncConflict{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px;min-width:0;padding:8px 10px;display:grid}._v_wrq_syncConflict>span{overflow-wrap:anywhere;gap:2px;min-width:0;font-size:12px;line-height:18px;display:grid}._v_wrq_syncConflict>span>small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}._v_wrq_reviewList{gap:8px;display:grid}._v_wrq_reviewEntry{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}._v_wrq_reviewEntry>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewEntry>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewEntry>p{overflow-wrap:anywhere;margin:0;font-size:13px;line-height:20px}._v_wrq_reviewTitle{align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewTitle strong{overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:20px}._v_wrq_reviewOperations{gap:4px;margin:0;padding-left:18px;display:grid}._v_wrq_reviewOperations li{overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewOperations small{color:var(--dsw-alias-label-tertiary);display:block}._v_wrq_reviewOpinions{gap:4px;display:grid}._v_wrq_reviewOpinions>strong{font-size:12px;font-weight:500;line-height:18px}._v_wrq_reviewOpinions>small{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_reviewOpinions>div{overflow-wrap:anywhere;gap:6px;min-width:0;font-size:12px;line-height:18px;display:flex}._v_wrq_reviewOpinions>div strong{color:var(--dsw-alias-label-secondary);flex:none;font-weight:500}._v_wrq_reviewOpinionForm{align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewOpinionForm>input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;flex:auto;padding:0 12px;font-size:13px;line-height:20px}._v_wrq_reviewOpinionForm>input:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_reviewOpinionForm>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewGuidance{gap:4px;display:grid}._v_wrq_reviewGuidance>label{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}._v_wrq_reviewGuidance>input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;padding:0 12px;font-size:13px;line-height:20px}._v_wrq_reviewGuidance>input:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_reviewGuidance>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewGuidance>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewSelection{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}._v_wrq_reviewSelection>small,._v_wrq_reviewSelected{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_reviewOperations>li{gap:2px;display:grid}._v_wrq_reviewOperations>li>label{cursor:pointer;align-items:flex-start;gap:6px;min-width:0;display:flex}._v_wrq_reviewOperations>li>label>input{flex:none;margin:3px 0 0}._v_wrq_reviewOperations>li>label>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewOperations>li[data-applied=true]{opacity:.55}._v_wrq_selector:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}@media (width<=620px){._v_wrq_page{gap:28px}._v_wrq_rowActions{width:100%}._v_wrq_rowActions button{flex:1}._v_wrq_importBar{grid-template-columns:minmax(0,1fr) auto}._v_wrq_importBar>button:last-child{grid-column:1/-1}._v_wrq_reviewOpinionForm{flex-wrap:wrap}._v_wrq_reviewOpinionForm>input{flex:100%}._v_wrq_inlineChoices{width:100%}._v_wrq_inlineChoices label{flex:1}._v_wrq_inlineChoices span{justify-content:center;width:100%}._v_wrq_providerRowHeader{align-items:flex-start;gap:8px}._v_wrq_providerEnableControl{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:132px}._v_wrq_providerState{text-overflow:ellipsis;max-width:120px;overflow:hidden}._v_wrq_memoryConfigFooter{flex-direction:column;align-items:stretch}._v_wrq_memoryConfigFooter>div:last-child{width:100%}._v_wrq_memoryConfigFooter button{flex:1}}@media (prefers-reduced-motion:reduce){._v_wrq_providerChevron,._v_wrq_advanced>summary>svg{transition:none}._v_wrq_miniSpinner{animation:none}}";
681
+ const css$13 = "._v_wrq_page{box-sizing:border-box;width:100%;min-width:0;color:var(--dsw-alias-label-primary);flex-direction:column;gap:32px;font-family:inherit;display:flex}._v_wrq_surface{color:var(--dsw-alias-label-primary)}:where(._v_wrq_page,._v_wrq_surface) *,:where(._v_wrq_page,._v_wrq_surface) :before,:where(._v_wrq_page,._v_wrq_surface) :after{box-sizing:border-box}:where(._v_wrq_page,._v_wrq_surface) :where(button,input,select,textarea){color:inherit;font:inherit}._v_wrq_loading{min-height:140px;color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;font-size:13px;line-height:140px}._v_wrq_section{flex-direction:column;gap:4px;min-width:0;display:flex}._v_wrq_sectionHeading{grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:12px;min-width:0;display:grid}._v_wrq_sectionHeading h2{grid-column:1;margin:0;font-size:14px;font-weight:500;line-height:20px}._v_wrq_sectionHeading p{max-width:66ch;color:var(--dsw-alias-label-tertiary);grid-column:1;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_sectionHeading ._v_wrq_miniSpinner{grid-area:1/2}._v_wrq_sectionHeading>._v_wrq_boardLinks{grid-column:1;padding-top:6px}._v_wrq_componentListNote{max-width:72ch;color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_appliesNow{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);white-space:nowrap;grid-area:1/2;align-self:center;padding:1px 6px;font-size:11px;line-height:16px}._v_wrq_rows{flex-direction:column;min-width:0;display:flex}._v_wrq_settingRow,._v_wrq_toggleRow{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;padding:14px 0;display:flex;position:relative}._v_wrq_rows>:last-child,._v_wrq_rows>._v_wrq_packRow:last-child>._v_wrq_settingRow{border-bottom:0}._v_wrq_rows>._v_wrq_packRow:last-child{padding-bottom:0}._v_wrq_settingRow[data-stacked]{flex-direction:column;align-items:stretch}._v_wrq_settingCopy{flex-direction:column;flex:1 1 0;gap:2px;min-width:min(240px,100%);display:flex}._v_wrq_settingCopy strong,._v_wrq_settingCopy label{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}._v_wrq_settingCopy small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_settingCopy code{font-family:var(--ds-font-family-code,ui-monospace, monospace)}._v_wrq_settingControl{flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_settingRow[data-stacked] ._v_wrq_settingControl{flex:auto;justify-content:stretch}._v_wrq_switch{flex:none}._v_wrq_rowNote{min-width:0;color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:4px 8px;padding-top:4px;font-size:12px;line-height:18px;display:flex}._v_wrq_groupCallout{margin:8px 0 4px}._v_wrq_boardSection{container-type:inline-size}._v_wrq_board{flex-direction:column;min-width:0;margin-top:10px;display:flex}._v_wrq_boardProblem{margin:0 0 4px}._v_wrq_boardLoading{min-height:40px;color:var(--dsw-alias-label-secondary);align-items:center;gap:8px;margin:0;font-size:13px;line-height:20px;display:flex}._v_wrq_boardGroup{flex-direction:column;min-width:0;padding-top:14px;display:flex}._v_wrq_boardGroupHead{justify-content:space-between;align-items:baseline;gap:8px;min-width:0;display:flex}._v_wrq_boardGroupHead h3{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:18px}._v_wrq_boardGroupHead span{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-size:12px;line-height:18px}._v_wrq_pageLink{appearance:none;border-radius:var(--dsw-radius-sm);max-width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;display:inline-flex}._v_wrq_pageLink>span{overflow-wrap:anywhere;min-width:0}._v_wrq_pageLink:hover>span{text-underline-offset:3px;text-decoration:underline}._v_wrq_settingCopy ._v_wrq_pageLink{width:fit-content;color:var(--dsw-alias-label-primary);font-size:14px;line-height:22px}._v_wrq_boardIconButton{border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;padding:0;display:inline-grid}._v_wrq_boardIconButton:hover{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_boardLinks{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;padding-top:4px;display:flex}._v_wrq_boardLink{appearance:none;border:.5px solid var(--dsw-alias-border-l3);max-width:100%;color:var(--dsw-alias-label-tertiary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:0 8px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s;display:inline-flex}._v_wrq_boardLink[data-on]{color:var(--dsw-alias-label-secondary)}._v_wrq_boardLink:hover{border-color:var(--dsw-alias-border-l4);color:var(--dsw-alias-label-primary)}._v_wrq_boardLink>svg{flex:none}._v_wrq_boardLinksLabel{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_pageLink:focus-visible,._v_wrq_boardIconButton:focus-visible,._v_wrq_boardLink:focus-visible,._v_wrq_detailsBack:focus-visible,._v_wrq_boardSearch:focus-within{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_boardSearch{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);min-width:0;color:var(--dsw-alias-label-tertiary);background:var(--dsw-alias-bg-base);align-items:center;gap:8px;margin:12px 0 0;padding:0 10px;display:flex}._v_wrq_boardSearch input{min-width:0;height:32px;color:var(--dsw-alias-label-primary);font:inherit;background:0 0;border:0;outline:none;flex:1;font-size:13px}._v_wrq_detailsDialog{width:min(560px,100%);max-height:100%}._v_wrq_detailsScroll{overscroll-behavior:contain;min-height:0;overflow-y:auto}._v_wrq_detailsBody{flex-direction:column;gap:16px;min-width:0;display:flex}._v_wrq_detailsHead{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_detailsHeadLine{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}._v_wrq_detailsPackage{min-width:0;color:var(--dsw-alias-label-tertiary);font-family:var(--ds-font-family-code,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:16px;overflow:hidden}._v_wrq_detailsControl{align-items:center;margin-left:auto;display:flex}._v_wrq_detailsSection{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:8px;min-width:0;padding-top:14px;display:flex}._v_wrq_detailsSection>h3{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:18px}._v_wrq_detailsRelations{grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;min-width:0;margin:0;font-size:13px;line-height:20px;display:grid}._v_wrq_detailsRelations>div{display:contents}._v_wrq_detailsRelations dt{color:var(--dsw-alias-label-secondary)}._v_wrq_detailsRelations dd{min-width:0;color:var(--dsw-alias-label-primary);flex-wrap:wrap;gap:4px 12px;margin:0;display:flex}._v_wrq_detailsName{appearance:none;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}._v_wrq_detailsName:hover>span{text-underline-offset:3px;text-decoration:underline}._v_wrq_detailsBack{appearance:none;border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:2px;margin:-4px 0 -6px -4px;padding:2px 4px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_detailsBack:hover{color:var(--dsw-alias-label-primary)}._v_wrq_detailsMissing{color:var(--dsw-alias-label-secondary)}._v_wrq_detailsEffect{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}._v_wrq_detailsBody ._v_wrq_optionsPanel{background:0 0;border-radius:0;margin:0;padding:0}._v_wrq_componentRowPage{flex-direction:column;gap:16px;min-width:0;display:flex}._v_wrq_detailsContributed{border-top:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:16px;min-width:0;padding-top:14px;display:flex}._v_wrq_panelSection{flex-direction:column;gap:8px;min-width:0;display:flex}._v_wrq_panelHeading{grid-template-columns:minmax(0,1fr) auto;column-gap:12px;min-width:0;display:grid}._v_wrq_panelHeading h3{color:var(--dsw-alias-label-primary);margin:0;font-size:13px;font-weight:500;line-height:20px}._v_wrq_panelHeading p{color:var(--dsw-alias-label-tertiary);grid-column:1;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_panelHeading ._v_wrq_miniSpinner{grid-area:1/2}._v_wrq_panelNote{color:var(--dsw-alias-label-secondary);margin:0;font-size:12px;line-height:18px}._v_wrq_panelActions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;min-width:0;padding-top:8px;display:flex}._v_wrq_panelActions>span{min-width:0;color:var(--dsw-alias-label-secondary);flex:1;font-size:12px;line-height:18px}._v_wrq_panelActions>span._v_wrq_panelError,._v_wrq_panelError{color:var(--dsw-alias-state-error-primary)}._v_wrq_rows>._v_wrq_panelActions{border-bottom:.5px solid var(--dsw-alias-border-l2);padding:10px 0}._v_wrq_rows>._v_wrq_panelNote{padding:8px 0}._v_wrq_panelError{margin:0;font-size:12px;line-height:18px}._v_wrq_boardRow{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;min-width:0;padding:14px 0;display:flex}._v_wrq_boardRowLine{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;display:flex}._v_wrq_boardGroup>._v_wrq_boardRow:last-child,._v_wrq_boardOthersList>._v_wrq_boardRow:last-child{border-bottom:0;padding-bottom:4px}._v_wrq_boardMain{padding-top:12px}._v_wrq_boardEmpty{color:var(--dsw-alias-label-tertiary);margin:0;padding:12px 0 4px;font-size:12px;line-height:18px}._v_wrq_boardOthers{flex-direction:column;min-width:0;padding-top:10px;display:flex}._v_wrq_boardOthersToggle{border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;display:inline-flex}._v_wrq_boardOthersToggle:hover{color:var(--dsw-alias-label-primary)}._v_wrq_boardOthersToggle>svg{transition:transform .14s;transform:rotate(-90deg)}._v_wrq_boardOthersToggle[aria-expanded=true]>svg{transform:rotate(0)}._v_wrq_boardOthersList{flex-direction:column;min-width:0;display:flex}._v_wrq_boardFootnote{color:var(--dsw-alias-label-tertiary);margin:12px 0 0;font-size:12px;line-height:18px}._v_wrq_optionsPanel{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:14px;min-width:0;margin-top:12px;padding:14px 16px;display:flex}._v_wrq_optionField{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_optionLabel{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_optionLabel label{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}._v_wrq_optionDefault{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-tertiary);padding:0 6px;font-size:11px;line-height:16px}._v_wrq_optionReset{border-radius:var(--dsw-radius-sm);color:var(--dsw-alias-state-business-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:12px;line-height:18px}._v_wrq_optionReset:disabled{cursor:default;opacity:.5}._v_wrq_optionInput{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);width:100%;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-base);font:inherit;resize:vertical;outline:none;padding:7px 10px;font-size:13px;line-height:20px}._v_wrq_optionInput:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_optionInput[aria-invalid=true]{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_optionInput:disabled{opacity:.5}._v_wrq_optionHint{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_optionHint[data-error]{color:var(--dsw-alias-state-error-primary)}._v_wrq_optionChoices{flex-wrap:wrap;gap:6px 16px;min-width:0;display:flex}._v_wrq_optionEmpty{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_boardControl{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;align-items:center;gap:6px 12px;min-width:0;margin-left:auto;display:flex}._v_wrq_boardState{min-width:0;color:var(--dsw-alias-label-tertiary);white-space:nowrap;align-items:center;gap:6px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_boardState[data-tone=warning],._v_wrq_boardState[data-tone=error]{color:var(--dsw-alias-label-secondary)}._v_wrq_boardValue{color:var(--dsw-alias-label-secondary);font-size:13px;line-height:20px}@container (width<=420px){._v_wrq_boardMain ._v_wrq_boardControl{justify-content:stretch;width:100%}._v_wrq_boardMain ._v_wrq_boardControl>:last-child{flex:1}}@container (width<=180px){._v_wrq_boardSection ._v_wrq_sectionHeading p,._v_wrq_boardSection ._v_wrq_settingCopy small{display:none}._v_wrq_boardSection ._v_wrq_boardRow{padding:10px 0}._v_wrq_boardSection ._v_wrq_boardRowLine{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}._v_wrq_boardSection ._v_wrq_settingCopy{min-width:0}._v_wrq_boardSection ._v_wrq_settingCopy strong{overflow-wrap:anywhere}._v_wrq_boardSection ._v_wrq_boardControl{justify-self:end}}._v_wrq_placeholderRow{border-bottom:.5px solid var(--dsw-alias-border-l2);justify-content:space-between;align-items:center;gap:16px;min-height:70px;display:flex}._v_wrq_placeholderRow span{background:var(--dsw-alias-bg-module-platform);border-radius:6px;height:12px;animation:1.4s ease-in-out infinite _v_wrq_placeholder-pulse}._v_wrq_placeholderRow span:first-child{width:38%}._v_wrq_placeholderRow span:last-child{border-radius:10px;width:36px;height:20px}@keyframes _v_wrq_placeholder-pulse{50%{opacity:.45}}@media (prefers-reduced-motion:reduce){._v_wrq_boardOthersToggle>svg{transition:none}._v_wrq_placeholderRow span{animation:none}}._v_wrq_selector{appearance:none;border-radius:var(--dsw-radius-md);max-width:280px;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-module-platform);white-space:nowrap;cursor:pointer;border:0;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}._v_wrq_selector>span{text-overflow:ellipsis;min-width:0;overflow:hidden}._v_wrq_selector>svg{color:var(--dsw-alias-label-tertiary);flex:none}._v_wrq_selector:hover:not(:disabled),._v_wrq_selector[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_selector:disabled{cursor:default;opacity:.4}._v_wrq_selectMenu{min-width:220px}._v_wrq_selectOption{white-space:normal;gap:1px;min-width:0;display:grid}._v_wrq_selectOption>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_directoryInput{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font-family:var(--ds-font-family-code,ui-monospace, monospace);outline:none;padding:0 12px;font-size:12px;line-height:20px}._v_wrq_directoryInput::placeholder{color:var(--dsw-alias-label-dimmed);font-family:var(--dsw-font-family);font-size:13px}._v_wrq_directoryInput:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_directoryInput[aria-invalid=true]{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_directoryInput:disabled{cursor:default;opacity:.5}._v_wrq_rowDetail{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:10px;min-width:0;padding:0 0 14px;display:flex}._v_wrq_settingRow:has(+._v_wrq_rowDetail){border-bottom:0;padding-bottom:10px}._v_wrq_effectiveRoute{min-width:0;color:var(--dsw-alias-label-tertiary);justify-content:space-between;align-items:center;gap:12px;font-size:12px;line-height:18px;display:flex}._v_wrq_effectiveRoute code{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);min-width:0;color:var(--dsw-alias-label-secondary);font-family:var(--ds-font-family-code,ui-monospace, monospace);text-overflow:ellipsis;white-space:nowrap;padding:1px 6px;font-size:11px;line-height:16px;overflow:hidden}._v_wrq_effectiveRoute small{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}._v_wrq_routeValue{align-items:center;gap:8px;min-width:0;display:inline-flex}._v_wrq_warning{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_advanced{min-width:0;padding:12px 0 2px}._v_wrq_advanced>summary{border-radius:var(--dsw-radius-sm);width:fit-content;color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;margin-left:-4px;padding:2px 4px;font-size:12px;font-weight:500;line-height:18px;list-style:none;display:inline-flex}._v_wrq_advanced>summary::-webkit-details-marker{display:none}._v_wrq_advanced>summary>svg{transition:transform .14s}._v_wrq_advanced[open]>summary>svg{transform:rotate(180deg)}._v_wrq_advanced>summary:hover{color:var(--dsw-alias-label-primary)}._v_wrq_advanced>._v_wrq_fieldGrid{padding-top:12px}._v_wrq_miniSpinner{border:2px solid var(--dsw-alias-border-l2);border-top-color:var(--dsw-alias-label-secondary);border-radius:50%;flex:none;width:14px;height:14px;margin-top:4px;animation:.7s linear infinite _v_wrq_settings-spin}@keyframes _v_wrq_settings-spin{to{transform:rotate(360deg)}}._v_wrq_providerList{flex-direction:column;gap:8px;min-width:0;margin-top:10px;display:flex}._v_wrq_providerRow{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);background:var(--dsw-alias-settings-card-fill);overflow:hidden}._v_wrq_providerRowHeader{align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}summary._v_wrq_providerRowHeader{cursor:pointer;list-style:none}summary._v_wrq_providerRowHeader::-webkit-details-marker{display:none}._v_wrq_providerDisclosure{appearance:none;min-width:0;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;outline:none;flex:1;align-items:center;gap:8px;padding:0;display:flex}._v_wrq_providerDisclosure:disabled{cursor:default}._v_wrq_providerDisclosure:focus-visible,summary._v_wrq_providerRowHeader:focus-visible{border-radius:var(--dsw-radius-md);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}._v_wrq_providerIdentity{flex:1;align-items:center;gap:12px;min-width:0;display:flex}._v_wrq_providerIdentity>span{flex-direction:column;min-width:0;display:flex}._v_wrq_providerIdentity strong{font-size:14px;font-weight:500;line-height:22px}._v_wrq_providerIdentity small{color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:18px;overflow:hidden}._v_wrq_providerMark{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);flex:none;place-items:center;width:36px;height:36px;padding:6px;display:grid;overflow:hidden}._v_wrq_providerMark>img,._v_wrq_providerMark>svg{object-fit:contain;border-radius:4px;width:100%;height:100%;display:block}._v_wrq_providerEnableControl{flex:none;align-items:center;gap:10px;display:flex}._v_wrq_providerScopeTag{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-xs);color:var(--dsw-alias-label-secondary);flex:none;padding:1px 6px;font-size:11px;line-height:16px}._v_wrq_providerScopeTag[data-scope=workspace]{border-color:color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, transparent);color:var(--dsw-alias-state-business-primary)}._v_wrq_providerState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;flex:none;align-items:center;gap:6px;font-size:12px;line-height:18px;display:inline-flex}._v_wrq_providerState:before{content:\"\";background:var(--dsw-alias-state-idle-primary);border-radius:50%;flex:none;width:6px;height:6px}._v_wrq_providerState[data-enabled]:before{background:var(--dsw-alias-state-success-primary)}._v_wrq_providerChevron{color:var(--dsw-alias-label-tertiary);flex:none;transition:transform .14s}._v_wrq_providerDisclosure[aria-expanded=true] ._v_wrq_providerChevron,details[open]>summary ._v_wrq_providerChevron{transform:rotate(180deg)}._v_wrq_providerToggle{cursor:pointer;display:inline-flex;position:relative}._v_wrq_providerInlineBody{padding:0 14px 14px}._v_wrq_providerToggleError{color:var(--dsw-alias-state-error-primary);margin:0;padding:0 14px 12px;font-size:12px;line-height:18px}._v_wrq_providerServiceForm,._v_wrq_editor{border-radius:var(--dsw-radius-lg);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:12px;min-width:0;padding:14px 16px;display:flex}._v_wrq_providerServicePrompt,._v_wrq_editorNote{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_editorHeading h3{margin:0;font-size:14px;font-weight:500;line-height:22px}._v_wrq_editorHeading p{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:2px 0 0;font-size:12px;line-height:18px}._v_wrq_editor ._v_wrq_toggleRow{border-top:.5px solid var(--dsw-alias-border-l3);border-bottom:.5px solid var(--dsw-alias-border-l3);padding:10px 0}._v_wrq_embeddingTest{justify-content:space-between;align-items:center;gap:12px;min-width:0;display:flex}._v_wrq_embeddingTest>span{min-width:0;color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_embeddingTest>span._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_embeddingTest>button{white-space:nowrap;flex:none}._v_wrq_embeddingSpaces{flex-direction:column;gap:4px;min-width:0;display:flex}._v_wrq_embeddingSpaces>small,._v_wrq_embeddingSpaces>p{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_embeddingSpaces>ul{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._v_wrq_embeddingSpaces li{min-width:0;min-height:28px;color:var(--dsw-alias-label-secondary);flex-wrap:wrap;align-items:center;gap:0 12px;font-size:12px;line-height:20px;display:flex}._v_wrq_embeddingSpaceName{text-overflow:ellipsis;white-space:nowrap;flex:6em;min-width:0;overflow:hidden}._v_wrq_embeddingSpaceState{color:var(--dsw-alias-label-tertiary);white-space:nowrap;flex:none}._v_wrq_embeddingSpaceCount{font-variant-numeric:tabular-nums;flex:none;margin-left:auto}._v_wrq_embeddingSpaces li>button{white-space:nowrap;flex:none}._v_wrq_embeddingSpaces li[data-missing]>._v_wrq_embeddingSpaceCount{color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary))}._v_wrq_embeddingSpaces li[data-failed]>._v_wrq_embeddingSpaceCount{min-width:0;color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;flex:100%;margin-left:0}._v_wrq_embeddingFillOutcome{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_embeddingFillOutcome._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_globalLocationSetting{flex-direction:column;min-width:0;display:flex}._v_wrq_providerServiceLocation{border-bottom:.5px solid var(--dsw-alias-border-l3);padding-bottom:12px}._v_wrq_providerServiceLocation>._v_wrq_nativeLocation{padding:0 0 12px}._v_wrq_providerLocationField{padding-top:2px}._v_wrq_nativeLocation{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;min-width:0;display:flex}._v_wrq_inlineChoices{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-interactive-bg-hover);flex:none;align-items:center;gap:2px;padding:3px;display:inline-flex}._v_wrq_inlineChoices label{cursor:pointer;position:relative}._v_wrq_inlineChoices input{z-index:1;opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}._v_wrq_inlineChoices span{border-radius:var(--dsw-radius-sm);height:28px;color:var(--dsw-alias-label-secondary);white-space:nowrap;align-items:center;padding:0 12px;font-size:13px;font-weight:500;line-height:20px;display:inline-flex}._v_wrq_inlineChoices input:checked+span{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);box-shadow:var(--dsw-elevation-soft)}._v_wrq_inlineChoices input:focus-visible+span{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary))}._v_wrq_inlineChoices input:disabled+span{cursor:default;opacity:.4}._v_wrq_fieldGrid,._v_wrq_providerSettingsGrid{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px;min-width:0;display:grid}._v_wrq_providerSettingsGrid{grid-template-columns:minmax(0,1fr)}._v_wrq_fieldGrid>label,._v_wrq_providerFieldControl>label:not(._v_wrq_providerBoolean){min-width:0;color:var(--dsw-alias-label-primary);flex-direction:column;gap:6px;font-size:13px;font-weight:500;line-height:20px;display:flex}._v_wrq_fieldGrid input,._v_wrq_fieldGrid select,._v_wrq_providerFieldControl input:not([type=checkbox]),._v_wrq_providerFieldControl select{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;padding:0 12px;font-size:13px;font-weight:400;line-height:20px}._v_wrq_fieldGrid input::placeholder,._v_wrq_providerFieldControl input::placeholder{color:var(--dsw-alias-label-dimmed)}._v_wrq_fieldGrid select,._v_wrq_providerFieldControl select{appearance:none;cursor:pointer;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2381858C' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E\");background-position:right 12px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}._v_wrq_fieldGrid select:disabled,._v_wrq_providerFieldControl select:disabled{cursor:default}._v_wrq_fieldGrid input:focus-visible,._v_wrq_fieldGrid select:focus-visible,._v_wrq_providerFieldControl input:focus-visible,._v_wrq_providerFieldControl select:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_fieldGrid input[aria-invalid=true],._v_wrq_providerFieldControl input:invalid{border-color:var(--dsw-alias-state-error-primary)}._v_wrq_fieldGrid input:disabled,._v_wrq_fieldGrid select:disabled,._v_wrq_providerFieldControl input:disabled,._v_wrq_providerFieldControl select:disabled{opacity:.5}._v_wrq_providerFieldControl{flex-direction:column;justify-content:flex-end;gap:4px;min-width:0;display:flex}._v_wrq_providerBoolean{min-height:34px;color:var(--dsw-alias-label-primary);align-items:center;gap:8px;font-size:13px;display:flex}._v_wrq_providerBoolean input{width:16px;height:16px;accent-color:var(--dsw-alias-brand-primary);margin:0}._v_wrq_providerSecretInput{min-width:0;position:relative}._v_wrq_providerSecretInput>input{padding-right:40px}._v_wrq_providerSecretVisibility{appearance:none;border-radius:var(--dsw-radius-sm);width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:3px}._v_wrq_providerSecretVisibility:hover:not(:disabled){color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_providerSecretVisibility:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_providerSecretVisibility:disabled{cursor:default;opacity:.35}._v_wrq_providerSecretVisibility svg{width:16px;height:16px}._v_wrq_memoryConfigFooter{justify-content:space-between;align-items:center;gap:10px;min-height:36px;display:flex}._v_wrq_memoryConfigFooter>div{align-items:center;gap:6px;display:flex}._v_wrq_providerServiceFooter{align-items:flex-end;min-height:0}._v_wrq_configFeedback{flex:1;min-width:0;font-size:12px;line-height:18px}._v_wrq_scopeChanging,._v_wrq_providerTarget{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;line-height:18px}._v_wrq_scopeChanging{border-radius:var(--dsw-radius-md);color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-warn-tertiary,var(--dsw-alias-bg-module-platform));padding:8px 12px}._v_wrq_providerLoadError{justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}._v_wrq_visuallyHidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}._v_wrq_location{align-items:baseline;gap:6px;min-width:0;display:flex}._v_wrq_locationRow{border-bottom:.5px solid var(--dsw-alias-border-l2);gap:10px;padding:14px 0}._v_wrq_rowActions{flex:none;align-items:center;gap:8px;display:flex}._v_wrq_packRow{flex-direction:column;gap:8px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_packRow>._v_wrq_settingRow{border-bottom:0;padding-bottom:6px}._v_wrq_packRow:has(>._v_wrq_packFeedback:empty):not(:has(>._v_wrq_importBar))>._v_wrq_settingRow{padding-bottom:0}._v_wrq_rows>._v_wrq_packRow:not(:last-child){border-bottom:.5px solid var(--dsw-alias-border-l2)}._v_wrq_importBar{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:grid}._v_wrq_importBar>div{min-width:0;display:grid}._v_wrq_importBar strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}._v_wrq_importBar small{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_packFeedback{gap:4px;display:grid}._v_wrq_packFeedback:empty{display:none}._v_wrq_packFeedback p{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_readOnlyNotice{color:var(--dsw-alias-label-tertiary);margin:0 0 -20px;font-size:12px;line-height:18px}._v_wrq_packSuccess{color:var(--dsw-alias-state-success-primary)}._v_wrq_syncRow{flex-direction:column;gap:8px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_syncRow>._v_wrq_settingRow,._v_wrq_syncRow>._v_wrq_toggleRow{border-bottom:0;padding-bottom:6px}._v_wrq_rows>._v_wrq_syncRow:not(:last-child){border-bottom:.5px solid var(--dsw-alias-border-l2)}._v_wrq_syncState{flex-wrap:wrap;align-items:center;gap:4px 10px;min-width:0;display:flex}._v_wrq_syncState>span{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncSuccess{color:var(--dsw-alias-state-success-primary)}._v_wrq_syncPanel{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-xl);flex-direction:column;min-width:0;padding:2px 16px;display:flex}._v_wrq_syncPanel>._v_wrq_settingRow{padding:12px 0}._v_wrq_syncPanel>p{overflow-wrap:anywhere;margin:12px 0;font-size:12px;line-height:18px}._v_wrq_syncPanel>:last-child,._v_wrq_syncPanel>:last-child>._v_wrq_settingRow:last-child{border-bottom:0}._v_wrq_syncFeedbackLine{padding-top:2px;display:block}._v_wrq_syncWarning{border-radius:var(--dsw-radius-md);min-width:0;color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary));background:var(--dsw-alias-state-warn-tertiary,var(--dsw-alias-bg-module-platform));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin:10px 0 2px;padding:6px 6px 6px 12px;font-size:12px;line-height:18px;display:flex}._v_wrq_syncWarning>span{overflow-wrap:anywhere;min-width:0}._v_wrq_syncConnect{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-direction:column;gap:4px;min-width:0;padding-bottom:14px;display:flex}._v_wrq_syncConnect>._v_wrq_settingRow{border-bottom:0;padding-bottom:4px}._v_wrq_syncRepositoryState{flex-direction:column;gap:2px;min-width:0;display:flex}._v_wrq_syncRepositoryName{min-width:0;color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._v_wrq_syncStateLine{flex-wrap:wrap;align-items:center;gap:4px 6px;min-width:0;display:inline-flex}._v_wrq_syncStateLine[data-tone=error]>span{color:var(--dsw-alias-state-error-primary)}._v_wrq_syncInlineAction{appearance:none;color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:var(--dsw-alias-border-l4);text-underline-offset:2px;background:0 0;border:0;padding:0;font-size:12px;line-height:18px}._v_wrq_syncInlineAction:hover:not(:disabled){color:var(--dsw-alias-label-primary);text-decoration-color:currentColor}._v_wrq_syncInlineAction:disabled{cursor:default;opacity:.5}._v_wrq_syncInlineAction:focus-visible{border-radius:var(--dsw-radius-xs);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_syncFieldLabel{min-width:0;color:var(--dsw-alias-label-primary);justify-content:space-between;align-items:center;gap:8px;font-size:13px;font-weight:500;line-height:20px;display:flex}._v_wrq_syncFieldLabel>label{font:inherit}._v_wrq_fieldGrid>._v_wrq_syncFieldBox{flex-direction:column;gap:6px;min-width:0;display:flex}._v_wrq_fieldGrid label small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;font-weight:400;line-height:18px}._v_wrq_fieldGrid label small._v_wrq_error{color:var(--dsw-alias-state-error-primary)}._v_wrq_editor ._v_wrq_error,._v_wrq_editor ._v_wrq_syncSuccess{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncAccount{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_syncAccount>span{color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;font-size:13px;line-height:20px}._v_wrq_syncDevice{gap:8px;min-width:0;display:grid}._v_wrq_syncCode{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_syncCode>code{border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);font-family:var(--ds-font-family-code,ui-monospace, monospace);letter-spacing:.08em;user-select:all;padding:4px 12px;font-size:16px;font-weight:500;line-height:24px}._v_wrq_syncPicker{gap:8px;min-width:0;display:grid}._v_wrq_syncRepositoryList{border:.5px solid var(--dsw-alias-border-l3);border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-layer-1);flex-direction:column;min-width:0;max-height:264px;margin:0;padding:0;list-style:none;display:flex;overflow:auto}._v_wrq_syncRepositoryList>li{border-bottom:.5px solid var(--dsw-alias-border-l2);min-width:0}._v_wrq_syncRepositoryList>li:last-child{border-bottom:0}._v_wrq_syncRepositoryList>li._v_wrq_editorNote{padding:10px 12px}._v_wrq_syncRepositoryOption{appearance:none;width:100%;min-width:0;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:8px 12px;font-size:13px;line-height:20px;display:flex}._v_wrq_syncRepositoryOption>span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._v_wrq_syncRepositoryOption:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}._v_wrq_syncRepositoryOption:disabled{cursor:default;opacity:.5}._v_wrq_syncRepositoryOption[aria-current=true]>span{font-weight:500}._v_wrq_syncRepositoryOption:focus-visible{box-shadow:inset 0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_syncAdvanced{flex-direction:column;gap:4px;min-width:0;padding-bottom:12px;display:flex}._v_wrq_syncDisclosure{appearance:none;width:100%;min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:12px 0 8px;display:flex}._v_wrq_syncDisclosure>span{color:var(--dsw-alias-label-primary);flex:none;font-size:14px;line-height:22px}._v_wrq_syncDisclosure>small{min-width:0;color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;line-height:18px;overflow:hidden}._v_wrq_syncDisclosure[aria-expanded=true] ._v_wrq_providerChevron{transform:rotate(180deg)}._v_wrq_syncDisclosure:focus-visible{border-radius:var(--dsw-radius-md);box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}._v_wrq_editor>._v_wrq_inlineChoices{align-self:flex-start}._v_wrq_syncChoice{justify-items:start;gap:8px;min-width:0;display:grid}._v_wrq_syncChoice>._v_wrq_fieldGrid{width:100%}._v_wrq_syncDialogBody{gap:12px;min-width:0;display:grid}._v_wrq_syncDialogNote{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncDialogBody>._v_wrq_error,._v_wrq_syncDialogBody>._v_wrq_syncSuccess{overflow-wrap:anywhere;margin:0;font-size:12px;line-height:18px}._v_wrq_syncHistoryList{margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncHistoryEntry{border-bottom:.5px solid var(--dsw-alias-border-l2);gap:2px;min-width:0;padding:10px 0;display:grid}._v_wrq_syncHistoryEntry:first-child{padding-top:0}._v_wrq_syncHistoryEntry:last-child{border-bottom:0}._v_wrq_syncHistoryHead{flex-wrap:wrap;align-items:center;gap:4px 8px;min-width:0;display:flex}._v_wrq_syncHistoryHead>strong{font-size:13px;font-weight:500;line-height:20px}._v_wrq_syncHistoryHead>span{min-width:0;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;flex:1;font-size:12px;line-height:18px}._v_wrq_syncHistoryEntry>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncHistoryEntry>._v_wrq_syncHistoryMessage{color:var(--dsw-alias-label-secondary)}._v_wrq_syncCompareList{border:.5px solid var(--dsw-alias-settings-card-stroke);border-radius:var(--dsw-radius-md);margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncCompareList>li{border-bottom:.5px solid var(--dsw-alias-border-l2);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;min-width:0;padding:10px 12px;display:flex}._v_wrq_syncCompareList>li:last-child{border-bottom:0}._v_wrq_syncCompareList>li>span{font-size:13px;line-height:20px}._v_wrq_syncCompareList>li>small{color:var(--dsw-alias-label-tertiary);text-align:right;overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_syncCompareList>li>small[data-differs]{color:var(--dsw-alias-label-primary)}._v_wrq_syncCompareNote{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);gap:6px;min-width:0;padding:10px 12px;display:grid}._v_wrq_syncCompareNote>._v_wrq_rowActions{justify-content:flex-start;gap:4px}._v_wrq_syncConflictList{gap:6px;margin:0;padding:0;list-style:none;display:grid}._v_wrq_syncConflict{border-radius:var(--dsw-radius-sm);background:var(--dsw-alias-bg-layer-1);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:8px;min-width:0;padding:8px 10px;display:grid}._v_wrq_syncConflict>span{overflow-wrap:anywhere;gap:2px;min-width:0;font-size:12px;line-height:18px;display:grid}._v_wrq_syncConflict>span>small{color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}._v_wrq_reviewList{gap:8px;display:grid}._v_wrq_reviewEntry{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);flex-direction:column;gap:6px;min-width:0;padding:10px 12px;display:flex}._v_wrq_reviewEntry>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewEntry>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewEntry>p{overflow-wrap:anywhere;margin:0;font-size:13px;line-height:20px}._v_wrq_reviewTitle{align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewTitle strong{overflow-wrap:anywhere;font-size:13px;font-weight:500;line-height:20px}._v_wrq_reviewOperations{gap:4px;margin:0;padding-left:18px;display:grid}._v_wrq_reviewOperations li{overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewOperations small{color:var(--dsw-alias-label-tertiary);display:block}._v_wrq_reviewOpinions{gap:4px;display:grid}._v_wrq_reviewOpinions>strong{font-size:12px;font-weight:500;line-height:18px}._v_wrq_reviewOpinions>small{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_reviewOpinions>div{overflow-wrap:anywhere;gap:6px;min-width:0;font-size:12px;line-height:18px;display:flex}._v_wrq_reviewOpinions>div strong{color:var(--dsw-alias-label-secondary);flex:none;font-weight:500}._v_wrq_reviewOpinionForm{align-items:center;gap:8px;min-width:0;display:flex}._v_wrq_reviewOpinionForm>input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);min-width:0;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;flex:auto;padding:0 12px;font-size:13px;line-height:20px}._v_wrq_reviewOpinionForm>input:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_reviewOpinionForm>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewGuidance{gap:4px;display:grid}._v_wrq_reviewGuidance>label{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}._v_wrq_reviewGuidance>input{box-sizing:border-box;border:.5px solid var(--dsw-alias-border-l4);border-radius:var(--dsw-radius-md);width:100%;height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);font:inherit;outline:none;padding:0 12px;font-size:13px;line-height:20px}._v_wrq_reviewGuidance>input:focus-visible{border-color:var(--dsw-alias-state-business-primary)}._v_wrq_reviewGuidance>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewGuidance>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}._v_wrq_reviewSelection{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;min-width:0;display:flex}._v_wrq_reviewSelection>small,._v_wrq_reviewSelected{color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:18px}._v_wrq_reviewOperations>li{gap:2px;display:grid}._v_wrq_reviewOperations>li>label{cursor:pointer;align-items:flex-start;gap:6px;min-width:0;display:flex}._v_wrq_reviewOperations>li>label>input{flex:none;margin:3px 0 0}._v_wrq_reviewOperations>li>label>input:disabled{cursor:default;opacity:.5}._v_wrq_reviewOperations>li[data-applied=true]{opacity:.55}._v_wrq_selector:focus-visible{box-shadow:0 0 0 2px var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline:none}@media (width<=620px){._v_wrq_page{gap:28px}._v_wrq_rowActions{width:100%}._v_wrq_rowActions button{flex:1}._v_wrq_importBar{grid-template-columns:minmax(0,1fr) auto}._v_wrq_importBar>button:last-child{grid-column:1/-1}._v_wrq_reviewOpinionForm{flex-wrap:wrap}._v_wrq_reviewOpinionForm>input{flex:100%}._v_wrq_inlineChoices{width:100%}._v_wrq_inlineChoices label{flex:1}._v_wrq_inlineChoices span{justify-content:center;width:100%}._v_wrq_providerRowHeader{align-items:flex-start;gap:8px}._v_wrq_providerEnableControl{flex-wrap:wrap;justify-content:flex-end;gap:6px;max-width:132px}._v_wrq_providerState{text-overflow:ellipsis;max-width:120px;overflow:hidden}._v_wrq_memoryConfigFooter{flex-direction:column;align-items:stretch}._v_wrq_memoryConfigFooter>div:last-child{width:100%}._v_wrq_memoryConfigFooter button{flex:1}}@media (prefers-reduced-motion:reduce){._v_wrq_providerChevron,._v_wrq_advanced>summary>svg{transition:none}._v_wrq_miniSpinner{animation:none}}";
677
682
  const tagId$13 = "dsh-mnemon/src/client/MnemonSettingsCard.module.css";
678
683
  if (typeof document !== "undefined") {
679
684
  let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$13) + "]");
@@ -704,7 +709,6 @@ window.__ModuleLoader__.load({
704
709
  "boardOthersToggle": "_v_wrq_boardOthersToggle",
705
710
  "boardProblem": "_v_wrq_boardProblem",
706
711
  "boardRow": "_v_wrq_boardRow",
707
- "boardRowCopy": "_v_wrq_boardRowCopy",
708
712
  "boardRowLine": "_v_wrq_boardRowLine",
709
713
  "boardSearch": "_v_wrq_boardSearch",
710
714
  "boardSection": "_v_wrq_boardSection",
@@ -732,6 +736,11 @@ window.__ModuleLoader__.load({
732
736
  "editorHeading": "_v_wrq_editorHeading",
733
737
  "editorNote": "_v_wrq_editorNote",
734
738
  "effectiveRoute": "_v_wrq_effectiveRoute",
739
+ "embeddingFillOutcome": "_v_wrq_embeddingFillOutcome",
740
+ "embeddingSpaceCount": "_v_wrq_embeddingSpaceCount",
741
+ "embeddingSpaceName": "_v_wrq_embeddingSpaceName",
742
+ "embeddingSpaceState": "_v_wrq_embeddingSpaceState",
743
+ "embeddingSpaces": "_v_wrq_embeddingSpaces",
735
744
  "embeddingTest": "_v_wrq_embeddingTest",
736
745
  "error": "_v_wrq_error",
737
746
  "fieldGrid": "_v_wrq_fieldGrid",
@@ -801,6 +810,7 @@ window.__ModuleLoader__.load({
801
810
  "reviewSelected": "_v_wrq_reviewSelected",
802
811
  "reviewSelection": "_v_wrq_reviewSelection",
803
812
  "reviewTitle": "_v_wrq_reviewTitle",
813
+ "routeValue": "_v_wrq_routeValue",
804
814
  "rowActions": "_v_wrq_rowActions",
805
815
  "rowDetail": "_v_wrq_rowDetail",
806
816
  "rowNote": "_v_wrq_rowNote",
@@ -1925,6 +1935,7 @@ window.__ModuleLoader__.load({
1925
1935
  "receipt.failed": "失败",
1926
1936
  "receipt.view": "在记忆空间中查看",
1927
1937
  "receipt.viewRuntime": "在运行时记忆中查看",
1938
+ "receipt.unembedded": "未生成向量:嵌入没有成功,这条记忆暂时不参与语义匹配。嵌入服务可用后,可在 Mnemon Native 嵌入设置的「测试状态」中补齐。",
1928
1939
  "taskAgent.ready": "任务 Agent 就绪",
1929
1940
  "taskAgent.unavailable": "任务 Agent 不可用",
1930
1941
  "saveAction.button": "存入记忆",
@@ -1990,12 +2001,12 @@ window.__ModuleLoader__.load({
1990
2001
  "status.title": "系统状态",
1991
2002
  "status.description": "dsh-mnemon、记忆 Provider 与各层存储的运行状态。",
1992
2003
  "status.nominal": "系统正常",
1993
- "status.reviewFailed": "后台审查失败",
2004
+ "status.reviewFailed": "空闲审查失败",
1994
2005
  "status.reviewFailedDetail": "本轮记忆检查未完成,不会自动重放。后续审查受冷却时间和会话次数限制。",
1995
2006
  "status.reviewPartial": "已有写入提交;请按下列回执核对,未回滚。",
1996
- "status.reviewTeamPaused": "Agent Teams 工具在役时按兼容设置暂停空闲审查。DSH 与官方 Teams 0.1.7-rc.2 可在“插件 → 可组合记忆”页面的空闲审查中选择“受限子代理审查”。召回与主动写入设置不变。",
2007
+ "status.reviewTeamPaused": "Agent Teams 工具在役时按兼容设置暂停空闲审查。如需继续审查,可在“插件 → 可组合记忆”页面的空闲审查中选择“受限任务 Agent 审查”。召回与主动写入设置不变。",
1997
2008
  "status.reviewRun": "审查运行:{id}",
1998
- "status.reviewContextWindow": "请切换为有界检查点(spawn),或选择上下文窗口足以覆盖父会话的任务模型。",
2009
+ "status.reviewContextWindow": "请切换为有界检查点(spawn),或选择上下文窗口足以覆盖父会话的任务 Agent 模型。",
1999
2010
  "config.reviewTitle": "空闲审查",
2000
2011
  "config.reviewDescription": "对话空闲时整理记忆;关闭不影响召回与写入",
2001
2012
  "config.reviewEnabled": "启用空闲审查",
@@ -2004,16 +2015,16 @@ window.__ModuleLoader__.load({
2004
2015
  "config.reviewLimits": "审查参数",
2005
2016
  "config.reviewProvider": "审查方式",
2006
2017
  "config.reviewSpawn": "有界检查点(spawn)",
2007
- "config.reviewSpawnHint": "子代理只读取有界的检查点",
2018
+ "config.reviewSpawnHint": "任务 Agent 只读取有界的检查点",
2008
2019
  "config.reviewFork": "完整父上下文(fork)",
2009
- "config.reviewForkHint": "子代理带着完整的父上下文",
2020
+ "config.reviewForkHint": "任务 Agent 带着完整的父上下文",
2010
2021
  "config.reviewFallback": "fork 不可用时(仅启动前)",
2011
2022
  "config.reviewSkip": "跳过本次审查",
2012
2023
  "config.reviewAgentTeams": "Agent Teams 兼容模式",
2013
- "config.reviewTeamPause": "暂停审查(兼容旧版)",
2024
+ "config.reviewTeamPause": "暂停审查",
2014
2025
  "config.reviewTeamPauseHint": "Agent Teams 运行时跳过审查",
2015
- "config.reviewTeamScoped": "受限子代理审查",
2016
- "config.reviewTeamScopedHint": "在受限子代理中审查,不用 Teams 工具",
2026
+ "config.reviewTeamScoped": "受限任务 Agent 审查",
2027
+ "config.reviewTeamScopedHint": "由受限的任务 Agent 审查,不用 Teams 工具",
2017
2028
  "config.review.minIntervalMs": "最小审查间隔(秒)",
2018
2029
  "config.review.maxPerSession": "每会话最多尝试次数",
2019
2030
  "config.review.maxContextChars": "spawn 检查点字符预算",
@@ -2318,11 +2329,6 @@ window.__ModuleLoader__.load({
2318
2329
  "feedback.optionsSaved": "已更新“{component}”的选项",
2319
2330
  "feedback.externalOptions": "“{component}”的选项已更改",
2320
2331
  "feedback.externalSeveral": "{count} 个组件已变化",
2321
- "feedback.pendingMain": "正在切换到“{strategy}”…",
2322
- "feedback.pendingOn": "正在开启“{component}”…",
2323
- "feedback.pendingOff": "正在关闭“{component}”…",
2324
- "feedback.pendingOptions": "正在应用“{component}”的选项…",
2325
- "feedback.pendingSeveral": "正在应用修改…",
2326
2332
  "feedback.undo": "撤销",
2327
2333
  "feedback.undone": "已撤销,恢复为之前的设置",
2328
2334
  "feedback.show": "查看",
@@ -2365,7 +2371,7 @@ window.__ModuleLoader__.load({
2365
2371
  "config.embeddingModelInvalid": "嵌入模型必须包含 1–200 个字符,且不能包含控制字符。",
2366
2372
  "config.embeddingSecurity": "Mnemon 会把记忆与查询正文发送到该 Endpoint;API Key 与其他设置一样保存在 DSH 设置文件中。远程 HTTP 会明文传输,请仅使用受信任的本地地址,或为远程服务配置 HTTPS。",
2367
2373
  "config.embeddingTest": "测试状态",
2368
- "config.embeddingNotTested": "尚未检查当前 Mnemon Store 的连接与嵌入覆盖率。",
2374
+ "config.embeddingNotTested": "尚未检查嵌入服务的连接与各 Mnemon Native 空间的覆盖率。",
2369
2375
  "config.embeddingTesting": "正在通过 Mnemon 检查嵌入服务与覆盖率…",
2370
2376
  "config.embeddingSaveBeforeTest": "请先保存嵌入配置,再测试实际运行值。",
2371
2377
  "config.embeddingTestUnavailable": "当前 DSH Host 不提供嵌入状态检查。",
@@ -2375,6 +2381,22 @@ window.__ModuleLoader__.load({
2375
2381
  "config.embeddingStatusUnavailable": "嵌入服务不可达 · {model} · 已嵌入 {embedded}/{total}({coverage})",
2376
2382
  "config.embeddingStatusUnavailableWithProtocol": "嵌入服务不可达 · {model} · 协议 {protocol} · 已嵌入 {embedded}/{total}({coverage})",
2377
2383
  "config.embeddingStatusFailed": "嵌入状态检查失败:{error}",
2384
+ "config.embeddingSpaces": "各 Mnemon Native 空间",
2385
+ "config.embeddingSpaceCounts": "已嵌入 {embedded}/{total}({coverage})",
2386
+ "config.embeddingSpaceFailed": "无法读取:{error}",
2387
+ "config.embeddingMissing": "没有向量的记忆不参与语义匹配。",
2388
+ "config.embeddingMissingFill": "没有向量的记忆不参与语义匹配;点空间旁的「补齐」即可生成缺少的向量。",
2389
+ "config.embeddingMissingOffline": "没有向量的记忆不参与语义匹配;嵌入服务可用后,可以在这里补齐。",
2390
+ "config.embeddingSpacesUnread": "无法读取的空间没有计入合计。",
2391
+ "config.embeddingFill": "补齐",
2392
+ "config.embeddingFilling": "补齐中…",
2393
+ "config.embeddingFillLabel": "补齐「{name}」的向量",
2394
+ "config.embeddingFillingLabel": "正在补齐「{name}」的向量",
2395
+ "config.embeddingFillDone": "已为「{name}」补齐 {filled} 条向量。",
2396
+ "config.embeddingFillMore": "已为「{name}」补齐 {filled} 条向量,还缺 {remaining} 条,再点「补齐」继续。",
2397
+ "config.embeddingFillPartly": "已为「{name}」补齐 {filled} 条向量;其余 {remaining} 条嵌入服务没有返回向量,可以稍后再点「补齐」。",
2398
+ "config.embeddingFillRefused": "嵌入服务没有为「{name}」返回向量,请确认它在运行并提供模型 {model}。",
2399
+ "config.embeddingFillFailed": "「{name}」的向量没有补齐:{error}",
2378
2400
  "config.providerGlobalLocation": "全局数据位置",
2379
2401
  "config.providerGlobalLocationHint": "{provider} 默认使用全局范围目录,也可以指定一个自定义位置。",
2380
2402
  "config.providerGlobalLocationWorkspaceHint": "当前使用工作区默认位置;切换到全局范围后可指定自定义位置。",
@@ -2401,18 +2423,25 @@ window.__ModuleLoader__.load({
2401
2423
  "config.providerLoadFailed": "读取 Provider 配置失败:{error}",
2402
2424
  "config.retryProviders": "重试",
2403
2425
  "config.taskAgentTitle": "任务 Agent 模型",
2404
- "config.taskAgentInherit": "跟随主链路",
2405
- "config.taskAgentInheritHint": "使用 DSH 新会话默认模型",
2406
- "config.taskAgentFixed": "指定模型",
2407
- "config.taskAgentFixedHint": "为后台任务和子代理委托固定 Provider 与模型",
2426
+ "config.taskAgentInherit": "跟随全局",
2427
+ "config.taskAgentInheritHint": "跟随新会话的模型",
2428
+ "config.taskAgentConversation": "跟随会话",
2429
+ "config.taskAgentConversationHint": "跟随当前会话使用的模型",
2430
+ "config.taskAgentFixed": "自定义",
2431
+ "config.taskAgentFixedHint": "指定模型",
2408
2432
  "config.taskAgentProvider": "模型 Provider",
2409
2433
  "config.taskAgentModel": "模型",
2410
2434
  "config.taskAgentImageInput": "图片输入",
2411
2435
  "config.taskAgentEffective": "当前将使用",
2436
+ "config.taskAgentSource.fixed": "自定义",
2437
+ "config.taskAgentSource.session": "当前会话",
2438
+ "config.taskAgentSource.dsh-default": "新会话模型",
2439
+ "config.taskAgentSource.active-agent": "已打开的会话",
2412
2440
  "config.taskAgentLoading": "正在读取模型目录",
2413
2441
  "config.taskAgentUnavailable": "尚无可用的 Provider / Model 路由",
2414
2442
  "config.taskAgentLoadFailed": "模型目录读取失败:{error}",
2415
2443
  "config.taskAgentPartial": "有 {count} 个 Provider 暂时无法读取,其他选项仍可使用。",
2444
+ "config.taskAgentRetry": "重新读取",
2416
2445
  "config.customAbsolute": "需要绝对路径,或以 ~/ 开头",
2417
2446
  "config.saveFailed": "保存失败:{error}",
2418
2447
  "config.readOnly": "当前部署的插件设置为只读。",
@@ -2780,6 +2809,7 @@ window.__ModuleLoader__.load({
2780
2809
  "receipt.failed": "Failed",
2781
2810
  "receipt.view": "View in Memory Spaces",
2782
2811
  "receipt.viewRuntime": "View in Runtime Memory",
2812
+ "receipt.unembedded": "Saved without a vector: embedding did not succeed, so this memory is left out of semantic matching for now. Once the embedding service answers, fill it in from Test status in the Mnemon Native embedding settings.",
2783
2813
  "taskAgent.ready": "Task Agent ready",
2784
2814
  "taskAgent.unavailable": "Task Agent unavailable",
2785
2815
  "saveAction.button": "Save to memory",
@@ -2845,12 +2875,12 @@ window.__ModuleLoader__.load({
2845
2875
  "status.title": "System Status",
2846
2876
  "status.description": "How dsh-mnemon, memory Providers and each storage layer are running.",
2847
2877
  "status.nominal": "System nominal",
2848
- "status.reviewFailed": "Background review failed",
2878
+ "status.reviewFailed": "Idle review failed",
2849
2879
  "status.reviewFailedDetail": "This checkpoint did not complete and will not be replayed automatically. Later reviews respect the cooldown and session limit.",
2850
2880
  "status.reviewPartial": "Some writes committed. Reconcile the receipts below; they were not rolled back.",
2851
- "status.reviewTeamPaused": "Idle review is paused by the Agent Teams compatibility setting. With DSH and official Teams 0.1.7-rc.2, select “Scoped child review” under Idle review on the dsh-mnemon page under Plugins. Recall and writeback settings are unchanged.",
2881
+ "status.reviewTeamPaused": "Idle review is paused by the Agent Teams compatibility setting. To keep reviewing, select “Scoped task Agent review” under Idle review on the dsh-mnemon page under Plugins. Recall and writeback settings are unchanged.",
2852
2882
  "status.reviewRun": "Review run: {id}",
2853
- "status.reviewContextWindow": "Choose bounded checkpoint review (spawn), or a task model with a context window large enough for the parent conversation.",
2883
+ "status.reviewContextWindow": "Choose bounded checkpoint review (spawn), or a task Agent model whose context window covers the parent conversation.",
2854
2884
  "config.reviewTitle": "Idle review",
2855
2885
  "config.reviewDescription": "Tidies memory while the conversation is idle; recall and writes work either way",
2856
2886
  "config.reviewEnabled": "Enable idle review",
@@ -2859,16 +2889,16 @@ window.__ModuleLoader__.load({
2859
2889
  "config.reviewLimits": "Review limits",
2860
2890
  "config.reviewProvider": "Review method",
2861
2891
  "config.reviewSpawn": "Bounded checkpoint (spawn)",
2862
- "config.reviewSpawnHint": "A child reads a bounded checkpoint",
2892
+ "config.reviewSpawnHint": "The task Agent reads a bounded checkpoint",
2863
2893
  "config.reviewFork": "Full parent context (fork)",
2864
- "config.reviewForkHint": "A child with the full parent context",
2894
+ "config.reviewForkHint": "The task Agent has the full parent context",
2865
2895
  "config.reviewFallback": "When fork is unavailable (before startup only)",
2866
2896
  "config.reviewSkip": "Skip this review",
2867
2897
  "config.reviewAgentTeams": "Agent Teams compatibility",
2868
- "config.reviewTeamPause": "Pause review (legacy compatible)",
2898
+ "config.reviewTeamPause": "Pause review",
2869
2899
  "config.reviewTeamPauseHint": "Skips review while Agent Teams runs",
2870
- "config.reviewTeamScoped": "Scoped child review",
2871
- "config.reviewTeamScopedHint": "Reviews in a scoped child without Teams tools",
2900
+ "config.reviewTeamScoped": "Scoped task Agent review",
2901
+ "config.reviewTeamScopedHint": "A scoped task Agent reviews, without Teams tools",
2872
2902
  "config.review.minIntervalMs": "Minimum review interval (seconds)",
2873
2903
  "config.review.maxPerSession": "Maximum attempts per session",
2874
2904
  "config.review.maxContextChars": "Spawn checkpoint character budget",
@@ -3173,11 +3203,6 @@ window.__ModuleLoader__.load({
3173
3203
  "feedback.optionsSaved": "Updated the options of “{component}”",
3174
3204
  "feedback.externalOptions": "The options of “{component}” changed",
3175
3205
  "feedback.externalSeveral": "{count} components changed",
3176
- "feedback.pendingMain": "Switching to “{strategy}”…",
3177
- "feedback.pendingOn": "Turning on “{component}”…",
3178
- "feedback.pendingOff": "Turning off “{component}”…",
3179
- "feedback.pendingOptions": "Applying the options of “{component}”…",
3180
- "feedback.pendingSeveral": "Applying changes…",
3181
3206
  "feedback.undo": "Undo",
3182
3207
  "feedback.undone": "Undone; the previous settings are back",
3183
3208
  "feedback.show": "Show",
@@ -3220,7 +3245,7 @@ window.__ModuleLoader__.load({
3220
3245
  "config.embeddingModelInvalid": "The embedding model must contain 1–200 characters and no control characters.",
3221
3246
  "config.embeddingSecurity": "Mnemon sends memory and query text to this endpoint; the API key is stored in the DSH settings file like other settings. Remote HTTP is unencrypted; use a trusted local address or HTTPS for a remote service.",
3222
3247
  "config.embeddingTest": "Test status",
3223
- "config.embeddingNotTested": "The current Mnemon Store connection and embedding coverage have not been checked.",
3248
+ "config.embeddingNotTested": "The embedding connection and the coverage of each Mnemon Native space have not been checked.",
3224
3249
  "config.embeddingTesting": "Checking the embedding server and coverage through Mnemon…",
3225
3250
  "config.embeddingSaveBeforeTest": "Save the embedding settings before testing their effective runtime values.",
3226
3251
  "config.embeddingTestUnavailable": "This DSH Host does not provide embedding status checks.",
@@ -3230,6 +3255,22 @@ window.__ModuleLoader__.load({
3230
3255
  "config.embeddingStatusUnavailable": "Embedding server unreachable · {model} · {embedded}/{total} embedded ({coverage})",
3231
3256
  "config.embeddingStatusUnavailableWithProtocol": "Embedding server unreachable · {model} · protocol {protocol} · {embedded}/{total} embedded ({coverage})",
3232
3257
  "config.embeddingStatusFailed": "Embedding status check failed: {error}",
3258
+ "config.embeddingSpaces": "Each Mnemon Native space",
3259
+ "config.embeddingSpaceCounts": "{embedded}/{total} embedded ({coverage})",
3260
+ "config.embeddingSpaceFailed": "Could not read: {error}",
3261
+ "config.embeddingMissing": "Memories without a vector are left out of semantic matching.",
3262
+ "config.embeddingMissingFill": "Memories without a vector are left out of semantic matching; Fill in beside a space creates its missing vectors.",
3263
+ "config.embeddingMissingOffline": "Memories without a vector are left out of semantic matching; once the embedding service answers, their vectors can be filled in here.",
3264
+ "config.embeddingSpacesUnread": "Spaces that could not be read are left out of the total.",
3265
+ "config.embeddingFill": "Fill in",
3266
+ "config.embeddingFilling": "Filling in…",
3267
+ "config.embeddingFillLabel": "Fill in the vectors of {name}",
3268
+ "config.embeddingFillingLabel": "Filling in the vectors of {name}",
3269
+ "config.embeddingFillDone": "Filled in {filled} vectors for {name}.",
3270
+ "config.embeddingFillMore": "Filled in {filled} vectors for {name}; {remaining} are still missing. Press Fill in to go on.",
3271
+ "config.embeddingFillPartly": "Filled in {filled} vectors for {name}; the embedding service returned none for the other {remaining}. Press Fill in later to try again.",
3272
+ "config.embeddingFillRefused": "The embedding service returned no vectors for {name}. Check that it is running and serves the model {model}.",
3273
+ "config.embeddingFillFailed": "The vectors of {name} were not filled in: {error}",
3233
3274
  "config.providerGlobalLocation": "Global data location",
3234
3275
  "config.providerGlobalLocationHint": "{provider} uses the global scope directory by default, or you can choose a custom location.",
3235
3276
  "config.providerGlobalLocationWorkspaceHint": "The workspace default is active. Switch to Global to choose a custom location.",
@@ -3256,18 +3297,25 @@ window.__ModuleLoader__.load({
3256
3297
  "config.providerLoadFailed": "Could not load provider configurations: {error}",
3257
3298
  "config.retryProviders": "Retry",
3258
3299
  "config.taskAgentTitle": "Task Agent model",
3259
- "config.taskAgentInherit": "Follow the main route",
3260
- "config.taskAgentInheritHint": "Use the DSH new-session default model",
3261
- "config.taskAgentFixed": "Choose a model",
3262
- "config.taskAgentFixedHint": "Pin background tasks and subagent delegations to one provider and model",
3300
+ "config.taskAgentInherit": "Follow global",
3301
+ "config.taskAgentInheritHint": "Follow the new-session model",
3302
+ "config.taskAgentConversation": "Follow the conversation",
3303
+ "config.taskAgentConversationHint": "Follow the model the current conversation uses",
3304
+ "config.taskAgentFixed": "Custom",
3305
+ "config.taskAgentFixedHint": "Choose a model",
3263
3306
  "config.taskAgentProvider": "Model provider",
3264
3307
  "config.taskAgentModel": "Model",
3265
3308
  "config.taskAgentImageInput": "Image input",
3266
3309
  "config.taskAgentEffective": "Will currently use",
3310
+ "config.taskAgentSource.fixed": "Custom",
3311
+ "config.taskAgentSource.session": "Current conversation",
3312
+ "config.taskAgentSource.dsh-default": "New-session model",
3313
+ "config.taskAgentSource.active-agent": "An open conversation",
3267
3314
  "config.taskAgentLoading": "Loading model directory",
3268
3315
  "config.taskAgentUnavailable": "No Provider / Model route is currently available",
3269
3316
  "config.taskAgentLoadFailed": "Could not load the model directory: {error}",
3270
3317
  "config.taskAgentPartial": "{count} providers could not be read; the remaining options are still available.",
3318
+ "config.taskAgentRetry": "Read again",
3271
3319
  "config.customAbsolute": "Use an absolute path or one that starts with ~/",
3272
3320
  "config.saveFailed": "Save failed: {error}",
3273
3321
  "config.readOnly": "Plugin settings are read-only in this deployment.",
@@ -3937,11 +3985,13 @@ window.__ModuleLoader__.load({
3937
3985
  (0, react.useEffect)(() => {
3938
3986
  const onKey = (event) => {
3939
3987
  if (event.key === "Escape") {
3988
+ if (event.defaultPrevented) return;
3940
3989
  event.preventDefault();
3941
3990
  requestClose();
3942
3991
  return;
3943
3992
  }
3944
3993
  if (event.key !== "Tab" || closingRef.current) return;
3994
+ if (document.activeElement?.closest("[role=\"menu\"]") !== null) return;
3945
3995
  const controls = Array.from(dialogRef.current?.querySelectorAll("button:not(:disabled), input:not(:disabled), textarea:not(:disabled), select:not(:disabled), a[href], [tabindex]:not([tabindex=\"-1\"])") ?? []).filter((control) => control.getAttribute("aria-hidden") !== "true");
3946
3996
  const first = controls[0];
3947
3997
  const last = controls.at(-1);
@@ -9617,7 +9667,7 @@ window.__ModuleLoader__.load({
9617
9667
  }
9618
9668
  //#endregion
9619
9669
  //#region \0dsh-mnemon-css:/home/runner/work/dsh-mnemon/dsh-mnemon/src/client/PageControls.module.css.mjs
9620
- const css$3 = ".Zl-6yW_search{min-width:0}.Zl-6yW_field{gap:6px;min-width:0;display:inline-grid}.Zl-6yW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}.Zl-6yW_hiddenLabel{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Zl-6yW_selector{appearance:none;border-radius:var(--dsw-radius-md);min-width:0;max-width:100%;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-module-platform);font:inherit;white-space:nowrap;cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.Zl-6yW_selector>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.Zl-6yW_selector>svg{color:var(--dsw-alias-label-tertiary);flex:none}.Zl-6yW_selector:hover:not(:disabled),.Zl-6yW_selector[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.Zl-6yW_selector:focus-visible{outline:var(--dsw-focus-ring-width,2px) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.Zl-6yW_selector:disabled{cursor:default;opacity:.4}.Zl-6yW_menuRoot{min-width:0;display:block}.Zl-6yW_field:not([data-inline]) .Zl-6yW_selector{width:100%}.Zl-6yW_field[data-inline]{align-items:center;gap:8px;display:inline-flex}.Zl-6yW_field[data-inline] .Zl-6yW_menuRoot{display:inline-block}.Zl-6yW_field[data-inline]>.Zl-6yW_fieldLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-weight:400}.Zl-6yW_field[data-size=sm] .Zl-6yW_selector{border-radius:var(--dsw-radius-sm);gap:8px;height:28px;padding:0 10px;font-size:12px;line-height:18px}.Zl-6yW_menu{min-width:200px}.Zl-6yW_option{white-space:normal;gap:1px;min-width:0;display:grid}.Zl-6yW_option>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}.Zl-6yW_receipt{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);flex-wrap:wrap;align-items:flex-start;gap:8px 10px;min-width:0;margin-top:12px;padding:10px 12px;display:flex}.Zl-6yW_receipt>p{min-width:0;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;flex:240px;margin:0;font-size:13px;line-height:20px}.Zl-6yW_receipt>:first-child{flex:none;margin-top:1px}.Zl-6yW_receiptAction{flex:none;margin-left:auto}";
9670
+ const css$3 = ".Zl-6yW_search{min-width:0}.Zl-6yW_field{gap:6px;min-width:0;display:inline-grid}.Zl-6yW_fieldLabel{color:var(--dsw-alias-label-secondary);font-size:12px;font-weight:500;line-height:18px}.Zl-6yW_hiddenLabel{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.Zl-6yW_selector{appearance:none;border-radius:var(--dsw-radius-md);min-width:0;max-width:100%;height:36px;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-module-platform);font:inherit;white-space:nowrap;cursor:pointer;border:0;justify-content:space-between;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.Zl-6yW_selector>span{text-overflow:ellipsis;min-width:0;overflow:hidden}.Zl-6yW_selector>svg{color:var(--dsw-alias-label-tertiary);flex:none}.Zl-6yW_selector:hover:not(:disabled),.Zl-6yW_selector[aria-expanded=true]{background:var(--dsw-alias-interactive-bg-hover)}.Zl-6yW_selector:focus-visible{outline:var(--dsw-focus-ring-width,2px) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:2px}.Zl-6yW_selector:disabled{cursor:default;opacity:.4}.Zl-6yW_menuRoot{min-width:0;display:block}.Zl-6yW_field:not([data-inline]) .Zl-6yW_selector{width:100%}.Zl-6yW_field[data-inline]{align-items:center;gap:8px;display:inline-flex}.Zl-6yW_field[data-inline] .Zl-6yW_menuRoot{display:inline-block}.Zl-6yW_field[data-inline]>.Zl-6yW_fieldLabel{color:var(--dsw-alias-label-tertiary);white-space:nowrap;font-weight:400}.Zl-6yW_field[data-size=sm] .Zl-6yW_selector{border-radius:var(--dsw-radius-sm);gap:8px;height:28px;padding:0 10px;font-size:12px;line-height:18px}.Zl-6yW_menu{min-width:200px}.Zl-6yW_option{white-space:normal;gap:1px;min-width:0;display:grid}.Zl-6yW_option>small{color:var(--dsw-alias-label-tertiary);overflow-wrap:anywhere;font-size:12px;line-height:18px}.Zl-6yW_receipt{border-radius:var(--dsw-radius-md);background:var(--dsw-alias-bg-module-platform);flex-wrap:wrap;align-items:flex-start;gap:8px 10px;min-width:0;margin-top:12px;padding:10px 12px;display:flex}.Zl-6yW_receipt>p{min-width:0;color:var(--dsw-alias-label-secondary);overflow-wrap:anywhere;flex:240px;margin:0;font-size:13px;line-height:20px}.Zl-6yW_receipt>:first-child{flex:none;margin-top:1px}.Zl-6yW_receiptAction{flex:none;margin-left:auto}.Zl-6yW_receipt>.Zl-6yW_receiptNote{color:var(--dsw-alias-state-warn-label,var(--dsw-alias-label-secondary));flex-basis:100%;font-size:12px;line-height:18px}";
9621
9671
  const tagId$3 = "dsh-mnemon/src/client/PageControls.module.css";
9622
9672
  if (typeof document !== "undefined") {
9623
9673
  let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$3) + "]");
@@ -9637,6 +9687,7 @@ window.__ModuleLoader__.load({
9637
9687
  "option": "Zl-6yW_option",
9638
9688
  "receipt": "Zl-6yW_receipt",
9639
9689
  "receiptAction": "Zl-6yW_receiptAction",
9690
+ "receiptNote": "Zl-6yW_receiptNote",
9640
9691
  "search": "Zl-6yW_search",
9641
9692
  "selector": "Zl-6yW_selector"
9642
9693
  };
@@ -9752,7 +9803,8 @@ window.__ModuleLoader__.load({
9752
9803
  };
9753
9804
  /**
9754
9805
  * What a task Agent did with a candidate: the outcome, the Agent's own
9755
- * summary, and, when something was written, a way to see it.
9806
+ * summary, and, when something was written, a way to see it. A memory saved
9807
+ * without a vector says so on a line of its own (#388).
9756
9808
  */
9757
9809
  function WriteReceipt(props) {
9758
9810
  const shared = useT();
@@ -9784,6 +9836,10 @@ window.__ModuleLoader__.load({
9784
9836
  className: PageControls_module_css_default.receiptAction,
9785
9837
  onClick: props.onView,
9786
9838
  children: props.viewLabel ?? t("receipt.view")
9839
+ }),
9840
+ props.unembedded === true && (outcome === "written" || outcome === "updated" || outcome === "partial") && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
9841
+ className: PageControls_module_css_default.receiptNote,
9842
+ children: t("receipt.unembedded")
9787
9843
  })
9788
9844
  ]
9789
9845
  });
@@ -10381,6 +10437,321 @@ window.__ModuleLoader__.load({
10381
10437
  ] });
10382
10438
  }
10383
10439
  //#endregion
10440
+ //#region src/client/task-agent-model.tsx
10441
+ function routeOf(value) {
10442
+ const configured = value?.taskAgentModel;
10443
+ return {
10444
+ mode: configured?.mode === "fixed" ? "fixed" : configured?.followConversation === true ? "conversation" : "inherit",
10445
+ provider: configured?.provider?.trim() ?? "",
10446
+ model: configured?.model?.trim() ?? ""
10447
+ };
10448
+ }
10449
+ /**
10450
+ * What a choice stores. Following the conversation is an inherited route with
10451
+ * `followConversation`, a key a release without it ignores, so that release
10452
+ * still reads the route as following global rather than failing on a mode it
10453
+ * does not know.
10454
+ */
10455
+ function stored(route) {
10456
+ return route.mode === "fixed" ? {
10457
+ mode: "fixed",
10458
+ provider: route.provider,
10459
+ model: route.model
10460
+ } : route.mode === "conversation" ? {
10461
+ mode: "inherit",
10462
+ followConversation: true
10463
+ } : { mode: "inherit" };
10464
+ }
10465
+ /** The route choosing a fixed model starts from: the saved one, else DSH's default, else the first listed. */
10466
+ function startingRoute(catalog, current) {
10467
+ const listed = (provider) => catalog.groups.some((group) => group.id === provider);
10468
+ const provider = (listed(current.provider) ? current.provider : "") || catalog.defaultSelection?.provider || catalog.groups[0]?.id || "";
10469
+ const models = catalog.groups.find((group) => group.id === provider)?.models ?? [];
10470
+ const model = (current.provider === provider ? current.model : "") || (catalog.defaultSelection?.provider === provider ? catalog.defaultSelection.model : "") || models[0]?.id || "";
10471
+ return provider === "" || model === "" ? void 0 : {
10472
+ provider,
10473
+ model
10474
+ };
10475
+ }
10476
+ /**
10477
+ * The route the next task Agent takes: a custom route's own model; the asking
10478
+ * conversation's route when the choice follows it and that conversation is
10479
+ * open; else the route the Host reports for following global. It is put
10480
+ * together from the parts the Host reported, so a choice shows its effect at
10481
+ * once. Until this page has read the settings, it cannot know the stored
10482
+ * choice, and states the route the Host resolved.
10483
+ */
10484
+ function effectiveRoute(route, catalog, settled = true) {
10485
+ if (!settled) return catalog?.effective;
10486
+ if (route.mode === "fixed") return route.provider === "" || route.model === "" ? void 0 : {
10487
+ provider: route.provider,
10488
+ model: route.model,
10489
+ source: "fixed"
10490
+ };
10491
+ if (route.mode === "conversation" && catalog?.session !== void 0) return {
10492
+ ...catalog.session,
10493
+ source: "session"
10494
+ };
10495
+ return catalog?.inherited ?? (catalog?.defaultSelection === void 0 ? void 0 : {
10496
+ ...catalog.defaultSelection,
10497
+ source: "dsh-default"
10498
+ });
10499
+ }
10500
+ function routeSourceKey(source) {
10501
+ return `config.taskAgentSource.${source}`;
10502
+ }
10503
+ /**
10504
+ * The task Agent route a page shows and writes: the stored route, the model
10505
+ * directory it is chosen from, and the write that applies a choice at once.
10506
+ * The route is read from the settings themselves, so every page that shows it
10507
+ * agrees, and a change made on another page reads here at once. A page
10508
+ * belongs to one conversation, so the directory it reads names that
10509
+ * conversation's model, and a read that fails says why and can be asked for
10510
+ * again instead of quietly falling back.
10511
+ */
10512
+ function useTaskAgentModel(options) {
10513
+ const { scope, connection, sessionId, workspaceId } = options;
10514
+ const snapshot = useScope(scope);
10515
+ const saved = routeOf(snapshot.value);
10516
+ const route = useLive(saved, async (next) => {
10517
+ await scope.mutate([{
10518
+ op: "set",
10519
+ path: ["taskAgentModel"],
10520
+ value: stored(next)
10521
+ }]);
10522
+ });
10523
+ const [catalog, setCatalog] = (0, react.useState)({
10524
+ state: connection === void 0 ? "unavailable" : "loading",
10525
+ value: null,
10526
+ error: null,
10527
+ full: false
10528
+ });
10529
+ const request = (0, react.useRef)(0);
10530
+ const client = (0, react.useMemo)(() => connection === void 0 ? void 0 : new MnemonClient(connection, sessionId, workspaceId), [
10531
+ connection,
10532
+ sessionId,
10533
+ workspaceId
10534
+ ]);
10535
+ const loaded = (0, react.useRef)({
10536
+ client: void 0,
10537
+ level: "none"
10538
+ });
10539
+ const level = () => loaded.current.client === client ? loaded.current.level : "none";
10540
+ const load = (0, react.useCallback)((full) => {
10541
+ if (client === void 0) return;
10542
+ const current = ++request.current;
10543
+ setCatalog((value) => ({
10544
+ ...value,
10545
+ state: "loading",
10546
+ error: null
10547
+ }));
10548
+ client.taskAgentModels(full).then((value) => {
10549
+ if (request.current !== current) return;
10550
+ loaded.current = {
10551
+ client,
10552
+ level: full ? "full" : "route"
10553
+ };
10554
+ setCatalog({
10555
+ state: "ready",
10556
+ value,
10557
+ error: null,
10558
+ full
10559
+ });
10560
+ }, (reason) => {
10561
+ if (request.current === current) setCatalog((value) => ({
10562
+ ...value,
10563
+ state: "error",
10564
+ error: message(reason)
10565
+ }));
10566
+ });
10567
+ }, [client]);
10568
+ (0, react.useEffect)(() => () => {
10569
+ request.current += 1;
10570
+ }, []);
10571
+ const fullFixed = saved.mode === "fixed";
10572
+ (0, react.useEffect)(() => {
10573
+ if (fullFixed ? level() === "full" : level() !== "none") return;
10574
+ load(fullFixed);
10575
+ }, [fullFixed, load]);
10576
+ const [choosing, setChoosing] = (0, react.useState)(false);
10577
+ (0, react.useEffect)(() => {
10578
+ if (!choosing) return;
10579
+ if (catalog.state === "error") {
10580
+ setChoosing(false);
10581
+ return;
10582
+ }
10583
+ if (!catalog.full || catalog.value === null) return;
10584
+ setChoosing(false);
10585
+ const start = startingRoute(catalog.value, route.value);
10586
+ if (start !== void 0) route.set({
10587
+ mode: "fixed",
10588
+ ...start
10589
+ });
10590
+ }, [choosing, catalog]);
10591
+ const setMode = (mode) => {
10592
+ if (mode !== "fixed") {
10593
+ setChoosing(false);
10594
+ if (route.value.mode === mode) return;
10595
+ route.set({
10596
+ mode,
10597
+ provider: "",
10598
+ model: ""
10599
+ });
10600
+ return;
10601
+ }
10602
+ const start = catalog.full && catalog.value !== null ? startingRoute(catalog.value, route.value) : void 0;
10603
+ if (start !== void 0) {
10604
+ route.set({
10605
+ mode: "fixed",
10606
+ ...start
10607
+ });
10608
+ return;
10609
+ }
10610
+ setChoosing(true);
10611
+ load(true);
10612
+ };
10613
+ return {
10614
+ route: route.value,
10615
+ settled: snapshot.status === "ready",
10616
+ catalog,
10617
+ choosing,
10618
+ failed: route.failed,
10619
+ retry: () => {
10620
+ load(fullFixed || choosing || level() === "full");
10621
+ },
10622
+ setMode,
10623
+ setRoute: (next) => {
10624
+ route.set({
10625
+ mode: "fixed",
10626
+ ...next
10627
+ });
10628
+ }
10629
+ };
10630
+ }
10631
+ /** The route a page states: where the next task runs, and why. */
10632
+ function EffectiveRoute(props) {
10633
+ const { t } = props;
10634
+ const effective = props.choosing === true ? void 0 : effectiveRoute(props.route, props.catalog, props.settled !== false);
10635
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
10636
+ className: MnemonSettingsCard_module_css_default.routeValue,
10637
+ children: effective === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: props.state === "loading" || props.choosing === true ? t("config.taskAgentLoading") : t("config.taskAgentUnavailable") }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("code", { children: [
10638
+ effective.provider,
10639
+ " / ",
10640
+ effective.model
10641
+ ] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: t(routeSourceKey(effective.source)) })] })
10642
+ });
10643
+ }
10644
+ /**
10645
+ * The task Agent model rows: the choice of route, the Provider and model a
10646
+ * custom route uses, and the route the background work will actually take. A
10647
+ * read that fails keeps the reason on the page and offers to read again.
10648
+ */
10649
+ function TaskAgentModelRows(props) {
10650
+ const { route, t } = props;
10651
+ const groups = props.state === "ready" ? props.catalog?.groups ?? [] : [];
10652
+ const group = groups.find((candidate) => candidate.id === route.provider);
10653
+ const fixed = props.mode === "fixed" && props.state === "ready";
10654
+ const shared = (name) => groups.filter((candidate) => candidate.name === name).length > 1;
10655
+ const providers = [...route.provider !== "" && group === void 0 ? [{
10656
+ value: route.provider,
10657
+ label: route.provider
10658
+ }] : [], ...groups.map((candidate) => ({
10659
+ value: candidate.id,
10660
+ label: candidate.name,
10661
+ ...shared(candidate.name) ? { detail: candidate.id } : {}
10662
+ }))];
10663
+ const models = [...route.model !== "" && group?.models.some((model) => model.id === route.model) !== true ? [{
10664
+ value: route.model,
10665
+ label: route.model
10666
+ }] : [], ...(group?.models ?? []).map((model) => ({
10667
+ value: model.id,
10668
+ label: model.name,
10669
+ ...model.inputModalities?.includes("image") === true ? { detail: t("config.taskAgentImageInput") } : {}
10670
+ }))];
10671
+ const chooseProvider = (provider) => {
10672
+ const model = groups.find((candidate) => candidate.id === provider)?.models[0]?.id;
10673
+ if (model !== void 0) props.onRoute({
10674
+ provider,
10675
+ model
10676
+ });
10677
+ };
10678
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
10679
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
10680
+ id: "mnemon-task-agent",
10681
+ label: t("config.taskAgentTitle"),
10682
+ value: props.mode,
10683
+ disabled: props.disabled,
10684
+ onChange: props.onMode,
10685
+ options: [
10686
+ {
10687
+ value: "inherit",
10688
+ label: t("config.taskAgentInherit"),
10689
+ detail: t("config.taskAgentInheritHint")
10690
+ },
10691
+ {
10692
+ value: "conversation",
10693
+ label: t("config.taskAgentConversation"),
10694
+ detail: t("config.taskAgentConversationHint")
10695
+ },
10696
+ {
10697
+ value: "fixed",
10698
+ label: t("config.taskAgentFixed"),
10699
+ detail: t("config.taskAgentFixedHint"),
10700
+ ...props.state === "unavailable" ? { disabled: true } : {}
10701
+ }
10702
+ ]
10703
+ }),
10704
+ fixed && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
10705
+ id: "mnemon-task-agent-provider",
10706
+ label: t("config.taskAgentProvider"),
10707
+ value: route.provider,
10708
+ disabled: props.disabled || props.state !== "ready",
10709
+ options: providers,
10710
+ onChange: chooseProvider
10711
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
10712
+ id: "mnemon-task-agent-model",
10713
+ label: t("config.taskAgentModel"),
10714
+ value: route.model,
10715
+ disabled: props.disabled || props.state !== "ready" || group === void 0,
10716
+ options: models,
10717
+ onChange: (model) => props.onRoute({
10718
+ provider: route.provider,
10719
+ model
10720
+ })
10721
+ })] }),
10722
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
10723
+ className: MnemonSettingsCard_module_css_default.rowDetail,
10724
+ children: [
10725
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
10726
+ className: MnemonSettingsCard_module_css_default.effectiveRoute,
10727
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("config.taskAgentEffective") }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EffectiveRoute, {
10728
+ route,
10729
+ settled: props.settled,
10730
+ choosing: props.choosing,
10731
+ catalog: props.catalog,
10732
+ state: props.state,
10733
+ t
10734
+ })]
10735
+ }),
10736
+ props.note,
10737
+ props.state === "error" && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
10738
+ className: MnemonSettingsCard_module_css_default.warning,
10739
+ children: [t("config.taskAgentLoadFailed", { error: props.error ?? "" }), props.retry !== void 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
10740
+ variant: "ghost",
10741
+ size: "sm",
10742
+ onClick: props.retry,
10743
+ children: t("config.taskAgentRetry")
10744
+ })]
10745
+ }),
10746
+ (props.catalog?.failures?.length ?? 0) > 0 && groups.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
10747
+ className: MnemonSettingsCard_module_css_default.warning,
10748
+ children: t("config.taskAgentPartial", { count: props.catalog.failures.length })
10749
+ })
10750
+ ]
10751
+ })
10752
+ ] });
10753
+ }
10754
+ //#endregion
10384
10755
  //#region src/client/component-settings.tsx
10385
10756
  /** The packages whose own settings dsh-mnemon supplies, through the same region an installed component uses. */
10386
10757
  const RUNTIME_PACKAGE = "dsh-mnemon-source-runtime";
@@ -10544,6 +10915,7 @@ window.__ModuleLoader__.load({
10544
10915
  });
10545
10916
  const [nativeCliFound, setNativeCliFound] = (0, react.useState)(void 0);
10546
10917
  const [status, setStatus] = (0, react.useState)({ state: "idle" });
10918
+ const [fill, setFill] = (0, react.useState)(void 0);
10547
10919
  const statusRequest = (0, react.useRef)(0);
10548
10920
  const on = page.component.enabled;
10549
10921
  (0, react.useEffect)(() => {
@@ -10568,6 +10940,7 @@ window.__ModuleLoader__.load({
10568
10940
  (0, react.useEffect)(() => {
10569
10941
  statusRequest.current += 1;
10570
10942
  setStatus({ state: "idle" });
10943
+ setFill(void 0);
10571
10944
  }, [client, snapshot.revision]);
10572
10945
  if (!on) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
10573
10946
  className: MnemonSettingsCard_module_css_default.panelNote,
@@ -10577,7 +10950,10 @@ window.__ModuleLoader__.load({
10577
10950
  if (client === void 0) return;
10578
10951
  const request = statusRequest.current + 1;
10579
10952
  statusRequest.current = request;
10580
- setStatus({ state: "loading" });
10953
+ setStatus((previous) => ({
10954
+ state: "loading",
10955
+ ...previous.value === void 0 ? {} : { value: previous.value }
10956
+ }));
10581
10957
  client.embeddingStatus().then((value) => {
10582
10958
  if (statusRequest.current === request) setStatus({
10583
10959
  state: "ready",
@@ -10590,6 +10966,32 @@ window.__ModuleLoader__.load({
10590
10966
  });
10591
10967
  });
10592
10968
  };
10969
+ const fillSpace = (space) => {
10970
+ if (client === void 0 || fill?.state === "running") return;
10971
+ const target = {
10972
+ memoryBodyId: space.memoryBodyId,
10973
+ name: space.name
10974
+ };
10975
+ setFill({
10976
+ ...target,
10977
+ state: "running"
10978
+ });
10979
+ client.fillEmbeddings(space.memoryBodyId).then((result) => {
10980
+ setFill({
10981
+ ...target,
10982
+ state: "done",
10983
+ result
10984
+ });
10985
+ test();
10986
+ }, (reason) => {
10987
+ setFill({
10988
+ ...target,
10989
+ state: "failed",
10990
+ error: message(reason)
10991
+ });
10992
+ test();
10993
+ });
10994
+ };
10593
10995
  const activeScope = isWorkspaceStorageScope(snapshot.value?.storageScope ?? "global") ? "workspace" : "global";
10594
10996
  const readOnly = snapshot.value?.writeEnabled === false;
10595
10997
  const disabled = !page.writable || snapshot.status === "loading" || !snapshot.writable;
@@ -10634,7 +11036,13 @@ window.__ModuleLoader__.load({
10634
11036
  status,
10635
11037
  t,
10636
11038
  onEdit: form.edit,
10637
- onTest: test,
11039
+ onTest: () => {
11040
+ setFill(void 0);
11041
+ test();
11042
+ },
11043
+ canFill: !disabled && !readOnly,
11044
+ fill,
11045
+ onFill: fillSpace,
10638
11046
  onManaged: (on) => {
10639
11047
  if (!on) form.discard();
10640
11048
  managed.set(on);
@@ -10797,14 +11205,121 @@ window.__ModuleLoader__.load({
10797
11205
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
10798
11206
  variant: "outline",
10799
11207
  size: "sm",
10800
- disabled: props.disabled || !props.connectionAvailable || props.cliMissing || props.changing || status.state === "loading",
11208
+ disabled: props.disabled || !props.connectionAvailable || props.cliMissing || props.changing || status.state === "loading" || props.fill?.state === "running",
10801
11209
  onClick: props.onTest,
10802
11210
  children: t("config.embeddingTest")
10803
11211
  })]
11212
+ }),
11213
+ !props.cliMissing && !props.changing && (status.state === "ready" || status.state === "loading") && (status.value?.spaces ?? []).length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmbeddingSpaces, {
11214
+ spaces: status.value.spaces,
11215
+ available: status.value.available,
11216
+ canFill: props.canFill,
11217
+ counting: status.state === "loading",
11218
+ fill: props.fill,
11219
+ onFill: props.onFill,
11220
+ t
11221
+ }),
11222
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(EmbeddingFillOutcome, {
11223
+ fill: props.fill,
11224
+ t
10804
11225
  })
10805
11226
  ]
10806
11227
  });
10807
11228
  }
11229
+ /**
11230
+ * Each Mnemon Native space's vectors under the status line. Mnemon counts one Store at a
11231
+ * time, so the total alone could read as every space's health while one lacked vectors (#392).
11232
+ * A space that lacks them can have them filled in here while the embedding service answers.
11233
+ */
11234
+ function EmbeddingSpaces(props) {
11235
+ const { t, fill } = props;
11236
+ const missing = (space) => space.error === void 0 && space.embedded < space.totalInsights;
11237
+ const fillable = props.available && props.canFill;
11238
+ const running = fill?.state === "running" ? fill.memoryBodyId : void 0;
11239
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
11240
+ className: MnemonSettingsCard_module_css_default.embeddingSpaces,
11241
+ children: [
11242
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", {
11243
+ id: "mnemon-embedding-spaces",
11244
+ children: t("config.embeddingSpaces")
11245
+ }),
11246
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
11247
+ "aria-labelledby": "mnemon-embedding-spaces",
11248
+ children: props.spaces.map((space) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("li", {
11249
+ "data-missing": missing(space) ? "" : void 0,
11250
+ "data-failed": space.error === void 0 ? void 0 : "",
11251
+ children: [
11252
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11253
+ className: MnemonSettingsCard_module_css_default.embeddingSpaceName,
11254
+ title: space.name,
11255
+ children: space.name
11256
+ }),
11257
+ !space.active && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11258
+ className: MnemonSettingsCard_module_css_default.embeddingSpaceState,
11259
+ children: t("common.inactive")
11260
+ }),
11261
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11262
+ className: MnemonSettingsCard_module_css_default.embeddingSpaceCount,
11263
+ children: space.error === void 0 ? t("config.embeddingSpaceCounts", {
11264
+ embedded: space.embedded,
11265
+ total: space.totalInsights,
11266
+ coverage: space.coverage
11267
+ }) : t("config.embeddingSpaceFailed", { error: space.error })
11268
+ }),
11269
+ fillable && missing(space) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Button, {
11270
+ variant: "ghost",
11271
+ size: "sm",
11272
+ disabled: running !== void 0 || props.counting,
11273
+ "aria-busy": running === space.memoryBodyId,
11274
+ "aria-label": t(running === space.memoryBodyId ? "config.embeddingFillingLabel" : "config.embeddingFillLabel", { name: space.name }),
11275
+ onClick: () => props.onFill(space),
11276
+ children: running === space.memoryBodyId ? t("config.embeddingFilling") : t("config.embeddingFill")
11277
+ })
11278
+ ]
11279
+ }, space.memoryBodyId))
11280
+ }),
11281
+ props.spaces.some(missing) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t(!props.canFill ? "config.embeddingMissing" : props.available ? "config.embeddingMissingFill" : "config.embeddingMissingOffline") }),
11282
+ props.spaces.some((space) => space.error !== void 0) && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("config.embeddingSpacesUnread") })
11283
+ ]
11284
+ });
11285
+ }
11286
+ /** What the last fill did. It stays while the counts are read again, and reads as a failure when it wrote no vector. */
11287
+ function EmbeddingFillOutcome(props) {
11288
+ const { fill, t } = props;
11289
+ if (fill === void 0 || fill.state === "running") return null;
11290
+ const failure = (text) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
11291
+ className: `${MnemonSettingsCard_module_css_default.embeddingFillOutcome} ${MnemonSettingsCard_module_css_default.error}`,
11292
+ role: "alert",
11293
+ children: text
11294
+ });
11295
+ if (fill.state === "failed") return failure(t("config.embeddingFillFailed", {
11296
+ name: fill.name,
11297
+ error: fill.error
11298
+ }));
11299
+ const { filled, remaining, model, stopped } = fill.result;
11300
+ const name = fill.name;
11301
+ if (remaining > 0 && stopped === "refused" && filled === 0) return failure(t("config.embeddingFillRefused", {
11302
+ name,
11303
+ model
11304
+ }));
11305
+ const text = remaining === 0 ? filled > 0 ? t("config.embeddingFillDone", {
11306
+ name,
11307
+ filled
11308
+ }) : void 0 : stopped === "refused" ? t("config.embeddingFillPartly", {
11309
+ name,
11310
+ filled,
11311
+ remaining
11312
+ }) : t("config.embeddingFillMore", {
11313
+ name,
11314
+ filled,
11315
+ remaining
11316
+ });
11317
+ return text === void 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
11318
+ className: MnemonSettingsCard_module_css_default.embeddingFillOutcome,
11319
+ role: "status",
11320
+ children: text
11321
+ });
11322
+ }
10808
11323
  /** Each limit as the page shows it: the interval in seconds, the others as stored. */
10809
11324
  const LIMITS = [
10810
11325
  {
@@ -10832,14 +11347,7 @@ window.__ModuleLoader__.load({
10832
11347
  scale: 1
10833
11348
  }
10834
11349
  ];
10835
- function routeOf(value) {
10836
- return {
10837
- mode: value?.taskAgentModel?.mode === "fixed" ? "fixed" : "inherit",
10838
- provider: value?.taskAgentModel?.provider?.trim() ?? "",
10839
- model: value?.taskAgentModel?.model?.trim() ?? ""
10840
- };
10841
- }
10842
- function reviewOf(value) {
11350
+ function reviewOf(value) {
10843
11351
  return {
10844
11352
  ...DEFAULT_IDLE_REVIEW,
10845
11353
  ...value?.idleReview
@@ -10875,17 +11383,6 @@ window.__ModuleLoader__.load({
10875
11383
  }
10876
11384
  }];
10877
11385
  }
10878
- /** The route choosing a fixed model starts from: the saved one, else DSH's default, else the first listed. */
10879
- function startingRoute(catalog, current) {
10880
- const listed = (provider) => catalog.groups.some((group) => group.id === provider);
10881
- const provider = (listed(current.provider) ? current.provider : "") || catalog.defaultSelection?.provider || catalog.groups[0]?.id || "";
10882
- const models = catalog.groups.find((group) => group.id === provider)?.models ?? [];
10883
- const model = (current.provider === provider ? current.model : "") || (catalog.defaultSelection?.provider === provider ? catalog.defaultSelection.model : "") || models[0]?.id || "";
10884
- return provider === "" || model === "" ? void 0 : {
10885
- provider,
10886
- model
10887
- };
10888
- }
10889
11386
  /**
10890
11387
  * The Layered strategy's own settings: the model its background task Agents use,
10891
11388
  * and the idle review that keeps its layers in shape. Choices apply at once;
@@ -10895,16 +11392,11 @@ window.__ModuleLoader__.load({
10895
11392
  const { scope, connection, page, t } = props;
10896
11393
  const snapshot = useScope(scope);
10897
11394
  const savedReview = reviewOf(snapshot.value);
10898
- const route = useLive(routeOf(snapshot.value), async (next) => {
10899
- await scope.mutate([{
10900
- op: "set",
10901
- path: ["taskAgentModel"],
10902
- value: next.mode === "inherit" ? { mode: "inherit" } : {
10903
- mode: "fixed",
10904
- provider: next.provider,
10905
- model: next.model
10906
- }
10907
- }]);
11395
+ const taskAgent = useTaskAgentModel({
11396
+ scope,
11397
+ connection,
11398
+ sessionId: page.sessionId,
11399
+ workspaceId: page.workspace?.id
10908
11400
  });
10909
11401
  const configured = snapshot.value?.idleReview;
10910
11402
  const choice = useLive(choiceOf(savedReview), async (next) => {
@@ -10917,83 +11409,6 @@ window.__ModuleLoader__.load({
10917
11409
  const operations = reviewWrite(configured, next, before);
10918
11410
  if (operations.length > 0) await scope.mutate(operations);
10919
11411
  });
10920
- const [catalog, setCatalog] = (0, react.useState)({
10921
- state: connection === void 0 ? "unavailable" : "loading",
10922
- value: null,
10923
- error: null,
10924
- full: false
10925
- });
10926
- const request = (0, react.useRef)(0);
10927
- const loaded = (0, react.useRef)("none");
10928
- const load = (0, react.useCallback)((full) => {
10929
- if (connection === void 0) return;
10930
- const current = ++request.current;
10931
- setCatalog((value) => ({
10932
- ...value,
10933
- state: "loading",
10934
- error: null
10935
- }));
10936
- new MnemonClient(connection).taskAgentModels(full).then((value) => {
10937
- if (request.current !== current) return;
10938
- loaded.current = full ? "full" : "route";
10939
- setCatalog({
10940
- state: "ready",
10941
- value,
10942
- error: null,
10943
- full
10944
- });
10945
- }, (reason) => {
10946
- if (request.current === current) setCatalog((value) => ({
10947
- ...value,
10948
- state: "error",
10949
- error: message(reason)
10950
- }));
10951
- });
10952
- }, [connection]);
10953
- (0, react.useEffect)(() => () => {
10954
- request.current += 1;
10955
- }, []);
10956
- const configuredMode = snapshot.value?.taskAgentModel?.mode === "fixed" ? "fixed" : "inherit";
10957
- (0, react.useEffect)(() => {
10958
- if (configuredMode === "fixed" ? loaded.current === "full" : loaded.current !== "none") return;
10959
- load(configuredMode === "fixed");
10960
- }, [configuredMode, load]);
10961
- const [choosing, setChoosing] = (0, react.useState)(false);
10962
- (0, react.useEffect)(() => {
10963
- if (!choosing) return;
10964
- if (catalog.state === "error") {
10965
- setChoosing(false);
10966
- return;
10967
- }
10968
- if (!catalog.full || catalog.value === null) return;
10969
- setChoosing(false);
10970
- const start = startingRoute(catalog.value, route.value);
10971
- if (start !== void 0) route.set({
10972
- mode: "fixed",
10973
- ...start
10974
- });
10975
- }, [choosing, catalog]);
10976
- const chooseMode = (mode) => {
10977
- if (mode === "inherit") {
10978
- setChoosing(false);
10979
- route.set({
10980
- mode: "inherit",
10981
- provider: "",
10982
- model: ""
10983
- });
10984
- return;
10985
- }
10986
- const start = catalog.full && catalog.value !== null ? startingRoute(catalog.value, route.value) : void 0;
10987
- if (start !== void 0) {
10988
- route.set({
10989
- mode: "fixed",
10990
- ...start
10991
- });
10992
- return;
10993
- }
10994
- setChoosing(true);
10995
- load(true);
10996
- };
10997
11412
  const disabled = !page.writable || snapshot.status === "loading" || !snapshot.writable;
10998
11413
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
10999
11414
  className: MnemonSettingsCard_module_css_default.panelSection,
@@ -11007,7 +11422,7 @@ window.__ModuleLoader__.load({
11007
11422
  children: t("config.backgroundTitle")
11008
11423
  }),
11009
11424
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", { children: t("config.backgroundDescription") }),
11010
- catalog.state === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11425
+ taskAgent.catalog.state === "loading" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
11011
11426
  className: MnemonSettingsCard_module_css_default.miniSpinner,
11012
11427
  "aria-hidden": "true"
11013
11428
  })
@@ -11020,18 +11435,17 @@ window.__ModuleLoader__.load({
11020
11435
  /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
11021
11436
  className: MnemonSettingsCard_module_css_default.rows,
11022
11437
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(TaskAgentModelRows, {
11023
- mode: choosing ? "fixed" : route.value.mode,
11024
- route: route.value,
11025
- choosing,
11026
- catalog: catalog.value,
11027
- state: catalog.state,
11028
- error: catalog.error,
11438
+ mode: taskAgent.choosing ? "fixed" : taskAgent.route.mode,
11439
+ route: taskAgent.route,
11440
+ settled: taskAgent.settled,
11441
+ choosing: taskAgent.choosing,
11442
+ catalog: taskAgent.catalog.value,
11443
+ state: taskAgent.catalog.state,
11444
+ error: taskAgent.catalog.error,
11445
+ retry: taskAgent.retry,
11029
11446
  disabled,
11030
- onMode: chooseMode,
11031
- onRoute: (next) => route.set({
11032
- mode: "fixed",
11033
- ...next
11034
- }),
11447
+ onMode: taskAgent.setMode,
11448
+ onRoute: taskAgent.setRoute,
11035
11449
  t
11036
11450
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IdleReviewRows, {
11037
11451
  choice: choice.value,
@@ -11045,105 +11459,12 @@ window.__ModuleLoader__.load({
11045
11459
  })]
11046
11460
  }),
11047
11461
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)(WriteFailure, {
11048
- error: route.failed ?? choice.failed,
11462
+ error: taskAgent.failed ?? choice.failed,
11049
11463
  t
11050
11464
  })
11051
11465
  ]
11052
11466
  });
11053
11467
  }
11054
- function TaskAgentModelRows(props) {
11055
- const { route, t } = props;
11056
- const groups = props.catalog?.groups ?? [];
11057
- const group = groups.find((candidate) => candidate.id === route.provider);
11058
- const inherited = props.catalog?.defaultSelection ?? (props.catalog?.effective?.source === "fixed" ? void 0 : props.catalog?.effective);
11059
- const fixed = props.mode === "fixed" && !props.choosing;
11060
- const effective = props.mode === "fixed" ? !fixed || route.provider === "" || route.model === "" ? void 0 : {
11061
- provider: route.provider,
11062
- model: route.model
11063
- } : inherited;
11064
- const shared = (name) => groups.filter((candidate) => candidate.name === name).length > 1;
11065
- const providers = [...route.provider !== "" && group === void 0 ? [{
11066
- value: route.provider,
11067
- label: route.provider
11068
- }] : [], ...groups.map((candidate) => ({
11069
- value: candidate.id,
11070
- label: candidate.name,
11071
- ...shared(candidate.name) ? { detail: candidate.id } : {}
11072
- }))];
11073
- const models = [...route.model !== "" && group?.models.some((model) => model.id === route.model) !== true ? [{
11074
- value: route.model,
11075
- label: route.model
11076
- }] : [], ...(group?.models ?? []).map((model) => ({
11077
- value: model.id,
11078
- label: model.name,
11079
- ...model.inputModalities?.includes("image") === true ? { detail: t("config.taskAgentImageInput") } : {}
11080
- }))];
11081
- const chooseProvider = (provider) => {
11082
- const model = groups.find((candidate) => candidate.id === provider)?.models[0]?.id;
11083
- if (model !== void 0) props.onRoute({
11084
- provider,
11085
- model
11086
- });
11087
- };
11088
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
11089
- /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
11090
- id: "mnemon-task-agent",
11091
- label: t("config.taskAgentTitle"),
11092
- value: props.mode,
11093
- disabled: props.disabled,
11094
- onChange: props.onMode,
11095
- options: [{
11096
- value: "inherit",
11097
- label: t("config.taskAgentInherit"),
11098
- detail: t("config.taskAgentInheritHint")
11099
- }, {
11100
- value: "fixed",
11101
- label: t("config.taskAgentFixed"),
11102
- detail: t("config.taskAgentFixedHint"),
11103
- ...props.state === "unavailable" ? { disabled: true } : {}
11104
- }]
11105
- }),
11106
- fixed && /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
11107
- id: "mnemon-task-agent-provider",
11108
- label: t("config.taskAgentProvider"),
11109
- value: route.provider,
11110
- disabled: props.disabled || props.state !== "ready",
11111
- options: providers,
11112
- onChange: chooseProvider
11113
- }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SelectRow, {
11114
- id: "mnemon-task-agent-model",
11115
- label: t("config.taskAgentModel"),
11116
- value: route.model,
11117
- disabled: props.disabled || props.state !== "ready" || group === void 0,
11118
- options: models,
11119
- onChange: (model) => props.onRoute({
11120
- provider: route.provider,
11121
- model
11122
- })
11123
- })] }),
11124
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
11125
- className: MnemonSettingsCard_module_css_default.rowDetail,
11126
- children: [
11127
- /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
11128
- className: MnemonSettingsCard_module_css_default.effectiveRoute,
11129
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: t("config.taskAgentEffective") }), effective === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("small", { children: props.state === "loading" || props.choosing ? t("config.taskAgentLoading") : t("config.taskAgentUnavailable") }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("code", { children: [
11130
- effective.provider,
11131
- " / ",
11132
- effective.model
11133
- ] })]
11134
- }),
11135
- props.state === "error" && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
11136
- className: MnemonSettingsCard_module_css_default.warning,
11137
- children: t("config.taskAgentLoadFailed", { error: props.error ?? "" })
11138
- }),
11139
- (props.catalog?.failures.length ?? 0) > 0 && groups.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
11140
- className: MnemonSettingsCard_module_css_default.warning,
11141
- children: t("config.taskAgentPartial", { count: props.catalog.failures.length })
11142
- })
11143
- ]
11144
- })
11145
- ] });
11146
- }
11147
11468
  function IdleReviewRows(props) {
11148
11469
  const { choice, limits, t } = props;
11149
11470
  const invalid = LIMITS.find((limit) => limitValue(limit, limits.draft[limit.key]) === void 0);
@@ -11865,7 +12186,8 @@ window.__ModuleLoader__.load({
11865
12186
  space: place,
11866
12187
  action: answered
11867
12188
  }
11868
- }
12189
+ },
12190
+ ...result.embedded === false ? { unembedded: true } : {}
11869
12191
  };
11870
12192
  }
11871
12193
  /**
@@ -12070,7 +12392,8 @@ window.__ModuleLoader__.load({
12070
12392
  const client = new MnemonClient(connection, sessionId);
12071
12393
  (target === "agent" ? client.supervise(content, messageId).then((result) => ({
12072
12394
  action: result.action,
12073
- summary: result.summary
12395
+ summary: result.summary,
12396
+ unembedded: (result.unembedded ?? []).length > 0
12074
12397
  })) : saveDirectly(client, target, selected?.label ?? target, content, t)).then((result) => ({
12075
12398
  content,
12076
12399
  destination: target,
@@ -12204,6 +12527,7 @@ window.__ModuleLoader__.load({
12204
12527
  action: outcome.action,
12205
12528
  summary: receiptSummary,
12206
12529
  error: outcome.error,
12530
+ unembedded: outcome.unembedded,
12207
12531
  onView: viewMemory,
12208
12532
  ...isRuntimePlace(outcome.destination) ? { viewLabel: t("receipt.viewRuntime") } : {}
12209
12533
  })
@@ -14411,145 +14735,6 @@ window.__ModuleLoader__.load({
14411
14735
  });
14412
14736
  }
14413
14737
  //#endregion
14414
- //#region \0dsh-mnemon-css:/home/runner/work/dsh-mnemon/dsh-mnemon/src/client/MnemonWorkspace.module.css.mjs
14415
- const css = ".NS3bAW_workspacePanel{box-sizing:border-box;background:var(--dsw-alias-bg-overlay,var(--dsw-alias-bg-base));pointer-events:auto;min-width:0;min-height:0;display:flex;position:fixed;overflow:hidden}.NS3bAW_workspacePanel>*{flex:auto;width:100%;min-width:0}.NS3bAW_betterSidebarSeat,.NS3bAW_nativeWorkspace{flex:auto;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.NS3bAW_betterSidebarSeat>*,.NS3bAW_nativeWorkspace>*{flex:auto;min-width:0}.NS3bAW_nativeWorkspace{z-index:2;position:relative}.NS3bAW_nativeWorkspace[data-dsh-mnemon-main-seat]{box-sizing:border-box;padding-block-start:var(--dsh-frame-top-clearance,0px)}.NS3bAW_windowDragBand{height:var(--dsh-frame-top-clearance,0px);position:absolute;inset:0 0 auto}.NS3bAW_nativeWorkspace[hidden]{display:none}.NS3bAW_entry{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:calc(100% - 4px);min-height:36px;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin:0 2px;padding:7px 8px;line-height:22px;display:flex}.NS3bAW_entry:hover,.NS3bAW_entry[data-active]{background:var(--dsw-alias-interactive-bg-hover)}.NS3bAW_entry:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.NS3bAW_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.NS3bAW_entryIcon svg{width:16px;height:16px;display:block}.NS3bAW_entryLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}[data-sidebar-collapsed] .NS3bAW_entry{justify-content:center;width:36px;height:36px;min-height:36px;margin:0 auto 12px;padding:0}[data-sidebar-collapsed] .NS3bAW_entryIcon svg{width:18px;height:18px}[data-sidebar-collapsed] .NS3bAW_entryLabel{display:none}";
14416
- const tagId = "dsh-mnemon/src/client/MnemonWorkspace.module.css";
14417
- if (typeof document !== "undefined") {
14418
- let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]");
14419
- if (!tag) {
14420
- tag = document.createElement("style");
14421
- tag.dataset.pluginCss = tagId;
14422
- document.head.appendChild(tag);
14423
- }
14424
- if (tag.textContent !== css) tag.textContent = css;
14425
- }
14426
- var MnemonWorkspace_module_css_default = {
14427
- "betterSidebarSeat": "NS3bAW_betterSidebarSeat",
14428
- "entry": "NS3bAW_entry",
14429
- "entryIcon": "NS3bAW_entryIcon",
14430
- "entryLabel": "NS3bAW_entryLabel",
14431
- "nativeWorkspace": "NS3bAW_nativeWorkspace",
14432
- "windowDragBand": "NS3bAW_windowDragBand",
14433
- "workspacePanel": "NS3bAW_workspacePanel"
14434
- };
14435
- //#endregion
14436
- //#region src/client/sidebar-entry.ts
14437
- const FAMILY_SELECTOR = "[data-dsh-taskboard-entry], [data-dsh-ssh-entry], [data-dsh-mnemon-entry]";
14438
- function sidebarRoot() {
14439
- const column = document.querySelector("[data-pane=\"sidebar\"], [class*=\"sidebarCol\"], .dshDesktopUpstreamSidebar");
14440
- if (column === null) return void 0;
14441
- return column.querySelector("[class*=\"logoRow\"]")?.parentElement ?? column.firstElementChild;
14442
- }
14443
- function newSessionButton(root) {
14444
- const nested = root.querySelector("button[class*=\"newSession\"]");
14445
- if (nested !== null) return nested;
14446
- for (const child of root.children) if (child.tagName === "BUTTON") return child;
14447
- }
14448
- function createEntry(controller) {
14449
- const entry = document.createElement("button");
14450
- entry.type = "button";
14451
- entry.dataset.dshMnemonEntry = "";
14452
- entry.dataset.dshPlugin = "dsh-mnemon";
14453
- entry.dataset.dshPart = "sidebar-entry";
14454
- entry.className = MnemonWorkspace_module_css_default.entry ?? "";
14455
- const icon = document.createElement("span");
14456
- icon.className = MnemonWorkspace_module_css_default.entryIcon ?? "";
14457
- icon.append(createMemoryIcon(16));
14458
- const label = document.createElement("span");
14459
- label.className = MnemonWorkspace_module_css_default.entryLabel ?? "";
14460
- entry.append(icon, label);
14461
- entry.addEventListener("click", () => {
14462
- controller.open();
14463
- });
14464
- return {
14465
- entry,
14466
- label
14467
- };
14468
- }
14469
- function placeEntry(root, entry) {
14470
- const button = newSessionButton(root);
14471
- if (button === void 0) return false;
14472
- const row = button.closest("[class*=\"logoRow\"]");
14473
- const base = row !== null && row.parentElement === root ? row : button;
14474
- const parent = base.parentElement ?? root;
14475
- if (entry.parentElement === parent) return true;
14476
- const anchor = Array.from(parent.children).filter((element) => element instanceof HTMLElement && element.matches(FAMILY_SELECTOR)).at(-1)?.nextElementSibling ?? base.nextElementSibling;
14477
- parent.insertBefore(entry, anchor !== null && anchor.parentElement === parent ? anchor : null);
14478
- return true;
14479
- }
14480
- /** Mount a self-healing official-style entry under the New Session row. */
14481
- function mountMnemonSidebarEntry(controller, t, subscribeLocale) {
14482
- const { entry, label } = createEntry(controller);
14483
- let root;
14484
- let placed = false;
14485
- const syncLabel = () => {
14486
- const text = t("tab.label");
14487
- if (entry.getAttribute("aria-label") !== text) entry.setAttribute("aria-label", text);
14488
- if (entry.title !== text) entry.title = text;
14489
- if (label.textContent !== text) label.textContent = text;
14490
- };
14491
- const rootObserver = new MutationObserver(() => {
14492
- if (root === void 0 || !root.isConnected) {
14493
- placed = false;
14494
- tryPlace();
14495
- return;
14496
- }
14497
- if (!root.contains(entry)) placed = placeEntry(root, entry);
14498
- });
14499
- const tryPlace = () => {
14500
- syncLabel();
14501
- if (root !== void 0 && !root.isConnected) {
14502
- rootObserver.disconnect();
14503
- root = void 0;
14504
- placed = false;
14505
- }
14506
- if (placed && document.body.contains(entry)) return;
14507
- if (placed) {
14508
- rootObserver.disconnect();
14509
- root = void 0;
14510
- placed = false;
14511
- }
14512
- root ??= sidebarRoot();
14513
- if (root === void 0) return;
14514
- placed = placeEntry(root, entry);
14515
- if (placed) rootObserver.observe(root, {
14516
- childList: true,
14517
- subtree: true
14518
- });
14519
- };
14520
- const waitObserver = new MutationObserver(tryPlace);
14521
- waitObserver.observe(document.body, {
14522
- childList: true,
14523
- subtree: true
14524
- });
14525
- const syncActive = () => {
14526
- if (controller.getSnapshot().open) {
14527
- entry.dataset.active = "true";
14528
- entry.setAttribute("aria-current", "page");
14529
- } else {
14530
- delete entry.dataset.active;
14531
- entry.removeAttribute("aria-current");
14532
- }
14533
- };
14534
- const unsubscribe = controller.subscribe(syncActive);
14535
- const unsubscribeLocale = subscribeLocale(syncLabel);
14536
- const dispose = () => {
14537
- waitObserver.disconnect();
14538
- rootObserver.disconnect();
14539
- unsubscribe();
14540
- unsubscribeLocale();
14541
- entry.remove();
14542
- };
14543
- try {
14544
- syncActive();
14545
- tryPlace();
14546
- return dispose;
14547
- } catch (error) {
14548
- dispose();
14549
- throw error;
14550
- }
14551
- }
14552
- //#endregion
14553
14738
  //#region src/client/workspace-controller.ts
14554
14739
  /** Small framework-neutral state holder shared by the sidebar row and panel. */
14555
14740
  var MnemonWorkspaceController = class {
@@ -14575,6 +14760,28 @@ window.__ModuleLoader__.load({
14575
14760
  }
14576
14761
  };
14577
14762
  //#endregion
14763
+ //#region \0dsh-mnemon-css:/home/runner/work/dsh-mnemon/dsh-mnemon/src/client/MnemonWorkspace.module.css.mjs
14764
+ const css = ".NS3bAW_workspacePanel{box-sizing:border-box;background:var(--dsw-alias-bg-overlay,var(--dsw-alias-bg-base));pointer-events:auto;min-width:0;min-height:0;display:flex;position:fixed;overflow:hidden}.NS3bAW_workspacePanel>*{flex:auto;width:100%;min-width:0}.NS3bAW_betterSidebarSeat,.NS3bAW_nativeWorkspace{flex:auto;width:100%;min-width:0;height:100%;min-height:0;display:flex;overflow:hidden}.NS3bAW_betterSidebarSeat>*,.NS3bAW_nativeWorkspace>*{flex:auto;min-width:0}.NS3bAW_nativeWorkspace{z-index:2;position:relative}.NS3bAW_nativeWorkspace[data-dsh-mnemon-main-seat]{box-sizing:border-box;padding-block-start:var(--dsh-frame-top-clearance,0px)}.NS3bAW_windowDragBand{height:var(--dsh-frame-top-clearance,0px);position:absolute;inset:0 0 auto}.NS3bAW_nativeWorkspace[hidden]{display:none}.NS3bAW_entry{box-sizing:border-box;border-radius:var(--dsw-radius-md);width:calc(100% - 4px);min-height:36px;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;margin:0 2px;padding:7px 8px;line-height:22px;display:flex}.NS3bAW_entry:hover,.NS3bAW_entry[data-active]{background:var(--dsw-alias-interactive-bg-hover)}.NS3bAW_entry:focus-visible{outline:var(--dsw-focus-ring-width) solid var(--dsw-focus-ring-color,var(--dsw-alias-state-business-primary));outline-offset:-2px}.NS3bAW_entryIcon{flex:none;justify-content:center;align-items:center;display:inline-flex}.NS3bAW_entryIcon svg{width:16px;height:16px;display:block}.NS3bAW_entryLabel{text-overflow:ellipsis;min-width:0;overflow:hidden}[data-sidebar-collapsed] .NS3bAW_entry{justify-content:center;width:36px;height:36px;min-height:36px;margin:0 auto 12px;padding:0}[data-sidebar-collapsed] .NS3bAW_entryIcon svg{width:18px;height:18px}[data-sidebar-collapsed] .NS3bAW_entryLabel{display:none}";
14765
+ const tagId = "dsh-mnemon/src/client/MnemonWorkspace.module.css";
14766
+ if (typeof document !== "undefined") {
14767
+ let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]");
14768
+ if (!tag) {
14769
+ tag = document.createElement("style");
14770
+ tag.dataset.pluginCss = tagId;
14771
+ document.head.appendChild(tag);
14772
+ }
14773
+ if (tag.textContent !== css) tag.textContent = css;
14774
+ }
14775
+ var MnemonWorkspace_module_css_default = {
14776
+ "betterSidebarSeat": "NS3bAW_betterSidebarSeat",
14777
+ "entry": "NS3bAW_entry",
14778
+ "entryIcon": "NS3bAW_entryIcon",
14779
+ "entryLabel": "NS3bAW_entryLabel",
14780
+ "nativeWorkspace": "NS3bAW_nativeWorkspace",
14781
+ "windowDragBand": "NS3bAW_windowDragBand",
14782
+ "workspacePanel": "NS3bAW_workspacePanel"
14783
+ };
14784
+ //#endregion
14578
14785
  //#region src/client/workspace-mount.tsx
14579
14786
  const ACTIVE_ATTR = "data-dsh-mnemon-active";
14580
14787
  const TASKBOARD_ACTIVE_ATTR = "data-dsh-taskboard-active";
@@ -14882,6 +15089,123 @@ window.__ModuleLoader__.load({
14882
15089
  }
14883
15090
  };
14884
15091
  //#endregion
15092
+ //#region src/client/sidebar-entry.ts
15093
+ const FAMILY_SELECTOR = "[data-dsh-taskboard-entry], [data-dsh-ssh-entry], [data-dsh-mnemon-entry]";
15094
+ function sidebarRoot() {
15095
+ const column = document.querySelector("[data-pane=\"sidebar\"], [class*=\"sidebarCol\"], .dshDesktopUpstreamSidebar");
15096
+ if (column === null) return void 0;
15097
+ return column.querySelector("[class*=\"logoRow\"]")?.parentElement ?? column.firstElementChild;
15098
+ }
15099
+ function newSessionButton(root) {
15100
+ const nested = root.querySelector("button[class*=\"newSession\"]");
15101
+ if (nested !== null) return nested;
15102
+ for (const child of root.children) if (child.tagName === "BUTTON") return child;
15103
+ }
15104
+ function createEntry(controller) {
15105
+ const entry = document.createElement("button");
15106
+ entry.type = "button";
15107
+ entry.dataset.dshMnemonEntry = "";
15108
+ entry.dataset.dshPlugin = "dsh-mnemon";
15109
+ entry.dataset.dshPart = "sidebar-entry";
15110
+ entry.className = MnemonWorkspace_module_css_default.entry ?? "";
15111
+ const icon = document.createElement("span");
15112
+ icon.className = MnemonWorkspace_module_css_default.entryIcon ?? "";
15113
+ icon.append(createMemoryIcon(16));
15114
+ const label = document.createElement("span");
15115
+ label.className = MnemonWorkspace_module_css_default.entryLabel ?? "";
15116
+ entry.append(icon, label);
15117
+ entry.addEventListener("click", () => {
15118
+ controller.open();
15119
+ });
15120
+ return {
15121
+ entry,
15122
+ label
15123
+ };
15124
+ }
15125
+ function placeEntry(root, entry) {
15126
+ const button = newSessionButton(root);
15127
+ if (button === void 0) return false;
15128
+ const row = button.closest("[class*=\"logoRow\"]");
15129
+ const base = row !== null && row.parentElement === root ? row : button;
15130
+ const parent = base.parentElement ?? root;
15131
+ if (entry.parentElement === parent) return true;
15132
+ const anchor = Array.from(parent.children).filter((element) => element instanceof HTMLElement && element.matches(FAMILY_SELECTOR)).at(-1)?.nextElementSibling ?? base.nextElementSibling;
15133
+ parent.insertBefore(entry, anchor !== null && anchor.parentElement === parent ? anchor : null);
15134
+ return true;
15135
+ }
15136
+ /** Mount a self-healing official-style entry under the New Session row. */
15137
+ function mountMnemonSidebarEntry(controller, t, subscribeLocale) {
15138
+ const { entry, label } = createEntry(controller);
15139
+ let root;
15140
+ let placed = false;
15141
+ const syncLabel = () => {
15142
+ const text = t("tab.label");
15143
+ if (entry.getAttribute("aria-label") !== text) entry.setAttribute("aria-label", text);
15144
+ if (entry.title !== text) entry.title = text;
15145
+ if (label.textContent !== text) label.textContent = text;
15146
+ };
15147
+ const rootObserver = new MutationObserver(() => {
15148
+ if (root === void 0 || !root.isConnected) {
15149
+ placed = false;
15150
+ tryPlace();
15151
+ return;
15152
+ }
15153
+ if (!root.contains(entry)) placed = placeEntry(root, entry);
15154
+ });
15155
+ const tryPlace = () => {
15156
+ syncLabel();
15157
+ if (root !== void 0 && !root.isConnected) {
15158
+ rootObserver.disconnect();
15159
+ root = void 0;
15160
+ placed = false;
15161
+ }
15162
+ if (placed && document.body.contains(entry)) return;
15163
+ if (placed) {
15164
+ rootObserver.disconnect();
15165
+ root = void 0;
15166
+ placed = false;
15167
+ }
15168
+ root ??= sidebarRoot();
15169
+ if (root === void 0) return;
15170
+ placed = placeEntry(root, entry);
15171
+ if (placed) rootObserver.observe(root, {
15172
+ childList: true,
15173
+ subtree: true
15174
+ });
15175
+ };
15176
+ const waitObserver = new MutationObserver(tryPlace);
15177
+ waitObserver.observe(document.body, {
15178
+ childList: true,
15179
+ subtree: true
15180
+ });
15181
+ const syncActive = () => {
15182
+ if (controller.getSnapshot().open) {
15183
+ entry.dataset.active = "true";
15184
+ entry.setAttribute("aria-current", "page");
15185
+ } else {
15186
+ delete entry.dataset.active;
15187
+ entry.removeAttribute("aria-current");
15188
+ }
15189
+ };
15190
+ const unsubscribe = controller.subscribe(syncActive);
15191
+ const unsubscribeLocale = subscribeLocale(syncLabel);
15192
+ const dispose = () => {
15193
+ waitObserver.disconnect();
15194
+ rootObserver.disconnect();
15195
+ unsubscribe();
15196
+ unsubscribeLocale();
15197
+ entry.remove();
15198
+ };
15199
+ try {
15200
+ syncActive();
15201
+ tryPlace();
15202
+ return dispose;
15203
+ } catch (error) {
15204
+ dispose();
15205
+ throw error;
15206
+ }
15207
+ }
15208
+ //#endregion
14885
15209
  //#region src/client/native-sidebar.tsx
14886
15210
  const MNEMON_MAIN_PANEL_ID = "mnemon";
14887
15211
  const ICON_SELECTOR = "[data-dsh-plugin=\"dsh-mnemon\"][data-dsh-part=\"sidebar-icon\"]";