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 +3 -3
- package/lib/index.d.ts +1 -1
- package/lib/index.js +3 -32
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +14 -8
- package/presentation/page.module.css +55 -53
- package/presentation/sidebar.module.css +7 -41
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
|
|
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*=
|
|
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
|
|
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: "
|
|
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
package/locale/zh.json
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-mnemon-source-runtime",
|
|
3
|
-
"version": "0.5.
|
|
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.
|
|
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.
|
|
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.
|
|
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:
|
|
2
|
-
.runtimeComposer { margin-bottom:
|
|
3
|
-
.runtimeComposerHeading { display: flex; align-items: flex-start; justify-content: space-between; gap:
|
|
4
|
-
.runtimeComposerHeading h3 { margin: 0 0 2px; font-size: 14px; }
|
|
5
|
-
.runtimeComposerHeading p { margin: 0; color: var(--mn-
|
|
6
|
-
.runtimeComposerHeading > span { flex: 0 0 auto; padding:
|
|
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:
|
|
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:
|
|
12
|
-
.runtimeComposerActions label { display: grid; gap:
|
|
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:
|
|
15
|
-
.runtimeReadOnly { margin-bottom:
|
|
16
|
-
.
|
|
17
|
-
.
|
|
18
|
-
.
|
|
19
|
-
.
|
|
20
|
-
|
|
21
|
-
.runtimeScopeFilter { display: flex; flex-wrap: wrap; align-items: center; gap: 3px; }
|
|
22
|
-
.runtimeScopeFilter button { min-height:
|
|
23
|
-
.runtimeScopeFilter button:hover {
|
|
24
|
-
.runtimeScopeFilter button[data-active] {
|
|
25
|
-
.runtimeScopeFilter b { margin-left:
|
|
26
|
-
.runtimeFilterQuery { display: flex; width: min(320px, 42%); min-width: 210px; align-items: center; gap:
|
|
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
|
-
.
|
|
30
|
-
.
|
|
31
|
-
.
|
|
32
|
-
.runtimeEntryMeta .
|
|
33
|
-
.
|
|
34
|
-
.runtimeComposerBranch
|
|
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:
|
|
37
|
-
.bodyEditBranch input { width: 100%; border:
|
|
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:
|
|
40
|
-
.runtimeTargetHeader { display: flex; align-items: center; justify-content: space-between; gap:
|
|
41
|
-
.runtimeTargetHeader > div { display: grid; gap:
|
|
42
|
-
.runtimeTargetHeader span { color: var(--mn-faint); font:
|
|
43
|
-
.runtimeTargetHeader h3 { margin: 0; font-size:
|
|
44
|
-
.runtimeTargetHeader > strong {
|
|
45
|
-
.capacityLine { display: flex; align-items: center; gap:
|
|
46
|
-
.capacityLine > div { height: 4px; flex: 1; overflow: hidden; border-radius: 999px; background: var(--mn-
|
|
47
|
-
.capacityLine i { display: block; height: 100%; border-radius: inherit; background: var(--
|
|
48
|
-
.capacityLine > span { min-width: 88px; color: var(--mn-faint); font:
|
|
49
|
-
.runtimeTargetDescription { min-height:
|
|
50
|
-
.runtimeEntry { --mn-provider-color: var(--mn-accent); position: relative; padding:
|
|
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:
|
|
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-
|
|
58
|
-
.runtimeEntryMeta time { overflow: hidden; color: var(--mn-faint); font:
|
|
59
|
-
.runtimeEntry > p { min-height:
|
|
60
|
-
.runtimeEntry > select { margin-top:
|
|
61
|
-
.runtimeEntry footer { display: flex; min-height:
|
|
62
|
-
.runtimeEntry footer > span { margin-right: auto; color: var(--mn-danger); font-size:
|
|
63
|
-
.runtimeEmpty { display: grid; min-height:
|
|
64
|
-
.runtimeEmpty > span { font:
|
|
65
|
-
.runtimeEmpty p { margin: 0; font-size:
|
|
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
|
-
|
|
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:
|
|
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:
|
|
48
|
-
line-height:
|
|
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)
|
|
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
|
-
|
|
59
|
-
|
|
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; }
|