dsh-mnemon-source-runtime 0.5.9 → 0.5.10

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
@@ -104,7 +104,7 @@ window.__ModuleLoader__.load({
104
104
  };
105
105
  //#endregion
106
106
  //#region \0source-css:/home/runner/work/dsh-mnemon/dsh-mnemon/plugins/dsh-mnemon-source-runtime/presentation/page.module.css.mjs
107
- const css$2 = ".IIa07q_runtimeComposer{border:1px solid var(--mn-line);background:var(--mn-layer-1);background:linear-gradient(135deg, color-mix(in srgb, var(--mn-accent) 5%, var(--mn-layer-1)), var(--mn-layer-1) 55%);border-radius:12px;margin-bottom:13px;padding:15px}.IIa07q_runtimeComposerHeading{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:11px;display:flex}.IIa07q_runtimeComposerHeading h3{margin:0 0 2px;font-size:14px}.IIa07q_runtimeComposerHeading p{color:var(--mn-muted);margin:0;font-size:10px}.IIa07q_runtimeComposerHeading>span{color:var(--mn-accent);background:color-mix(in srgb, var(--mn-accent) 9%, transparent);font:650 9px var(--mn-code);border-radius:999px;flex:none;padding:4px 8px}.IIa07q_runtimeComposer>textarea,.IIa07q_runtimeEntry textarea{resize:vertical;border:1px solid var(--mn-line);width:100%;color:var(--mn-text);background:var(--mn-input);border-radius:9px;outline:0;padding:10px 11px;line-height:1.6}.IIa07q_runtimeComposer>textarea:focus,.IIa07q_runtimeEntry textarea:focus{border-color:var(--mn-accent)}.IIa07q_runtimeComposerActions{justify-content:flex-end;align-items:flex-end;gap:9px;margin-top:10px;display:flex}.IIa07q_runtimeComposerActions label{color:var(--mn-faint);gap:4px;font-size:9px;display:grid}.IIa07q_runtimeComposerActions select,.IIa07q_runtimeEntry select{border:1px solid var(--mn-line);background:var(--mn-input);border-radius:8px;outline:0;min-width:135px;height:34px;padding:0 8px}.IIa07q_runtimeReadOnly{border:1px solid color-mix(in srgb, var(--mn-success) 28%, var(--mn-line));color:var(--mn-muted);background:color-mix(in srgb, var(--mn-success) 6%, var(--mn-layer-1));border-color:var(--mn-line);background:var(--mn-layer-1);border-radius:9px;margin-bottom:13px;padding:9px 12px;font-size:11px}.IIa07q_runtimeSummaryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:10px;display:grid}.IIa07q_runtimeSummaryCard{border:1px solid var(--mn-line);background:var(--mn-layer-1);border-radius:11px;min-width:0}.IIa07q_runtimeBrowser{border:1px solid var(--mn-line);background:var(--mn-layer-1);border-radius:11px;overflow:hidden}.IIa07q_runtimeBrowserToolbar{border-bottom:1px solid var(--mn-line);justify-content:space-between;align-items:center;gap:12px;padding:10px;display:flex}.IIa07q_runtimeScopeFilter{flex-wrap:wrap;align-items:center;gap:3px;display:flex}.IIa07q_runtimeScopeFilter button{min-height:32px;color:var(--mn-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;padding:0 10px}.IIa07q_runtimeScopeFilter button:hover{background:var(--mn-hover)}.IIa07q_runtimeScopeFilter button[data-active]{border-color:var(--mn-line);color:var(--mn-text);background:var(--mn-layer-2)}.IIa07q_runtimeScopeFilter b{color:var(--mn-faint);font:600 10px var(--mn-code);margin-left:4px}.IIa07q_runtimeFilterQuery{border:1px solid var(--mn-line);background:var(--mn-input);border-radius:8px;align-items:center;gap:7px;width:min(320px,42%);min-width:210px;padding:0 9px;display:flex}.IIa07q_runtimeFilterQuery>span{color:var(--mn-faint)}.IIa07q_runtimeFilterQuery input{width:100%;min-width:0;height:32px;color:var(--mn-text);background:0 0;border:0;outline:0}.IIa07q_runtimeUnifiedList{background:color-mix(in srgb, var(--mn-layer-2) 30%, var(--mn-layer-1));grid-template-columns:1fr;gap:8px;padding:10px;display:grid}.IIa07q_runtimeEntryBadges{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.IIa07q_runtimeEntryMeta .IIa07q_runtimeEntryTarget{color:var(--mn-accent);background:color-mix(in srgb, var(--mn-accent) 8%, var(--mn-layer-2));font-family:var(--mn-code)}.IIa07q_runtimeEntryMeta .IIa07q_runtimeEntryBranch{text-overflow:ellipsis;white-space:nowrap;max-width:140px;color:var(--mn-accent);background:color-mix(in srgb, var(--mn-accent) 8%, var(--mn-layer-2));font-family:var(--mn-code);overflow:hidden}.IIa07q_runtimeComposerBranch{color:var(--mn-faint);gap:4px;font-size:9px;display:grid}.IIa07q_runtimeComposerBranch input{border:1px solid var(--mn-line);width:100%;color:var(--mn-text);background:var(--mn-input);border-radius:8px;outline:0;padding:7px 9px;font-size:12px}.IIa07q_runtimeComposerBranch input:focus{border-color:var(--mn-accent)}.IIa07q_bodyEditBranch{color:var(--mn-faint);gap:4px;font-size:9px;display:grid}.IIa07q_bodyEditBranch input{border:1px solid var(--mn-line);width:100%;color:var(--mn-text);background:var(--mn-input);border-radius:8px;outline:0;padding:7px 9px;font-size:12px}.IIa07q_bodyEditBranch input:focus{border-color:var(--mn-accent)}.IIa07q_bodyEditBranch small{color:var(--mn-faint);font-size:9px}.IIa07q_runtimeTargetHeader{justify-content:space-between;align-items:center;gap:14px;padding:14px 15px 9px;display:flex}.IIa07q_runtimeTargetHeader>div{gap:1px;display:grid}.IIa07q_runtimeTargetHeader span{color:var(--mn-faint);font:650 9px var(--mn-code);letter-spacing:.08em}.IIa07q_runtimeTargetHeader h3{margin:0;font-size:15px}.IIa07q_runtimeTargetHeader>strong{min-width:28px;height:28px;color:var(--mn-accent);background:color-mix(in srgb, var(--mn-accent) 9%, transparent);font:650 11px var(--mn-code);border-radius:8px;place-items:center;display:grid}.IIa07q_capacityLine{align-items:center;gap:9px;padding:0 15px;display:flex}.IIa07q_capacityLine>div{background:var(--mn-layer-2);border-radius:999px;flex:1;height:4px;overflow:hidden}.IIa07q_capacityLine i{border-radius:inherit;background:var(--mn-success);height:100%;transition:width .25s;display:block}.IIa07q_capacityLine>span{min-width:88px;color:var(--mn-faint);font:9px var(--mn-code);text-align:right}.IIa07q_runtimeTargetDescription{min-height:31px;color:var(--mn-muted);margin:8px 15px 12px;font-size:10px}.IIa07q_runtimeEntry{--mn-provider-color:var(--mn-accent);border:1px solid var(--mn-line);background:linear-gradient(90deg, color-mix(in srgb, var(--mn-provider-color) 5%, var(--mn-layer-1)), var(--mn-layer-1) 34%);box-shadow:inset 3px 0 0 color-mix(in srgb, var(--mn-provider-color) 68%, transparent);border-radius:8px;padding:11px 12px 10px;position:relative}.IIa07q_runtimeEntry[data-importance=critical]{--mn-provider-color:var(--mn-priority)}.IIa07q_runtimeEntry[data-importance=low]{--mn-provider-color:var(--mn-faint)}.IIa07q_runtimeEntryMeta{justify-content:space-between;align-items:center;gap:12px;display:flex}.IIa07q_runtimeEntryMeta>span,.IIa07q_runtimeEntryBadges>span{color:var(--mn-muted);background:var(--mn-layer-2);border-radius:999px;padding:2px 6px;font-size:9px}.IIa07q_runtimeEntry[data-importance=critical] .IIa07q_runtimeEntryMeta>span,.IIa07q_runtimeEntry[data-importance=critical] .IIa07q_runtimeEntryBadges>span:not(.IIa07q_runtimeEntryTarget){color:var(--mn-priority);background:color-mix(in srgb, var(--mn-priority) 9%, transparent)}.IIa07q_runtimeEntryMeta time{color:var(--mn-faint);font:8px var(--mn-code);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.IIa07q_runtimeEntry>p{white-space:pre-wrap;overflow-wrap:anywhere;min-height:42px;margin:9px 0;font-size:12px;line-height:1.6}.IIa07q_runtimeEntry>select{margin-top:7px}.IIa07q_runtimeEntry footer{border-top:1px solid var(--mn-line);justify-content:flex-end;align-items:center;gap:4px;min-height:30px;margin-top:7px;padding-top:7px;display:flex}.IIa07q_runtimeEntry footer>span{color:var(--mn-danger);margin-right:auto;font-size:10px}.IIa07q_runtimeEmpty{min-height:126px;color:var(--mn-faint);text-align:center;align-content:center;place-items:center;gap:5px;display:grid}.IIa07q_runtimeEmpty>span{font:24px var(--mn-code);opacity:.65}.IIa07q_runtimeEmpty p{margin:0;font-size:10px}@media (width<=1000px){.IIa07q_runtimeSummaryGrid{grid-template-columns:1fr}}@media (width<=760px){.IIa07q_runtimeComposerHeading,.IIa07q_runtimeComposerActions{flex-direction:column;align-items:stretch}.IIa07q_runtimeComposerActions select,.IIa07q_runtimeComposerActions button{width:100%}.IIa07q_runtimeBrowserToolbar{flex-direction:column;align-items:stretch}.IIa07q_runtimeFilterQuery{width:100%;min-width:0}}";
107
+ const css$2 = ".IIa07q_runtimeComposer{border:.5px solid var(--mn-card-line);border-radius:var(--dsw-radius-lg);margin-bottom:12px;padding:16px}.IIa07q_runtimeComposerHeading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.IIa07q_runtimeComposerHeading h3{margin:0 0 2px;font-size:14px;font-weight:500;line-height:22px}.IIa07q_runtimeComposerHeading p{color:var(--mn-faint);margin:0;font-size:12px;line-height:18px}.IIa07q_runtimeComposerHeading>span{color:var(--mn-muted);background:var(--mn-fill);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.IIa07q_runtimeComposer>textarea,.IIa07q_runtimeEntry textarea{resize:vertical;border:.5px solid var(--mn-field-line);border-radius:var(--dsw-radius-md);width:100%;color:var(--mn-text);background:var(--mn-input);outline:0;padding:8px 10px;font-size:13px;line-height:20px}.IIa07q_runtimeComposer>textarea:focus,.IIa07q_runtimeEntry textarea:focus{border-color:var(--mn-accent)}.IIa07q_runtimeComposerActions{justify-content:flex-end;align-items:flex-end;gap:8px;margin-top:12px;display:flex}.IIa07q_runtimeComposerActions label{color:var(--mn-muted);gap:6px;font-size:12px;font-weight:500;line-height:18px;display:grid}.IIa07q_runtimeComposerActions select,.IIa07q_runtimeEntry select{border:.5px solid var(--mn-field-line);border-radius:var(--dsw-radius-md);min-width:136px;height:32px;color:var(--mn-text);background:var(--mn-input);outline:0;padding:0 10px;font-size:13px}.IIa07q_runtimeReadOnly{border-radius:var(--dsw-radius-md);color:var(--mn-muted);background:var(--mn-fill);margin-bottom:12px;padding:8px 12px;font-size:12px;line-height:18px}.IIa07q_runtimeSummaryGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px;display:grid}.IIa07q_runtimeSummaryCard{border:.5px solid var(--mn-card-line);border-radius:var(--dsw-radius-lg);min-width:0}.IIa07q_runtimeBrowser{border:.5px solid var(--mn-card-line);border-radius:var(--dsw-radius-lg);overflow:hidden}.IIa07q_runtimeBrowserToolbar{border-bottom:.5px solid var(--mn-line);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.IIa07q_runtimeScopeFilter{border-radius:var(--dsw-radius-md);background:var(--mn-hover);flex-wrap:wrap;align-items:center;gap:2px;padding:3px;display:inline-flex}.IIa07q_runtimeScopeFilter button{border-radius:var(--dsw-radius-sm);min-height:28px;color:var(--mn-muted);cursor:pointer;background:0 0;border:0;padding:0 12px;font-size:13px;font-weight:500;line-height:20px}.IIa07q_runtimeScopeFilter button:hover{color:var(--mn-text)}.IIa07q_runtimeScopeFilter button[data-active]{color:var(--mn-text);background:var(--mn-layer-1);box-shadow:var(--dsw-elevation-soft)}.IIa07q_runtimeScopeFilter b{color:var(--mn-faint);font-variant-numeric:tabular-nums;margin-left:6px;font-size:12px;font-weight:400}.IIa07q_runtimeFilterQuery{border:.5px solid var(--mn-field-line);border-radius:var(--dsw-radius-md);background:var(--mn-input);align-items:center;gap:6px;width:min(320px,42%);min-width:210px;padding:0 10px;display:flex}.IIa07q_runtimeFilterQuery:focus-within{border-color:var(--mn-accent)}.IIa07q_runtimeFilterQuery>span{color:var(--mn-faint)}.IIa07q_runtimeFilterQuery input{width:100%;min-width:0;height:32px;color:var(--mn-text);background:0 0;border:0;outline:0;font-size:13px}.IIa07q_runtimeFilterQuery input::placeholder{color:var(--dsw-alias-label-dimmed)}.IIa07q_runtimeUnifiedList{grid-template-columns:1fr;gap:8px;padding:12px;display:grid}.IIa07q_runtimeEntryBadges{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.IIa07q_runtimeEntryMeta .IIa07q_runtimeEntryTarget{color:var(--mn-accent);background:color-mix(in srgb, var(--mn-accent) 10%, transparent)}.IIa07q_runtimeEntryMeta .IIa07q_runtimeEntryBranch{text-overflow:ellipsis;white-space:nowrap;max-width:140px;color:var(--mn-muted);background:var(--mn-fill);font-family:var(--mn-code);overflow:hidden}.IIa07q_runtimeComposerBranch{color:var(--mn-muted);gap:6px;font-size:12px;font-weight:500;line-height:18px;display:grid}.IIa07q_runtimeComposerBranch input{border:.5px solid var(--mn-field-line);border-radius:var(--dsw-radius-md);width:100%;height:32px;color:var(--mn-text);background:var(--mn-input);outline:0;padding:0 10px;font-size:13px;font-weight:400}.IIa07q_runtimeComposerBranch input:focus{border-color:var(--mn-accent)}.IIa07q_bodyEditBranch{color:var(--mn-muted);gap:6px;font-size:12px;font-weight:500;line-height:18px;display:grid}.IIa07q_bodyEditBranch input{border:.5px solid var(--mn-field-line);border-radius:var(--dsw-radius-md);width:100%;height:32px;color:var(--mn-text);background:var(--mn-input);outline:0;padding:0 10px;font-size:13px;font-weight:400}.IIa07q_bodyEditBranch input:focus{border-color:var(--mn-accent)}.IIa07q_bodyEditBranch small{color:var(--mn-faint);font-size:12px;font-weight:400}.IIa07q_runtimeTargetHeader{justify-content:space-between;align-items:center;gap:16px;padding:14px 16px 8px;display:flex}.IIa07q_runtimeTargetHeader>div{gap:0;display:grid}.IIa07q_runtimeTargetHeader span{color:var(--mn-faint);font-family:var(--mn-code);font-size:11px;line-height:16px}.IIa07q_runtimeTargetHeader h3{margin:0;font-size:14px;font-weight:500;line-height:22px}.IIa07q_runtimeTargetHeader>strong{color:var(--mn-muted);background:var(--mn-fill);font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.IIa07q_capacityLine{align-items:center;gap:10px;padding:0 16px;display:flex}.IIa07q_capacityLine>div{background:var(--mn-fill);border-radius:999px;flex:1;height:4px;overflow:hidden}.IIa07q_capacityLine i{border-radius:inherit;background:var(--dsw-alias-brand-primary);height:100%;transition:width .25s;display:block}.IIa07q_capacityLine>span{min-width:88px;color:var(--mn-faint);text-align:right;font-variant-numeric:tabular-nums;font-size:11px}.IIa07q_runtimeTargetDescription{min-height:36px;color:var(--mn-faint);margin:8px 16px 14px;font-size:12px;line-height:18px}.IIa07q_runtimeEntry{--mn-provider-color:var(--mn-accent);border:.5px solid var(--mn-card-line);border-radius:var(--dsw-radius-md);padding:12px 14px 10px;position:relative}.IIa07q_runtimeEntry[data-importance=critical]{--mn-provider-color:var(--mn-priority)}.IIa07q_runtimeEntry[data-importance=low]{--mn-provider-color:var(--mn-faint)}.IIa07q_runtimeEntryMeta{justify-content:space-between;align-items:center;gap:12px;display:flex}.IIa07q_runtimeEntryMeta>span,.IIa07q_runtimeEntryBadges>span{color:var(--mn-muted);background:var(--mn-fill);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px}.IIa07q_runtimeEntry[data-importance=critical] .IIa07q_runtimeEntryMeta>span,.IIa07q_runtimeEntry[data-importance=critical] .IIa07q_runtimeEntryBadges>span:not(.IIa07q_runtimeEntryTarget){color:var(--mn-warn);background:color-mix(in srgb, var(--mn-warn) 12%, transparent)}.IIa07q_runtimeEntryMeta time{color:var(--mn-faint);text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;overflow:hidden}.IIa07q_runtimeEntry>p{white-space:pre-wrap;overflow-wrap:anywhere;min-height:40px;margin:8px 0;font-size:14px;line-height:22px}.IIa07q_runtimeEntry>select{margin-top:8px}.IIa07q_runtimeEntry footer{border-top:.5px solid var(--mn-line);justify-content:flex-end;align-items:center;gap:8px;min-height:32px;margin-top:8px;padding-top:8px;display:flex}.IIa07q_runtimeEntry footer>span{color:var(--mn-danger);margin-right:auto;font-size:12px}.IIa07q_runtimeEmpty{min-height:128px;color:var(--mn-faint);text-align:center;align-content:center;place-items:center;gap:6px;display:grid}.IIa07q_runtimeEmpty>span{font-size:20px;line-height:1}.IIa07q_runtimeEmpty p{margin:0;font-size:13px;line-height:20px}@media (width<=1000px){.IIa07q_runtimeSummaryGrid{grid-template-columns:1fr}}@media (width<=760px){.IIa07q_runtimeComposerHeading,.IIa07q_runtimeComposerActions{flex-direction:column;align-items:stretch}.IIa07q_runtimeComposerActions select,.IIa07q_runtimeComposerActions button{width:100%}.IIa07q_runtimeBrowserToolbar{flex-direction:column;align-items:stretch}.IIa07q_runtimeFilterQuery{width:100%;min-width:0}}";
108
108
  const id$1 = "dsh-mnemon-source-runtime/presentation/page.module.css";
109
109
  if (typeof document !== "undefined") {
110
110
  let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(id$1) + "]");
@@ -141,7 +141,7 @@ window.__ModuleLoader__.load({
141
141
  };
142
142
  //#endregion
143
143
  //#region \0source-css:/home/runner/work/dsh-mnemon/dsh-mnemon/plugins/dsh-mnemon-source-runtime/presentation/sidebar.module.css.mjs
144
- const css$1 = "._Bh55G_shell ._Bh55G_modal form[class*=runtimeComposer]{background:0 0;border:0;border-radius:0;margin:0;padding:0}._Bh55G_shell ._Bh55G_modal form[class*=runtimeComposer]>[class*=runtimeComposerHeading]{display:none}._Bh55G_shell [class*=runtimeComposerActions] label{color:var(--dsw-alias-label-secondary);gap:5px;font-size:12px;font-weight:500}._Bh55G_shell [class*=runtimeComposer]>textarea,._Bh55G_shell [class*=runtimeComposerActions] select,._Bh55G_shell [class*=runtimeEntry] select{border:1px solid var(--dsw-alias-border-l2);min-height:34px;color:var(--dsw-alias-label-primary);background:var(--dsw-specific-input-major);border-radius:8px;padding:7px 10px;font-size:13px;font-weight:400}._Bh55G_shell [class*=runtimeTargetDescription]{font-size:12px}._Bh55G_shell [class*=runtimeEntryMeta]>span,._Bh55G_shell [class*=runtimeEntryBadges]>span,._Bh55G_shell [class*=runtimeEntryMeta] time{font-size:11px}._Bh55G_shell [class*=runtimeEntry]>p{font-size:13px}._Bh55G_shell [class*=runtimeEntryBadges]>span{border:1px solid var(--dsw-alias-border-l1);min-height:22px;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-radius:999px;align-items:center;padding:0 8px;font-size:11px;font-weight:400;line-height:20px;display:inline-flex}._Bh55G_shell [class*=runtimeEntryBadges]>[class*=runtimeEntryTarget]{border-color:color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, var(--dsw-alias-border-l1));color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 7%, var(--dsw-alias-bg-layer-1));font-family:var(--dsw-font-family);font-weight:500}._Bh55G_shell [class*=runtimeEntry][data-importance=critical] [class*=runtimeEntryBadges]>span:last-child{border-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 24%, var(--dsw-alias-border-l1));color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1))}._Bh55G_shell [class*=runtimeEntry] footer{gap:6px}";
144
+ const css$1 = "._Bh55G_shell ._Bh55G_modal form[class*=runtimeComposer]{background:0 0;border:0;border-radius:0;margin:0;padding:0}._Bh55G_shell ._Bh55G_modal form[class*=runtimeComposer]>[class*=runtimeComposerHeading]{display:none}._Bh55G_shell [class*=runtimeEntryBadges]>span{border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:500;line-height:17px;display:inline-flex}._Bh55G_shell [class*=runtimeEntryBadges]>[class*=runtimeEntryTarget]{color:var(--dsw-alias-state-business-primary);background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent);font-family:var(--dsw-font-family)}._Bh55G_shell [class*=runtimeEntry][data-importance=critical] [class*=runtimeEntryBadges]>span:last-child{color:var(--dsw-alias-state-warn-primary);background:color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent)}";
145
145
  const id = "dsh-mnemon-source-runtime/presentation/sidebar.module.css";
146
146
  if (typeof document !== "undefined") {
147
147
  let tag = document.querySelector("style[data-plugin-css=" + JSON.stringify(id) + "]");
@@ -746,7 +746,7 @@ window.__ModuleLoader__.load({
746
746
  }
747
747
  const inject = ["slots", "locale"];
748
748
  function apply(ctx) {
749
- installRuntimeMemoryUI(ctx, ctx.locale?.bind("mnemon") ?? dsh_mnemon_client.translateEn);
749
+ installRuntimeMemoryUI(ctx, ctx.locale.bind("mnemon"));
750
750
  }
751
751
  //#endregion
752
752
  exports.RuntimePage = RuntimePage;
package/lib/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RUNTIME_ENTRY_DELIMITER, RUNTIME_MEMORY_LIMITS, RUNTIME_MEMORY_VERSION, RuntimeMemoryAction, RuntimeMemoryCompactedEntry, RuntimeMemoryEntry, RuntimeMemoryImportance, RuntimeMemoryLimits, RuntimeMemoryMaintenancePlan, RuntimeMemoryMutation, RuntimeMemoryMutationResult, RuntimeMemorySnapshot, RuntimeMemoryTarget, RuntimeMemoryTargetView, RuntimeMemoryUsage } from "./contracts.js";
2
- import z from "schemastery";
2
+ import z from "@deepseek-ai/schemastery";
3
3
  import { MemorySourceDefinition } from "dsh-mnemon/contracts";
4
4
  import { Context } from "@deepseek-ai/cordis";
5
5
  //#region src/config.d.ts
package/lib/index.js CHANGED
@@ -2,7 +2,7 @@ import { n as RUNTIME_MEMORY_LIMITS, o as MAX_RUNTIME_MEMORY_LIMIT_BYTES, t as R
2
2
  import { createMemoryMutationReceipt, defineMemoryPlugin, defineMemorySource, installMemory, memoryConfigurationDigest, memoryInputRecord, memoryInputStringArray, memoryInputText, truncateMemoryText } from "dsh-mnemon/extension-sdk";
3
3
  import { homedir } from "node:os";
4
4
  import { basename, isAbsolute, join } from "node:path";
5
- import z from "schemastery";
5
+ import z from "@deepseek-ai/schemastery";
6
6
  import { COMPOSABLE_MEMORY_API_VERSION } from "dsh-mnemon/contracts";
7
7
  import { execFileSync } from "node:child_process";
8
8
  import { closeSync, existsSync, mkdirSync, openSync, readFileSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
@@ -350,9 +350,6 @@ var RuntimeMemoryController = class RuntimeMemoryController {
350
350
  entries: [...global.entries.filter((entry) => entry.target === "user"), ...local.entries.filter((entry) => entry.target === "memory")]
351
351
  });
352
352
  }
353
- contextText(branch) {
354
- return this.contextProjection(branch).text;
355
- }
356
353
  /**
357
354
  * Read the exact Runtime revision and its prompt projection from each
358
355
  * configured authority root.
@@ -504,32 +501,6 @@ ${memory || "(empty)"}
504
501
  this.queue = operation.catch(() => void 0);
505
502
  return operation;
506
503
  }
507
- /** Apply an LLM-produced compaction only to the exact snapshot it reviewed. */
508
- compactTarget(expectedRevision, target, compacted, maxBytes) {
509
- if (target === "user" && this.userController !== void 0) return this.userController.compactTarget(expectedRevision, target, compacted, maxBytes).then(() => this.snapshot());
510
- const operation = this.queue.then(() => this.withLock(() => {
511
- const file = this.readSource();
512
- if (revision(file) !== expectedRevision) throw new RuntimeMemoryConflictError();
513
- const byteBudget = maxBytes ?? this.limits[target];
514
- if (!Number.isInteger(byteBudget) || byteBudget < 0 || byteBudget > this.limits[target]) throw new Error("compaction byte budget is invalid");
515
- const now = this.now().toISOString();
516
- const fitted = packCompactionCandidates(compactionCandidates(compacted, file.entries.filter((entry) => entry.target === target), target, now), target, byteBudget);
517
- const entries = [...file.entries.filter((entry) => entry.target !== target), ...fitted];
518
- const used = byteCount(entries, target);
519
- const limit = this.limits[target];
520
- if (used > limit) throw new RuntimeMemoryCapacityError(target, byteCount(file.entries, target), used, limit);
521
- this.persist({
522
- version: 1,
523
- entries
524
- });
525
- return this.snapshotUnlocked({
526
- version: 1,
527
- entries
528
- });
529
- }));
530
- this.queue = operation.catch(() => void 0);
531
- return this.userController === void 0 ? operation : operation.then(() => this.snapshot());
532
- }
533
504
  initialize() {
534
505
  mkdirSync(this.directory, {
535
506
  recursive: true,
@@ -891,8 +862,8 @@ const memoryPlugin = defineMemoryPlugin({
891
862
  "zh-CN": "运行时记忆"
892
863
  },
893
864
  description: {
894
- en: "Working context for the current runtime and task.",
895
- "zh-CN": "当前运行环境与任务使用的工作上下文。"
865
+ en: "Bounded, deterministic hot memory injected directly into every eligible turn.",
866
+ "zh-CN": "有界且确定的热记忆,在每个符合条件的回合中直接注入。"
896
867
  },
897
868
  roles: ["source"],
898
869
  provides: [{ id: "source" }, { id: "source.working-context" }]
package/locale/en.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "Runtime memory",
4
+ "description": "Bounded, deterministic hot memory injected directly into every eligible turn."
5
+ }
6
+ }
package/locale/zh.json ADDED
@@ -0,0 +1,6 @@
1
+ {
2
+ "meta": {
3
+ "title": "运行时记忆",
4
+ "description": "有界且确定的热记忆,在每个符合条件的回合中直接注入。"
5
+ }
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-mnemon-source-runtime",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "description": "Self-contained runtime Source for Composable View Memory.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -13,6 +13,7 @@
13
13
  "default": "./lib/index.js"
14
14
  },
15
15
  "./package.json": "./package.json",
16
+ "./locale/*.json": "./locale/*.json",
16
17
  "./client": {
17
18
  "types": "./lib/types/client.d.ts",
18
19
  "default": "./lib/client.js"
@@ -27,14 +28,12 @@
27
28
  },
28
29
  "files": [
29
30
  "lib",
31
+ "locale",
30
32
  "README.md",
31
33
  "presentation"
32
34
  ],
33
35
  "dsh": {
34
36
  "client": {
35
- "inject": [
36
- "slots"
37
- ],
38
37
  "platform": "web",
39
38
  "external": [
40
39
  "dsh-mnemon/client"
@@ -48,7 +47,7 @@
48
47
  "verify": "pnpm typecheck && pnpm test && pnpm build"
49
48
  },
50
49
  "dependencies": {
51
- "schemastery": "^3.18.0"
50
+ "@deepseek-ai/schemastery": "^3.18.4"
52
51
  },
53
52
  "peerDependencies": {
54
53
  "@deepseek-ai/cordis": "^4.0.1",
@@ -56,12 +55,12 @@
56
55
  "react": "^18.2.0"
57
56
  },
58
57
  "devDependencies": {
59
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.5-rc.1",
58
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.2",
60
59
  "@testing-library/react": "^16.3.0",
61
60
  "@types/node": "^22.0.0",
62
61
  "@types/react": "^18.3.0",
63
62
  "@types/react-dom": "^18.3.0",
64
- "dsh-mnemon": "^0.5.15",
63
+ "dsh-mnemon": "^0.5.17",
65
64
  "jsdom": "^26.0.0",
66
65
  "react": "^18.2.0",
67
66
  "react-dom": "^18.2.0",
@@ -84,7 +83,14 @@
84
83
  "micromark-util-classify-character": "^2.0.1",
85
84
  "micromark-util-sanitize-uri": "^2.0.1",
86
85
  "micromark-util-symbol": "^2.0.1",
87
- "shiki": "^4.3.1"
86
+ "shiki": "^4.3.1",
87
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.2",
88
+ "@deepseek-ai/dsh-util-code-language": "0.1.7-rc.2",
89
+ "@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.2",
90
+ "diff": "^9.0.0",
91
+ "immer": "^10.1.1",
92
+ "simple-icons": "16.31.0",
93
+ "zustand": "~4.4.7"
88
94
  },
89
95
  "peerDependenciesMeta": {
90
96
  "react": {
@@ -1,68 +1,70 @@
1
- .runtimeComposer { border: 1px solid var(--mn-line); border-radius: 12px; background: var(--mn-layer-1); }
2
- .runtimeComposer { margin-bottom: 13px; padding: 15px; background: linear-gradient(135deg, color-mix(in srgb, var(--mn-accent) 5%, var(--mn-layer-1)), var(--mn-layer-1) 55%); }
3
- .runtimeComposerHeading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 11px; }
4
- .runtimeComposerHeading h3 { margin: 0 0 2px; font-size: 14px; }
5
- .runtimeComposerHeading p { margin: 0; color: var(--mn-muted); font-size: 10px; }
6
- .runtimeComposerHeading > span { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 9%, transparent); font: 650 9px var(--mn-code); }
1
+ .runtimeComposer { border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-lg); }
2
+ .runtimeComposer { margin-bottom: 12px; padding: 16px; }
3
+ .runtimeComposerHeading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }
4
+ .runtimeComposerHeading h3 { margin: 0 0 2px; font-size: 14px; font-weight: 500; line-height: 22px; }
5
+ .runtimeComposerHeading p { margin: 0; color: var(--mn-faint); font-size: 12px; line-height: 18px; }
6
+ .runtimeComposerHeading > span { flex: 0 0 auto; padding: 1px 8px; border-radius: 999px; color: var(--mn-muted); background: var(--mn-fill); font-size: 11px; font-weight: 500; line-height: 17px; }
7
7
  .runtimeComposer > textarea,
8
- .runtimeEntry textarea { width: 100%; resize: vertical; border: 1px solid var(--mn-line); border-radius: 9px; outline: 0; padding: 10px 11px; color: var(--mn-text); background: var(--mn-input); line-height: 1.6; }
8
+ .runtimeEntry textarea { width: 100%; resize: vertical; border: .5px solid var(--mn-field-line); border-radius: var(--dsw-radius-md); outline: 0; padding: 8px 10px; color: var(--mn-text); background: var(--mn-input); font-size: 13px; line-height: 20px; }
9
9
  .runtimeComposer > textarea:focus,
10
10
  .runtimeEntry textarea:focus { border-color: var(--mn-accent); }
11
- .runtimeComposerActions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 9px; margin-top: 10px; }
12
- .runtimeComposerActions label { display: grid; gap: 4px; color: var(--mn-faint); font-size: 9px; }
11
+ .runtimeComposerActions { display: flex; align-items: flex-end; justify-content: flex-end; gap: 8px; margin-top: 12px; }
12
+ .runtimeComposerActions label { display: grid; gap: 6px; color: var(--mn-muted); font-size: 12px; font-weight: 500; line-height: 18px; }
13
13
  .runtimeComposerActions select,
14
- .runtimeEntry select { min-width: 135px; height: 34px; border: 1px solid var(--mn-line); border-radius: 8px; outline: 0; padding: 0 8px; background: var(--mn-input); }
15
- .runtimeReadOnly { margin-bottom: 13px; padding: 9px 12px; border: 1px solid color-mix(in srgb, var(--mn-success) 28%, var(--mn-line)); border-radius: 9px; color: var(--mn-success); background: color-mix(in srgb, var(--mn-success) 6%, var(--mn-layer-1)); font-size: 11px; }
16
- .runtimeReadOnly { color: var(--mn-muted); border-color: var(--mn-line); background: var(--mn-layer-1); }
17
- .runtimeSummaryGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 10px; }
18
- .runtimeSummaryCard { min-width: 0; border: 1px solid var(--mn-line); border-radius: 11px; background: var(--mn-layer-1); }
19
- .runtimeBrowser { overflow: hidden; border: 1px solid var(--mn-line); border-radius: 11px; background: var(--mn-layer-1); }
20
- .runtimeBrowserToolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px; border-bottom: 1px solid var(--mn-line); }
21
- .runtimeScopeFilter { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; }
22
- .runtimeScopeFilter button { min-height: 32px; border: 1px solid transparent; border-radius: 7px; padding: 0 10px; color: var(--mn-muted); background: transparent; cursor: pointer; }
23
- .runtimeScopeFilter button:hover { background: var(--mn-hover); }
24
- .runtimeScopeFilter button[data-active] { border-color: var(--mn-line); color: var(--mn-text); background: var(--mn-layer-2); }
25
- .runtimeScopeFilter b { margin-left: 4px; color: var(--mn-faint); font: 600 10px var(--mn-code); }
26
- .runtimeFilterQuery { display: flex; width: min(320px, 42%); min-width: 210px; align-items: center; gap: 7px; border: 1px solid var(--mn-line); border-radius: 8px; padding: 0 9px; background: var(--mn-input); }
14
+ .runtimeEntry select { min-width: 136px; height: 32px; border: .5px solid var(--mn-field-line); border-radius: var(--dsw-radius-md); outline: 0; padding: 0 10px; color: var(--mn-text); background: var(--mn-input); font-size: 13px; }
15
+ .runtimeReadOnly { margin-bottom: 12px; padding: 8px 12px; border-radius: var(--dsw-radius-md); color: var(--mn-muted); background: var(--mn-fill); font-size: 12px; line-height: 18px; }
16
+ .runtimeSummaryGrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 12px; }
17
+ .runtimeSummaryCard { min-width: 0; border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-lg); }
18
+ .runtimeBrowser { overflow: hidden; border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-lg); }
19
+ .runtimeBrowserToolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-bottom: .5px solid var(--mn-line); }
20
+ /* Scope filter, as the DSH SegmentedControl. */
21
+ .runtimeScopeFilter { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 2px; padding: 3px; border-radius: var(--dsw-radius-md); background: var(--mn-hover); }
22
+ .runtimeScopeFilter button { min-height: 28px; border: 0; border-radius: var(--dsw-radius-sm); padding: 0 12px; color: var(--mn-muted); background: transparent; font-size: 13px; font-weight: 500; line-height: 20px; cursor: pointer; }
23
+ .runtimeScopeFilter button:hover { color: var(--mn-text); }
24
+ .runtimeScopeFilter button[data-active] { color: var(--mn-text); background: var(--mn-layer-1); box-shadow: var(--dsw-elevation-soft); }
25
+ .runtimeScopeFilter b { margin-left: 6px; color: var(--mn-faint); font-size: 12px; font-weight: 400; font-variant-numeric: tabular-nums; }
26
+ .runtimeFilterQuery { display: flex; width: min(320px, 42%); min-width: 210px; align-items: center; gap: 6px; border: .5px solid var(--mn-field-line); border-radius: var(--dsw-radius-md); padding: 0 10px; background: var(--mn-input); }
27
+ .runtimeFilterQuery:focus-within { border-color: var(--mn-accent); }
27
28
  .runtimeFilterQuery > span { color: var(--mn-faint); }
28
- .runtimeFilterQuery input { width: 100%; min-width: 0; height: 32px; border: 0; outline: 0; color: var(--mn-text); background: transparent; }
29
- .runtimeUnifiedList { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 10px; background: color-mix(in srgb, var(--mn-layer-2) 30%, var(--mn-layer-1)); }
30
- .runtimeEntryBadges { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
31
- .runtimeEntryMeta .runtimeEntryTarget { color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 8%, var(--mn-layer-2)); font-family: var(--mn-code); }
32
- .runtimeEntryMeta .runtimeEntryBranch { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 8%, var(--mn-layer-2)); font-family: var(--mn-code); }
33
- .runtimeComposerBranch { display: grid; gap: 4px; color: var(--mn-faint); font-size: 9px; }
34
- .runtimeComposerBranch input { width: 100%; border: 1px solid var(--mn-line); border-radius: 8px; outline: 0; padding: 7px 9px; color: var(--mn-text); background: var(--mn-input); font-size: 12px; }
29
+ .runtimeFilterQuery input { width: 100%; min-width: 0; height: 32px; border: 0; outline: 0; color: var(--mn-text); background: transparent; font-size: 13px; }
30
+ .runtimeFilterQuery input::placeholder { color: var(--dsw-alias-label-dimmed); }
31
+ .runtimeUnifiedList { display: grid; grid-template-columns: 1fr; gap: 8px; padding: 12px; }
32
+ .runtimeEntryBadges { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
33
+ .runtimeEntryMeta .runtimeEntryTarget { color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 10%, transparent); }
34
+ .runtimeEntryMeta .runtimeEntryBranch { max-width: 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--mn-muted); background: var(--mn-fill); font-family: var(--mn-code); }
35
+ .runtimeComposerBranch { display: grid; gap: 6px; color: var(--mn-muted); font-size: 12px; font-weight: 500; line-height: 18px; }
36
+ .runtimeComposerBranch input { width: 100%; height: 32px; border: .5px solid var(--mn-field-line); border-radius: var(--dsw-radius-md); outline: 0; padding: 0 10px; color: var(--mn-text); background: var(--mn-input); font-size: 13px; font-weight: 400; }
35
37
  .runtimeComposerBranch input:focus { border-color: var(--mn-accent); }
36
- .bodyEditBranch { display: grid; gap: 4px; color: var(--mn-faint); font-size: 9px; }
37
- .bodyEditBranch input { width: 100%; border: 1px solid var(--mn-line); border-radius: 8px; outline: 0; padding: 7px 9px; color: var(--mn-text); background: var(--mn-input); font-size: 12px; }
38
+ .bodyEditBranch { display: grid; gap: 6px; color: var(--mn-muted); font-size: 12px; font-weight: 500; line-height: 18px; }
39
+ .bodyEditBranch input { width: 100%; height: 32px; border: .5px solid var(--mn-field-line); border-radius: var(--dsw-radius-md); outline: 0; padding: 0 10px; color: var(--mn-text); background: var(--mn-input); font-size: 13px; font-weight: 400; }
38
40
  .bodyEditBranch input:focus { border-color: var(--mn-accent); }
39
- .bodyEditBranch small { color: var(--mn-faint); font-size: 9px; }
40
- .runtimeTargetHeader { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 15px 9px; }
41
- .runtimeTargetHeader > div { display: grid; gap: 1px; }
42
- .runtimeTargetHeader span { color: var(--mn-faint); font: 650 9px var(--mn-code); letter-spacing: .08em; }
43
- .runtimeTargetHeader h3 { margin: 0; font-size: 15px; }
44
- .runtimeTargetHeader > strong { display: grid; min-width: 28px; height: 28px; place-items: center; border-radius: 8px; color: var(--mn-accent); background: color-mix(in srgb, var(--mn-accent) 9%, transparent); font: 650 11px var(--mn-code); }
45
- .capacityLine { display: flex; align-items: center; gap: 9px; padding: 0 15px; }
46
- .capacityLine > div { height: 4px; flex: 1; overflow: hidden; border-radius: 999px; background: var(--mn-layer-2); }
47
- .capacityLine i { display: block; height: 100%; border-radius: inherit; background: var(--mn-success); transition: width .25s ease; }
48
- .capacityLine > span { min-width: 88px; color: var(--mn-faint); font: 9px var(--mn-code); text-align: right; }
49
- .runtimeTargetDescription { min-height: 31px; margin: 8px 15px 12px; color: var(--mn-muted); font-size: 10px; }
50
- .runtimeEntry { --mn-provider-color: var(--mn-accent); position: relative; padding: 11px 12px 10px; border: 1px solid var(--mn-line); border-radius: 8px; background: linear-gradient(90deg, color-mix(in srgb, var(--mn-provider-color) 5%, var(--mn-layer-1)), var(--mn-layer-1) 34%); box-shadow: inset 3px 0 0 color-mix(in srgb, var(--mn-provider-color) 68%, transparent); }
41
+ .bodyEditBranch small { color: var(--mn-faint); font-size: 12px; font-weight: 400; }
42
+ .runtimeTargetHeader { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px 8px; }
43
+ .runtimeTargetHeader > div { display: grid; gap: 0; }
44
+ .runtimeTargetHeader span { color: var(--mn-faint); font-family: var(--mn-code); font-size: 11px; line-height: 16px; }
45
+ .runtimeTargetHeader h3 { margin: 0; font-size: 14px; font-weight: 500; line-height: 22px; }
46
+ .runtimeTargetHeader > strong { padding: 1px 8px; border-radius: 999px; color: var(--mn-muted); background: var(--mn-fill); font-size: 11px; font-weight: 500; line-height: 17px; font-variant-numeric: tabular-nums; }
47
+ .capacityLine { display: flex; align-items: center; gap: 10px; padding: 0 16px; }
48
+ .capacityLine > div { height: 4px; flex: 1; overflow: hidden; border-radius: 999px; background: var(--mn-fill); }
49
+ .capacityLine i { display: block; height: 100%; border-radius: inherit; background: var(--dsw-alias-brand-primary); transition: width .25s ease; }
50
+ .capacityLine > span { min-width: 88px; color: var(--mn-faint); font-size: 11px; text-align: right; font-variant-numeric: tabular-nums; }
51
+ .runtimeTargetDescription { min-height: 36px; margin: 8px 16px 14px; color: var(--mn-faint); font-size: 12px; line-height: 18px; }
52
+ .runtimeEntry { --mn-provider-color: var(--mn-accent); position: relative; padding: 12px 14px 10px; border: .5px solid var(--mn-card-line); border-radius: var(--dsw-radius-md); }
51
53
  .runtimeEntry[data-importance="critical"] { --mn-provider-color: var(--mn-priority); }
52
54
  .runtimeEntry[data-importance="low"] { --mn-provider-color: var(--mn-faint); }
53
55
  .runtimeEntryMeta { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
54
56
  .runtimeEntryMeta > span,
55
- .runtimeEntryBadges > span { padding: 2px 6px; border-radius: 999px; color: var(--mn-muted); background: var(--mn-layer-2); font-size: 9px; }
57
+ .runtimeEntryBadges > span { padding: 1px 8px; border-radius: 999px; color: var(--mn-muted); background: var(--mn-fill); font-size: 11px; font-weight: 500; line-height: 17px; }
56
58
  .runtimeEntry[data-importance="critical"] .runtimeEntryMeta > span,
57
- .runtimeEntry[data-importance="critical"] .runtimeEntryBadges > span:not(.runtimeEntryTarget) { color: var(--mn-priority); background: color-mix(in srgb, var(--mn-priority) 9%, transparent); }
58
- .runtimeEntryMeta time { overflow: hidden; color: var(--mn-faint); font: 8px var(--mn-code); text-overflow: ellipsis; white-space: nowrap; }
59
- .runtimeEntry > p { min-height: 42px; margin: 9px 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
60
- .runtimeEntry > select { margin-top: 7px; }
61
- .runtimeEntry footer { display: flex; min-height: 30px; align-items: center; justify-content: flex-end; gap: 4px; margin-top: 7px; padding-top: 7px; border-top: 1px solid var(--mn-line); }
62
- .runtimeEntry footer > span { margin-right: auto; color: var(--mn-danger); font-size: 10px; }
63
- .runtimeEmpty { display: grid; min-height: 126px; place-items: center; align-content: center; gap: 5px; color: var(--mn-faint); text-align: center; }
64
- .runtimeEmpty > span { font: 24px var(--mn-code); opacity: .65; }
65
- .runtimeEmpty p { margin: 0; font-size: 10px; }
59
+ .runtimeEntry[data-importance="critical"] .runtimeEntryBadges > span:not(.runtimeEntryTarget) { color: var(--mn-warn); background: color-mix(in srgb, var(--mn-warn) 12%, transparent); }
60
+ .runtimeEntryMeta time { overflow: hidden; color: var(--mn-faint); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; font-variant-numeric: tabular-nums; }
61
+ .runtimeEntry > p { min-height: 40px; margin: 8px 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 22px; }
62
+ .runtimeEntry > select { margin-top: 8px; }
63
+ .runtimeEntry footer { display: flex; min-height: 32px; align-items: center; justify-content: flex-end; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: .5px solid var(--mn-line); }
64
+ .runtimeEntry footer > span { margin-right: auto; color: var(--mn-danger); font-size: 12px; }
65
+ .runtimeEmpty { display: grid; min-height: 128px; place-items: center; align-content: center; gap: 6px; color: var(--mn-faint); text-align: center; }
66
+ .runtimeEmpty > span { font-size: 20px; line-height: 1; }
67
+ .runtimeEmpty p { margin: 0; font-size: 13px; line-height: 20px; }
66
68
 
67
69
  @media (max-width: 1000px) {
68
70
  .runtimeSummaryGrid { grid-template-columns: 1fr; }
@@ -7,56 +7,22 @@
7
7
  }
8
8
  .shell .modal form[class*='runtimeComposer'] > [class*='runtimeComposerHeading'] { display: none; }
9
9
 
10
- .shell [class*='runtimeComposerActions'] label {
11
- gap: 5px;
12
- color: var(--dsw-alias-label-secondary);
13
- font-size: 12px;
14
- font-weight: 500;
15
- }
16
-
17
- .shell [class*='runtimeComposer'] > textarea,
18
- .shell [class*='runtimeComposerActions'] select,
19
- .shell [class*='runtimeEntry'] select {
20
- min-height: 34px;
21
- border: 1px solid var(--dsw-alias-border-l2);
22
- border-radius: 8px;
23
- padding: 7px 10px;
24
- color: var(--dsw-alias-label-primary);
25
- background: var(--dsw-specific-input-major);
26
- font-size: 13px;
27
- font-weight: 400;
28
- }
29
-
30
- .shell [class*='runtimeTargetDescription'] { font-size: 12px; }
31
-
32
- .shell [class*='runtimeEntryMeta'] > span,
33
- .shell [class*='runtimeEntryBadges'] > span,
34
- .shell [class*='runtimeEntryMeta'] time { font-size: 11px; }
35
-
36
- .shell [class*='runtimeEntry'] > p { font-size: 13px; }
10
+ /* Runtime metadata reads as DSH Tags; the target is the one informational tone. */
37
11
  .shell [class*='runtimeEntryBadges'] > span {
38
12
  display: inline-flex;
39
- min-height: 22px;
40
13
  align-items: center;
41
- border: 1px solid var(--dsw-alias-border-l1);
42
14
  border-radius: 999px;
43
- padding: 0 8px;
44
- color: var(--dsw-alias-label-secondary);
45
- background: var(--dsw-alias-bg-layer-1);
15
+ padding: 1px 8px;
46
16
  font-size: 11px;
47
- font-weight: 400;
48
- line-height: 20px;
17
+ font-weight: 500;
18
+ line-height: 17px;
49
19
  }
50
20
  .shell [class*='runtimeEntryBadges'] > [class*='runtimeEntryTarget'] {
51
- border-color: color-mix(in srgb, var(--dsw-alias-state-business-primary) 30%, var(--dsw-alias-border-l1));
52
21
  color: var(--dsw-alias-state-business-primary);
53
- background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 7%, var(--dsw-alias-bg-layer-1));
22
+ background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent);
54
23
  font-family: var(--dsw-font-family);
55
- font-weight: 500;
56
24
  }
57
25
  .shell [class*='runtimeEntry'][data-importance='critical'] [class*='runtimeEntryBadges'] > span:last-child {
58
- border-color: color-mix(in srgb, var(--dsw-alias-state-error-primary) 24%, var(--dsw-alias-border-l1));
59
- color: var(--dsw-alias-state-error-primary);
60
- background: color-mix(in srgb, var(--dsw-alias-state-error-primary) 6%, var(--dsw-alias-bg-layer-1));
26
+ color: var(--dsw-alias-state-warn-primary);
27
+ background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);
61
28
  }
62
- .shell [class*='runtimeEntry'] footer { gap: 6px; }