dsh-biocore 0.3.3 → 0.5.0
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/index.js +30 -1
- package/lib/modules/standby.js +61 -0
- package/lib/modules/state.js +22 -3
- package/package.json +1 -1
- package/python/biocore_memory/core/config.py +7 -3
- package/python/biocore_memory/engine.py +91 -6
- package/python/biocore_memory/recall/embedding.py +0 -51
- package/python/biocore_memory/recall/feedback.py +34 -7
- package/python/biocore_memory/recall/fusion.py +5 -1
- package/python/biocore_memory/scoring.py +203 -0
- package/python/biocore_memory/space.py +355 -0
- package/python/biocore_memory/store/dedupe.py +1 -0
- package/python/biocore_memory/store/tiering.py +14 -3
- package/python/biocore_model/affective_labor.py +14 -1
- package/python/biocore_model/appraisal.py +172 -3
- package/python/biocore_model/bio_tick.py +43 -13
- package/python/biocore_model/emotion_geometry.py +9 -0
- package/python/biocore_model/envy.py +21 -0
- package/python/biocore_model/feedback_memory.py +53 -0
- package/python/biocore_model/needs_events.py +32 -11
- package/python/biocore_model/regulation_strategies.py +5 -0
- package/python/biocore_model/repair_after_boundary.py +1 -0
- package/python/biocore_model/self_esteem.py +14 -2
- package/python/biocore_model/self_intent.py +6 -4
- package/python/biocore_model/tests/test_autonomy_self.py +153 -153
- package/python/biocore_model/tests/test_cache_series.py +137 -0
- package/python/biocore_model/tests/test_core_state.py +240 -240
- package/python/biocore_model/tests/test_extensions.py +167 -167
- package/python/biocore_model/tests/test_field_arbiter.py +444 -0
- package/python/biocore_model/tests/test_governance.py +181 -181
- package/python/biocore_model/tests/test_lifecycle.py +153 -0
- package/python/biocore_model/tests/test_memory_inject.py +211 -211
- package/python/biocore_model/tests/test_retrieval_plus.py +143 -0
- package/python/biocore_model/tests/test_signals.py +106 -106
- package/python/biocore_model/tests/test_standby.py +199 -0
- package/python/biocore_runtime/__init__.py +3 -0
- package/python/biocore_runtime/arbiter.py +307 -0
- package/python/biocore_runtime/batch_b.py +724 -0
- package/python/biocore_runtime/batch_c.py +186 -0
- package/python/biocore_runtime/batch_d.py +659 -0
- package/python/biocore_runtime/batch_e.py +328 -0
- package/python/biocore_runtime/batch_registry.py +446 -0
- package/python/biocore_runtime/cache_stats.py +161 -0
- package/python/biocore_runtime/core_state.py +106 -3
- package/python/biocore_runtime/dimensions.py +419 -0
- package/python/biocore_runtime/expression.py +261 -0
- package/python/biocore_runtime/field.py +440 -0
- package/python/biocore_runtime/lifecycle.py +233 -0
- package/python/biocore_runtime/perception.py +1045 -0
- package/python/biocore_runtime/pipeline.py +4458 -2974
- package/python/biocore_runtime/priority.py +210 -0
- package/python/biocore_runtime/retrieval_plus.py +352 -0
- package/python/biocore_runtime/standby.py +581 -472
- package/python/biocore_runtime/timescales.py +263 -0
- package/python/data/signals.json +3266 -206
- package/ui/panel-layout.js +32 -29
- package/ui/panel.css +563 -974
- package/ui/panel.html +427 -401
- package/ui/panel.js +543 -450
package/ui/panel.html
CHANGED
|
@@ -3,443 +3,467 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
|
6
|
-
<meta name="color-scheme" content="light">
|
|
7
|
-
<title>生物核
|
|
8
|
-
<link rel="
|
|
6
|
+
<meta name="color-scheme" content="dark light">
|
|
7
|
+
<title>生物核 · 主管终端</title>
|
|
8
|
+
<link rel="icon" href="orb.png">
|
|
9
|
+
<script>
|
|
10
|
+
/* Theme before first paint: host <html data-theme> wins, then ?theme= preview,
|
|
11
|
+
otherwise CSS prefers-color-scheme decides. Keeps the switch flicker-free. */
|
|
12
|
+
(function () {
|
|
13
|
+
var root = document.documentElement
|
|
14
|
+
var query = new URLSearchParams(window.location.search)
|
|
15
|
+
var pinned = query.get('theme')
|
|
16
|
+
window.__bioThemePinned = pinned === 'light' || pinned === 'dark' ? pinned : ''
|
|
17
|
+
function hostTheme() {
|
|
18
|
+
try {
|
|
19
|
+
var doc = window.parent && window.parent !== window ? window.parent.document : null
|
|
20
|
+
var value = doc && doc.documentElement ? doc.documentElement.getAttribute('data-theme') : ''
|
|
21
|
+
return value === 'light' || value === 'dark' ? value : ''
|
|
22
|
+
} catch (error) { return '' }
|
|
23
|
+
}
|
|
24
|
+
window.__bioHostTheme = hostTheme
|
|
25
|
+
var theme = window.__bioThemePinned || hostTheme()
|
|
26
|
+
if (theme) root.setAttribute('data-theme', theme)
|
|
27
|
+
else root.removeAttribute('data-theme')
|
|
28
|
+
})()
|
|
29
|
+
</script>
|
|
30
|
+
<link rel="stylesheet" href="panel.css?v=32">
|
|
9
31
|
</head>
|
|
10
|
-
<body data-tab="dashboard"
|
|
32
|
+
<body data-tab="dashboard">
|
|
11
33
|
<svg class="sprite" aria-hidden="true" focusable="false" xmlns="http://www.w3.org/2000/svg">
|
|
12
|
-
<symbol id="i-dashboard" viewBox="0 0
|
|
13
|
-
<symbol id="i-memory" viewBox="0 0
|
|
14
|
-
<symbol id="i-relation" viewBox="0 0
|
|
15
|
-
<symbol id="i-settings" viewBox="0 0
|
|
16
|
-
<symbol id="i-tools" viewBox="0 0
|
|
17
|
-
<symbol id="i-mood" viewBox="0 0 20 20"><circle cx="10" cy="10" r="6.6"/><path d="M7 11.4c.8 1 1.8 1.5 3 1.5s2.2-.5 3-1.5"/></symbol>
|
|
18
|
-
<symbol id="i-tension" viewBox="0 0 20 20"><path d="M3 10h3l2.2-4.6L11 15l2-5h4"/></symbol>
|
|
19
|
-
<symbol id="i-chart" viewBox="0 0 20 20"><path d="M3 14.5l3.6-4.2 3 2.6L17 5"/><path d="M3 17h14"/></symbol>
|
|
20
|
-
<symbol id="i-bars" viewBox="0 0 20 20"><path d="M3 6h14M3 10h14M3 14h9"/></symbol>
|
|
21
|
-
<symbol id="i-today" viewBox="0 0 20 20"><rect x="3" y="4.5" width="14" height="12" rx="2.4"/><path d="M3 8.5h14M7 3v3M13 3v3"/></symbol>
|
|
22
|
-
<symbol id="i-capacity" viewBox="0 0 20 20"><ellipse cx="10" cy="5.6" rx="6" ry="2.4"/><path d="M4 5.6v8.8c0 1.3 2.7 2.4 6 2.4s6-1.1 6-2.4V5.6"/><path d="M4 10c0 1.3 2.7 2.4 6 2.4s6-1.1 6-2.4"/></symbol>
|
|
23
|
-
<symbol id="i-clock" viewBox="0 0 20 20"><circle cx="10" cy="10" r="6.6"/><path d="M10 6v4.2l2.6 1.6"/></symbol>
|
|
24
|
-
<symbol id="i-route" viewBox="0 0 20 20"><circle cx="5.5" cy="5.5" r="2"/><circle cx="14.5" cy="14.5" r="2"/><path d="M7.5 5.5h4a3 3 0 013 3v4"/></symbol>
|
|
25
|
-
<symbol id="i-cache" viewBox="0 0 20 20"><rect x="3" y="4" width="14" height="4.4" rx="2"/><rect x="3" y="11.6" width="14" height="4.4" rx="2"/></symbol>
|
|
26
|
-
<symbol id="i-persona" viewBox="0 0 20 20"><circle cx="10" cy="6.8" r="2.9"/><path d="M4 15.6c1.2-2.6 3.4-4 6-4s4.8 1.4 6 4"/></symbol>
|
|
27
|
-
<symbol id="i-model" viewBox="0 0 20 20"><rect x="3" y="4.4" width="14" height="11.2" rx="2.4"/><path d="M7.6 8.4l-2 1.8 2 1.8M12.4 8.4l2 1.8-2 1.8"/></symbol>
|
|
28
|
-
<symbol id="i-switch" viewBox="0 0 20 20"><path d="M6.4 4.6h7.2a3.4 3.4 0 010 6.8H6.4a3.4 3.4 0 010-6.8z"/><circle cx="12.6" cy="8" r="1.4"/></symbol>
|
|
29
|
-
<symbol id="i-expression" viewBox="0 0 20 20"><path d="M3.4 6h13M3.4 10h13M3.4 14h7.6"/></symbol>
|
|
30
|
-
<symbol id="i-advanced" viewBox="0 0 20 20"><path d="M3.4 6h13M3.4 10h13M3.4 14h13"/><circle cx="7.4" cy="6" r="1.5"/><circle cx="12" cy="10" r="1.5"/><circle cx="6.4" cy="14" r="1.5"/></symbol>
|
|
34
|
+
<symbol id="i-dashboard" viewBox="0 0 24 24"><rect x="4" y="4" width="6" height="6"/><rect x="14" y="4" width="6" height="6"/><rect x="4" y="14" width="6" height="6"/><rect x="14" y="14" width="6" height="6"/></symbol>
|
|
35
|
+
<symbol id="i-memory" viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h10"/><path d="M18 17h2"/></symbol>
|
|
36
|
+
<symbol id="i-relation" viewBox="0 0 24 24"><circle cx="8" cy="12" r="3"/><circle cx="17" cy="12" r="3"/><path d="M11 12h3"/></symbol>
|
|
37
|
+
<symbol id="i-settings" viewBox="0 0 24 24"><path d="M5 7h6M15 7h4M5 17h4M13 17h6"/><circle cx="12" cy="7" r="1.6"/><circle cx="10" cy="17" r="1.6"/></symbol>
|
|
38
|
+
<symbol id="i-tools" viewBox="0 0 24 24"><path d="M12 3l7 4.2v9.6L12 21l-7-4.2V7.2z"/><path d="M12 8v8"/></symbol>
|
|
31
39
|
<symbol id="i-edit" viewBox="0 0 20 20"><path d="M13.4 3.6l3 3L7 16H4v-3z"/><path d="M11.4 5.6l3 3"/></symbol>
|
|
32
40
|
<symbol id="i-check" viewBox="0 0 20 20"><path d="M4.4 10.4l3.6 3.6 7.6-8.4"/></symbol>
|
|
33
|
-
<symbol id="i-
|
|
34
|
-
<symbol id="i-dot" viewBox="0 0 20 20"><circle cx="10" cy="10" r="4"/></symbol>
|
|
41
|
+
<symbol id="i-expand" viewBox="0 0 20 20"><path d="M4 8V4h4M16 12v4h-4"/><path d="M4 4l5 5M16 16l-5-5"/></symbol>
|
|
35
42
|
</svg>
|
|
36
43
|
|
|
37
|
-
<
|
|
38
|
-
<
|
|
39
|
-
<
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-rail"></use></svg>
|
|
44
|
+
<div class="shell">
|
|
45
|
+
<nav class="rail" aria-label="主导航">
|
|
46
|
+
<div class="rail-logo" aria-hidden="true">BC</div>
|
|
47
|
+
<button class="rail-item active" type="button" data-tab="dashboard" aria-selected="true" title="仪表盘" aria-label="仪表盘">
|
|
48
|
+
<svg class="ico" aria-hidden="true"><use href="#i-dashboard"></use></svg>
|
|
43
49
|
</button>
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<button class="rail-item" type="button" data-tab="
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
<button class="rail-item" type="button" data-tab="
|
|
50
|
+
<button class="rail-item" type="button" data-tab="memory" aria-selected="false" title="记忆" aria-label="记忆">
|
|
51
|
+
<svg class="ico" aria-hidden="true"><use href="#i-memory"></use></svg>
|
|
52
|
+
</button>
|
|
53
|
+
<button class="rail-item" type="button" data-tab="relation" aria-selected="false" title="关系" aria-label="关系">
|
|
54
|
+
<svg class="ico" aria-hidden="true"><use href="#i-relation"></use></svg>
|
|
55
|
+
</button>
|
|
56
|
+
<button class="rail-item" type="button" data-tab="settings" aria-selected="false" title="配置" aria-label="配置">
|
|
57
|
+
<svg class="ico" aria-hidden="true"><use href="#i-settings"></use></svg>
|
|
58
|
+
</button>
|
|
59
|
+
<button class="rail-item" type="button" data-tab="tools" aria-selected="false" title="工具" aria-label="工具">
|
|
60
|
+
<svg class="ico" aria-hidden="true"><use href="#i-tools"></use></svg>
|
|
61
|
+
</button>
|
|
62
|
+
<div class="rail-foot"><span class="rail-ver" id="railVersion">v0.5.0</span></div>
|
|
51
63
|
</nav>
|
|
52
|
-
<div class="rail-foot"><span class="rail-version" id="railVersion">v0.2.1</span></div>
|
|
53
|
-
</aside>
|
|
54
|
-
|
|
55
|
-
<main class="panel" id="panel">
|
|
56
|
-
<header class="topbar" id="topBar">
|
|
57
|
-
<h1 id="pageTitle">仪表盘</h1>
|
|
58
|
-
<nav class="seg" id="segTabs" aria-label="页面切换">
|
|
59
|
-
<button class="seg-item active" type="button" data-tab="dashboard" aria-selected="true">仪表盘</button>
|
|
60
|
-
<button class="seg-item" type="button" data-tab="memory" aria-selected="false">记忆</button>
|
|
61
|
-
<button class="seg-item" type="button" data-tab="relation" aria-selected="false">关系</button>
|
|
62
|
-
<button class="seg-item" type="button" data-tab="settings" aria-selected="false">配置</button>
|
|
63
|
-
<button class="seg-item" type="button" data-tab="tools" aria-selected="false">工具</button>
|
|
64
|
-
</nav>
|
|
65
|
-
<div class="topbar-actions">
|
|
66
|
-
<button id="layoutReset" class="ghost-button" type="button" hidden>恢复默认</button>
|
|
67
|
-
<button id="layoutFab" class="icon-button" type="button" aria-label="编辑布局" title="编辑布局">
|
|
68
|
-
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-edit"></use></svg>
|
|
69
|
-
</button>
|
|
70
|
-
<button id="layoutDone" class="icon-button icon-button-accent" type="button" aria-label="完成编辑" title="完成编辑" hidden>
|
|
71
|
-
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-check"></use></svg>
|
|
72
|
-
</button>
|
|
73
|
-
</div>
|
|
74
|
-
</header>
|
|
75
|
-
|
|
76
|
-
<div class="grid" id="grid" aria-label="卡片网格">
|
|
77
64
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
<main class="main">
|
|
66
|
+
<header class="top" id="topBar">
|
|
67
|
+
<span class="brand">BIOCORE</span>
|
|
68
|
+
<span class="ttl" id="pageTitle">主管终端<em>OPERATOR TERMINAL</em></span>
|
|
69
|
+
<span class="chip" id="topChip">ONLINE</span>
|
|
70
|
+
<span class="chip" id="topBuild">BUILD 0.5.0</span>
|
|
71
|
+
<div class="top-right">
|
|
72
|
+
<span class="top-line"><i class="orb" id="orbState" aria-hidden="true"></i><span class="top-k">SESSION</span> <b class="num" id="topSession">—</b></span>
|
|
73
|
+
<span class="num" id="topClock">--:--:--</span>
|
|
74
|
+
<button id="layoutFab" class="icon-button" type="button" aria-label="编辑布局" title="编辑布局">
|
|
75
|
+
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-edit"></use></svg>
|
|
76
|
+
</button>
|
|
77
|
+
<button id="layoutDone" class="icon-button icon-button-accent" type="button" aria-label="完成编辑" title="完成编辑" hidden>
|
|
78
|
+
<svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-check"></use></svg>
|
|
79
|
+
</button>
|
|
80
|
+
<button id="layoutReset" class="chip chip-button" type="button" hidden>恢复默认</button>
|
|
81
81
|
</div>
|
|
82
|
-
|
|
83
|
-
<h2>她现在的样子</h2>
|
|
84
|
-
<p class="motivation" id="motivation">正在读取…</p>
|
|
85
|
-
<p class="status" id="status"><i class="dot"></i><span id="statusText">未连接</span></p>
|
|
86
|
-
<p class="state-note" id="emptyHint" hidden></p>
|
|
87
|
-
</div>
|
|
88
|
-
<dl class="fact-list">
|
|
89
|
-
<div><dt>语气</dt><dd id="toneWord">–</dd></div>
|
|
90
|
-
<div><dt>关系</dt><dd id="relationWord">–</dd></div>
|
|
91
|
-
<div><dt>自主</dt><dd id="autonomyWord">–</dd></div>
|
|
92
|
-
</dl>
|
|
93
|
-
</section>
|
|
94
|
-
|
|
95
|
-
<section class="card metric-card span-3 h-208" data-card-id="mood" data-card-label="心情" title="心情指数范围 −1 到 1">
|
|
96
|
-
<header class="card-head">
|
|
97
|
-
<span class="card-ico"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-mood"></use></svg></span>
|
|
98
|
-
<h2>心情</h2>
|
|
99
|
-
<span class="card-trail" id="moodArrow">→</span>
|
|
100
|
-
</header>
|
|
101
|
-
<p class="metric"><strong id="moodValue">–</strong><span class="metric-word" id="moodWord">—</span></p>
|
|
102
|
-
<p class="hint">指数范围 −1 到 1</p>
|
|
103
|
-
<div class="subblock">
|
|
104
|
-
<div class="data-row"><span>相对上一轮</span><b id="moodDelta">—</b></div>
|
|
105
|
-
<div class="bar"><i id="moodBar"></i></div>
|
|
106
|
-
</div>
|
|
107
|
-
</section>
|
|
82
|
+
</header>
|
|
108
83
|
|
|
109
|
-
<
|
|
110
|
-
<header class="card-head">
|
|
111
|
-
<span class="card-ico"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-tension"></use></svg></span>
|
|
112
|
-
<h2>张力</h2>
|
|
113
|
-
<span class="card-trail" id="tensionArrow">→</span>
|
|
114
|
-
</header>
|
|
115
|
-
<p class="metric"><strong id="tensionValue">–</strong><span class="metric-word" id="tensionWord">—</span></p>
|
|
116
|
-
<p class="hint">0.65 以上为阈值区</p>
|
|
117
|
-
<div class="subblock">
|
|
118
|
-
<div class="data-row empty-hide"><span>相对上一轮</span><b id="tensionDelta">—</b></div>
|
|
119
|
-
<div class="bar"><i id="tensionBar"></i><b class="bar-over" id="tensionOver"></b></div>
|
|
120
|
-
</div>
|
|
121
|
-
</section>
|
|
84
|
+
<div class="body" id="grid">
|
|
122
85
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
86
|
+
<div class="stack">
|
|
87
|
+
<section class="card" data-card-id="intero" data-card-label="自体感知">
|
|
88
|
+
<header class="card-head">
|
|
89
|
+
<i class="sq" aria-hidden="true"></i>
|
|
90
|
+
<b>INTEROCEPTION</b><span class="zh">/ 自体感知</span>
|
|
91
|
+
<span class="r" id="interoMeta">—</span>
|
|
92
|
+
</header>
|
|
93
|
+
<div class="hero">
|
|
94
|
+
<div class="dial" aria-label="心情指数">
|
|
95
|
+
<svg viewBox="0 0 168 168" aria-hidden="true">
|
|
96
|
+
<circle class="dial-track" cx="84" cy="84" r="72"></circle>
|
|
97
|
+
<circle class="dial-dash" cx="84" cy="84" r="72"></circle>
|
|
98
|
+
<circle class="dial-arc" id="dialArc" cx="84" cy="84" r="72"></circle>
|
|
99
|
+
<circle class="dial-ring" cx="84" cy="84" r="82"></circle>
|
|
100
|
+
</svg>
|
|
101
|
+
<div class="dial-v">
|
|
102
|
+
<b class="num" id="dialValue">—</b>
|
|
103
|
+
<span id="dialLabel">—</span>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="chan-col">
|
|
107
|
+
<div class="chans">
|
|
108
|
+
<div class="ch" aria-label="绷紧">
|
|
109
|
+
<span class="k">TENSION</span>
|
|
110
|
+
<span class="tr"><i id="tensionBar"></i><u class="tk"></u></span>
|
|
111
|
+
<span class="n num" id="tensionValue">—</span>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="ch" aria-label="暖">
|
|
114
|
+
<span class="k">WARMTH</span>
|
|
115
|
+
<span class="tr"><i id="warmthBar"></i><u class="tk"></u></span>
|
|
116
|
+
<span class="n num" id="warmthValue">—</span>
|
|
117
|
+
</div>
|
|
118
|
+
<div class="ch" aria-label="沉">
|
|
119
|
+
<span class="k">WEIGHT</span>
|
|
120
|
+
<span class="tr"><i id="heavinessBar"></i><u class="tk"></u></span>
|
|
121
|
+
<span class="n num" id="heavinessValue">—</span>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="ch" aria-label="清">
|
|
124
|
+
<span class="k">CLARITY</span>
|
|
125
|
+
<span class="tr"><i id="clarityBar"></i><u class="tk"></u></span>
|
|
126
|
+
<span class="n num" id="clarityValue">—</span>
|
|
127
|
+
</div>
|
|
128
|
+
</div>
|
|
129
|
+
<p class="note" id="interoNote">—</p>
|
|
130
|
+
</div>
|
|
131
|
+
</div>
|
|
132
|
+
</section>
|
|
136
133
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
134
|
+
<section class="card" data-card-id="log" data-card-label="记忆">
|
|
135
|
+
<header class="card-head">
|
|
136
|
+
<i class="sq" aria-hidden="true"></i>
|
|
137
|
+
<b>EPISODIC LOG</b><span class="zh">/ 记忆</span>
|
|
138
|
+
<span class="r" id="logMeta">—</span>
|
|
139
|
+
</header>
|
|
140
|
+
<table class="log-table">
|
|
141
|
+
<thead><tr><th>TIME</th><th>TYPE</th><th>CONTENT</th><th class="ta-r">W</th></tr></thead>
|
|
142
|
+
<tbody id="memoryList"><tr class="is-empty"><td colspan="4">—</td></tr></tbody>
|
|
143
|
+
</table>
|
|
144
|
+
</section>
|
|
148
145
|
</div>
|
|
149
|
-
</section>
|
|
150
146
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
147
|
+
<div class="stack">
|
|
148
|
+
<section class="card" data-card-id="state" data-card-label="当前">
|
|
149
|
+
<header class="card-head">
|
|
150
|
+
<i class="sq" aria-hidden="true"></i>
|
|
151
|
+
<b>STATE</b><span class="zh">/ 当前</span>
|
|
152
|
+
<span class="r">READ ONLY</span>
|
|
153
|
+
</header>
|
|
154
|
+
<div class="kv" aria-label="关系"><span class="k">RELATION</span><span id="stateRelation">—</span></div>
|
|
155
|
+
<div class="kv" aria-label="语气"><span class="k">TONE</span><span id="stateTone">—</span></div>
|
|
156
|
+
<div class="kv" aria-label="自主"><span class="k">AUTONOMY</span><span id="stateAutonomy">—</span></div>
|
|
157
|
+
<div class="kv"><span class="k">INTENT</span><span class="num" id="stateIntent">—</span></div>
|
|
158
|
+
<div class="kv"><span class="k">SOCIAL PAIN</span><span class="num" id="statePain">—</span></div>
|
|
159
|
+
<p class="note" id="motivation">—</p>
|
|
160
|
+
<p class="state-note" id="emptyHint" hidden></p>
|
|
161
|
+
</section>
|
|
164
162
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
163
|
+
<section class="card" data-card-id="today" data-card-label="今日">
|
|
164
|
+
<header class="card-head">
|
|
165
|
+
<i class="sq" aria-hidden="true"></i>
|
|
166
|
+
<b>TODAY</b><span class="zh">/ 今日</span>
|
|
167
|
+
<span class="r">00:00 — NOW</span>
|
|
168
|
+
</header>
|
|
169
|
+
<div class="tiles">
|
|
170
|
+
<div class="tile"><div class="k">NEW MEMORY</div><div class="n num" id="todayMem">—</div></div>
|
|
171
|
+
<div class="tile"><div class="k">SAMPLES</div><div class="n num" id="todayTurns">—</div></div>
|
|
172
|
+
<div class="tile"><div class="k">PROACTIVE</div><div class="n num" id="todayProactive">—</div></div>
|
|
173
|
+
<div class="tile"><div class="k">CACHE HIT</div><div class="n num" id="todayCache">—</div></div>
|
|
174
|
+
</div>
|
|
175
|
+
</section>
|
|
178
176
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
177
|
+
<section class="card" data-card-id="loops" data-card-label="待办">
|
|
178
|
+
<header class="card-head">
|
|
179
|
+
<i class="sq" aria-hidden="true"></i>
|
|
180
|
+
<b>OPEN LOOPS</b><span class="zh">/ 待办</span>
|
|
181
|
+
<span class="r" id="loopsMeta">—</span>
|
|
182
|
+
</header>
|
|
183
|
+
<div class="kv"><span class="k">PROMISE</span><span id="loopPromise">—</span></div>
|
|
184
|
+
<div class="kv"><span class="k">UNANSWERED</span><span id="loopUnanswered">—</span></div>
|
|
185
|
+
<div class="kv"><span class="k">REPAIR</span><span id="loopRepair">—</span></div>
|
|
186
|
+
</section>
|
|
188
187
|
</div>
|
|
189
|
-
</section>
|
|
190
188
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
189
|
+
<div class="stack">
|
|
190
|
+
<section class="card" data-card-id="dims" data-card-label="维度">
|
|
191
|
+
<header class="card-head">
|
|
192
|
+
<i class="sq" aria-hidden="true"></i>
|
|
193
|
+
<b>DIMENSIONS</b><span class="zh">/ 维度</span>
|
|
194
|
+
<span class="r" id="dimsMeta">12 AXES</span>
|
|
195
|
+
</header>
|
|
196
|
+
<div class="kv-rows" id="dimsRows">
|
|
197
|
+
<div class="kv" data-dim="v"><span class="k">VALENCE</span><span class="num">—</span></div>
|
|
198
|
+
<div class="kv" data-dim="a"><span class="k">AROUSAL</span><span class="num">—</span></div>
|
|
199
|
+
<div class="kv" data-dim="dominance"><span class="k">DOMINANCE</span><span class="num">—</span></div>
|
|
200
|
+
<div class="kv" data-dim="stress"><span class="k">STRESS</span><span class="num">—</span></div>
|
|
201
|
+
<div class="kv" data-dim="social"><span class="k">SOCIAL</span><span class="num">—</span></div>
|
|
202
|
+
<div class="kv" data-dim="trust"><span class="k">TRUST</span><span class="num">—</span></div>
|
|
203
|
+
<div class="kv" data-dim="closeness"><span class="k">CLOSENESS</span><span class="num">—</span></div>
|
|
204
|
+
<div class="kv" data-dim="conflict"><span class="k">CONFLICT</span><span class="num">—</span></div>
|
|
205
|
+
<div class="kv" data-dim="needs.belonging"><span class="k">NEED BELONGING</span><span class="num">—</span></div>
|
|
206
|
+
<div class="kv" data-dim="needs.self_esteem"><span class="k">NEED ESTEEM</span><span class="num">—</span></div>
|
|
207
|
+
<div class="kv" data-dim="needs.control"><span class="k">NEED CONTROL</span><span class="num">—</span></div>
|
|
208
|
+
<div class="kv" data-dim="needs.meaningful_existence"><span class="k">NEED MEANING</span><span class="num">—</span></div>
|
|
209
|
+
</div>
|
|
210
|
+
</section>
|
|
204
211
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
</div>
|
|
216
|
-
</section>
|
|
212
|
+
<section class="card" data-card-id="cache" data-card-label="缓存">
|
|
213
|
+
<header class="card-head">
|
|
214
|
+
<i class="sq" aria-hidden="true"></i>
|
|
215
|
+
<b>CACHE</b><span class="zh">/ 缓存</span>
|
|
216
|
+
<span class="r">30S</span>
|
|
217
|
+
</header>
|
|
218
|
+
<div class="kv"><span class="k">HIT RATE</span><span class="num" id="cacheStatText">—</span></div>
|
|
219
|
+
<div class="tr cache-tr"><i id="cacheBar"></i></div>
|
|
220
|
+
<div class="kv"><span class="k">CACHE_READ</span><span class="num" id="cacheDetail">—</span></div>
|
|
221
|
+
</section>
|
|
217
222
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
223
|
+
<section class="card" data-card-id="system" data-card-label="系统">
|
|
224
|
+
<header class="card-head">
|
|
225
|
+
<i class="sq" aria-hidden="true"></i>
|
|
226
|
+
<b>SYSTEM</b><span class="zh">/ 系统</span>
|
|
227
|
+
<span class="r" id="systemMeta">—</span>
|
|
228
|
+
</header>
|
|
229
|
+
<div class="kv"><span class="k">ADAPTER</span><span class="num" id="sysAdapter">—</span></div>
|
|
230
|
+
<div class="kv"><span class="k">RECALL</span><span class="num" id="sysRecall">—</span></div>
|
|
231
|
+
<div class="kv"><span class="k">UPDATED</span><span class="num" id="sysUpdated">—</span></div>
|
|
232
|
+
<div class="kv"><span class="k">DEGRADED</span><span class="num" id="sysDegraded">—</span></div>
|
|
233
|
+
</section>
|
|
227
234
|
</div>
|
|
228
|
-
</section>
|
|
229
235
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
<
|
|
244
|
-
</
|
|
245
|
-
</section>
|
|
236
|
+
<section class="strip" data-card-id="chart" data-card-label="24 小时">
|
|
237
|
+
<header class="card-head">
|
|
238
|
+
<i class="sq" aria-hidden="true"></i>
|
|
239
|
+
<b>MOOD TRACE</b><span class="zh">/ 24H</span>
|
|
240
|
+
<span class="r" id="chartHint">—</span>
|
|
241
|
+
</header>
|
|
242
|
+
<div class="hz">
|
|
243
|
+
<div class="hz-peak num"><span>PEAK</span><b id="peakValue">—</b></div>
|
|
244
|
+
<div class="hz-main">
|
|
245
|
+
<div class="tl" id="moodChart" role="img" aria-label="心情 24 小时"></div>
|
|
246
|
+
<div class="lb"><span>00</span><span>06</span><span>12</span><span>18</span><span>23</span></div>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
<p class="chart-empty" id="chartEmpty" hidden>还没有采样</p>
|
|
250
|
+
</section>
|
|
246
251
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
252
|
+
<section class="card" data-card-id="memory" data-card-label="最近记忆">
|
|
253
|
+
<header class="card-head">
|
|
254
|
+
<i class="sq" aria-hidden="true"></i>
|
|
255
|
+
<b>MEMORY</b><span class="zh">/ 最近记忆</span>
|
|
256
|
+
<span class="r" id="memoryHint">共 0 条</span>
|
|
257
|
+
</header>
|
|
258
|
+
<table class="log-table">
|
|
259
|
+
<thead><tr><th>TIME</th><th>TYPE</th><th>CONTENT</th><th class="ta-r">W</th></tr></thead>
|
|
260
|
+
<tbody id="memoryListFull"><tr class="is-empty"><td colspan="4">—</td></tr></tbody>
|
|
261
|
+
</table>
|
|
262
|
+
</section>
|
|
255
263
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
+
<section class="card" data-card-id="memory-summary" data-card-label="记忆概览">
|
|
265
|
+
<header class="card-head">
|
|
266
|
+
<i class="sq" aria-hidden="true"></i>
|
|
267
|
+
<b>CAPACITY</b><span class="zh">/ 记忆概览</span>
|
|
268
|
+
<span class="r" id="capText">—</span>
|
|
269
|
+
</header>
|
|
270
|
+
<div class="triple">
|
|
271
|
+
<div class="triple-col"><span>共</span><strong class="num" id="memTotal">—</strong></div>
|
|
272
|
+
<div class="triple-col"><span>今日新增</span><strong class="num" id="memToday">—</strong></div>
|
|
273
|
+
<div class="triple-col"><span>召回次数</span><strong class="num" id="memRecall">—</strong></div>
|
|
274
|
+
</div>
|
|
275
|
+
<div class="subblock">
|
|
276
|
+
<div class="data-row"><span>容量</span><b class="num" id="capFillText">—</b></div>
|
|
277
|
+
<div class="tr"><i id="capFill"></i></div>
|
|
278
|
+
</div>
|
|
279
|
+
</section>
|
|
264
280
|
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
<textarea id="personaText" class="persona-text" rows="6" placeholder="性格、说话方式、在意什么"></textarea>
|
|
274
|
-
</label>
|
|
275
|
-
<div class="card-actions">
|
|
276
|
-
<button id="personaSave" class="primary-button" type="button">保存并编译</button>
|
|
277
|
-
<button id="personaPersist" class="ghost-button" type="button">设为常驻</button>
|
|
278
|
-
<button id="personaRollback" class="ghost-button" type="button" hidden>恢复原人设</button>
|
|
279
|
-
</div>
|
|
280
|
-
<p class="hint" id="personaHint">编译只改倾向,不写记忆与安全策略</p>
|
|
281
|
-
</section>
|
|
281
|
+
<section class="card" data-card-id="metrics" data-card-label="关系数值">
|
|
282
|
+
<header class="card-head">
|
|
283
|
+
<i class="sq" aria-hidden="true"></i>
|
|
284
|
+
<b>RELATION</b><span class="zh">/ 关系数值</span>
|
|
285
|
+
<span class="r" id="relationHint">只读</span>
|
|
286
|
+
</header>
|
|
287
|
+
<div class="relation" id="metrics"></div>
|
|
288
|
+
</section>
|
|
282
289
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
<input id="modelName" type="text" placeholder="BAAI/bge-m3" autocomplete="off">
|
|
302
|
-
</label>
|
|
303
|
-
<label class="field field-wide"><span>Base URL</span>
|
|
304
|
-
<input id="modelBaseUrl" type="url" placeholder="https://api.example.com/v1" autocomplete="off">
|
|
305
|
-
</label>
|
|
306
|
-
<label class="field field-wide"><span>API Key</span>
|
|
307
|
-
<input id="modelApiKey" type="password" placeholder="留空表示沿用已保存的 Key" autocomplete="new-password">
|
|
308
|
-
</label>
|
|
309
|
-
</div>
|
|
310
|
-
<p class="group-title">Rerank 召回精排</p>
|
|
311
|
-
<label class="switch-row">
|
|
312
|
-
<span class="switch-text">
|
|
313
|
-
<span class="switch-label">启用重排</span>
|
|
314
|
-
<span class="switch-desc">召回后用 rerank 精排</span>
|
|
315
|
-
</span>
|
|
316
|
-
<input id="rerankEnabled" type="checkbox">
|
|
317
|
-
</label>
|
|
318
|
-
<div class="field-grid" id="rerankFields">
|
|
319
|
-
<label class="field"><span>模型</span>
|
|
320
|
-
<input id="rerankModel" type="text" placeholder="jina-reranker-v2-base-multilingual" autocomplete="off">
|
|
321
|
-
</label>
|
|
322
|
-
<label class="field"><span>Top N</span>
|
|
323
|
-
<input id="rerankTopN" type="number" min="1" max="100" value="20">
|
|
324
|
-
</label>
|
|
325
|
-
<label class="field"><span>Base URL</span>
|
|
326
|
-
<input id="rerankBaseUrl" type="url" placeholder="https://api.example.com/v1" autocomplete="off">
|
|
290
|
+
<section class="card" data-card-id="narrative" data-card-label="叙事摘要">
|
|
291
|
+
<header class="card-head">
|
|
292
|
+
<i class="sq" aria-hidden="true"></i>
|
|
293
|
+
<b>NARRATIVE</b><span class="zh">/ 叙事摘要</span>
|
|
294
|
+
<span class="r" id="narrativeHint">上一轮</span>
|
|
295
|
+
</header>
|
|
296
|
+
<dl class="data-list" id="narrative"></dl>
|
|
297
|
+
</section>
|
|
298
|
+
|
|
299
|
+
<section class="card" data-card-id="persona" data-card-label="人设">
|
|
300
|
+
<header class="card-head">
|
|
301
|
+
<i class="sq" aria-hidden="true"></i>
|
|
302
|
+
<b>PERSONA</b><span class="zh">/ 人设</span>
|
|
303
|
+
<span class="r" id="personaStatus">读取中</span>
|
|
304
|
+
</header>
|
|
305
|
+
<label class="field field-block">
|
|
306
|
+
<span>人设提示词</span>
|
|
307
|
+
<textarea id="personaText" class="persona-text" rows="6" placeholder="性格、说话方式、在意什么"></textarea>
|
|
327
308
|
</label>
|
|
328
|
-
<
|
|
329
|
-
<
|
|
309
|
+
<div class="card-actions">
|
|
310
|
+
<button id="personaSave" class="primary-button" type="button">保存并编译</button>
|
|
311
|
+
<button id="personaPersist" class="ghost-button" type="button">设为常驻</button>
|
|
312
|
+
<button id="personaRollback" class="ghost-button" type="button" hidden>恢复原人设</button>
|
|
313
|
+
</div>
|
|
314
|
+
<p class="hint" id="personaHint">编译只改倾向,不写记忆与安全策略</p>
|
|
315
|
+
</section>
|
|
316
|
+
|
|
317
|
+
<section class="card" data-card-id="model" data-card-label="模型与接口">
|
|
318
|
+
<header class="card-head">
|
|
319
|
+
<i class="sq" aria-hidden="true"></i>
|
|
320
|
+
<b>MODEL</b><span class="zh">/ 模型与接口</span>
|
|
321
|
+
<span class="r" id="modelStatus">未保存</span>
|
|
322
|
+
</header>
|
|
323
|
+
<p class="group-title">Embedding 向量检索</p>
|
|
324
|
+
<p class="hint">只用于记忆检索,与对话模型无关</p>
|
|
325
|
+
<div class="field-grid">
|
|
326
|
+
<label class="field"><span>模式</span>
|
|
327
|
+
<select id="embeddingMode">
|
|
328
|
+
<option value="auto">auto</option>
|
|
329
|
+
<option value="remote">remote</option>
|
|
330
|
+
<option value="local">local</option>
|
|
331
|
+
<option value="off">off</option>
|
|
332
|
+
</select>
|
|
333
|
+
</label>
|
|
334
|
+
<label class="field"><span>模型</span>
|
|
335
|
+
<input id="modelName" type="text" placeholder="BAAI/bge-m3" autocomplete="off">
|
|
336
|
+
</label>
|
|
337
|
+
<label class="field field-wide"><span>Base URL</span>
|
|
338
|
+
<input id="modelBaseUrl" type="url" placeholder="https://api.example.com/v1" autocomplete="off">
|
|
339
|
+
</label>
|
|
340
|
+
<label class="field field-wide"><span>API Key</span>
|
|
341
|
+
<input id="modelApiKey" type="password" placeholder="留空表示沿用已保存的 Key" autocomplete="new-password">
|
|
342
|
+
</label>
|
|
343
|
+
</div>
|
|
344
|
+
<p class="group-title">Rerank 召回精排</p>
|
|
345
|
+
<label class="switch-row">
|
|
346
|
+
<span class="switch-text">
|
|
347
|
+
<span class="switch-label">启用重排</span>
|
|
348
|
+
<span class="switch-desc">召回后用 rerank 精排</span>
|
|
349
|
+
</span>
|
|
350
|
+
<input id="rerankEnabled" type="checkbox">
|
|
330
351
|
</label>
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
352
|
+
<div class="field-grid" id="rerankFields">
|
|
353
|
+
<label class="field"><span>模型</span>
|
|
354
|
+
<input id="rerankModel" type="text" placeholder="jina-reranker-v2-base-multilingual" autocomplete="off">
|
|
355
|
+
</label>
|
|
356
|
+
<label class="field"><span>Top N</span>
|
|
357
|
+
<input id="rerankTopN" type="number" min="1" max="100" value="20">
|
|
358
|
+
</label>
|
|
359
|
+
<label class="field"><span>Base URL</span>
|
|
360
|
+
<input id="rerankBaseUrl" type="url" placeholder="https://api.jina.ai/v1" autocomplete="off">
|
|
361
|
+
</label>
|
|
362
|
+
<label class="field"><span>API Key</span>
|
|
363
|
+
<input id="rerankApiKey" type="password" placeholder="留空表示沿用已保存的 Key" autocomplete="new-password">
|
|
364
|
+
</label>
|
|
365
|
+
</div>
|
|
366
|
+
<div class="card-actions">
|
|
367
|
+
<button id="modelSave" class="primary-button" type="button">保存设置</button>
|
|
368
|
+
<button id="modelTest" class="ghost-button" type="button">测试 Embedding</button>
|
|
369
|
+
<button id="rerankTest" class="ghost-button" type="button">测试 Rerank</button>
|
|
370
|
+
</div>
|
|
371
|
+
</section>
|
|
338
372
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
373
|
+
<section class="card" data-card-id="switches" data-card-label="开关">
|
|
374
|
+
<header class="card-head">
|
|
375
|
+
<i class="sq" aria-hidden="true"></i>
|
|
376
|
+
<b>SWITCHES</b><span class="zh">/ 开关</span>
|
|
377
|
+
<span class="r" id="switchHint">写入宿主 flags</span>
|
|
378
|
+
</header>
|
|
379
|
+
<div class="switches" id="switches"></div>
|
|
380
|
+
</section>
|
|
347
381
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
<div class="card-actions">
|
|
366
|
-
<button id="expressionSave" class="primary-button" type="button">保存表达</button>
|
|
367
|
-
</div>
|
|
368
|
-
</section>
|
|
369
|
-
|
|
370
|
-
<section class="card advanced-card span-12 h-120" data-card-id="advanced" data-card-label="维护">
|
|
371
|
-
<header class="card-head">
|
|
372
|
-
<span class="card-ico"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-advanced"></use></svg></span>
|
|
373
|
-
<h2>维护</h2>
|
|
374
|
-
<span class="card-trail" id="advancedHint">只影响这台浏览器</span>
|
|
375
|
-
</header>
|
|
376
|
-
<div class="advanced-row">
|
|
377
|
-
<div class="data-inline"><span>出口清洗</span><b id="sanitizeReplyText">开</b></div>
|
|
382
|
+
<section class="card" data-card-id="expression" data-card-label="表达">
|
|
383
|
+
<header class="card-head">
|
|
384
|
+
<i class="sq" aria-hidden="true"></i>
|
|
385
|
+
<b>EXPRESSION</b><span class="zh">/ 表达</span>
|
|
386
|
+
<span class="r" id="expressionStatus">长度由人设决定</span>
|
|
387
|
+
</header>
|
|
388
|
+
<label class="switch-row">
|
|
389
|
+
<span class="switch-text">
|
|
390
|
+
<span class="switch-label">长度约束</span>
|
|
391
|
+
<span class="switch-desc">按目标与上限字数约束表达</span>
|
|
392
|
+
</span>
|
|
393
|
+
<input id="expressionToggle" type="checkbox">
|
|
394
|
+
</label>
|
|
395
|
+
<div class="field-grid" id="expressionFields" hidden>
|
|
396
|
+
<label class="field"><span>每句目标字数</span><input id="lengthTarget" type="number" min="1" max="200" value="10"></label>
|
|
397
|
+
<label class="field"><span>上限字数</span><input id="lengthMax" type="number" min="2" max="400" value="30"></label>
|
|
398
|
+
</div>
|
|
378
399
|
<div class="card-actions">
|
|
379
|
-
<button id="
|
|
380
|
-
<button id="clearDraft" class="ghost-button" type="button">清空本地草稿</button>
|
|
400
|
+
<button id="expressionSave" class="primary-button" type="button">保存表达</button>
|
|
381
401
|
</div>
|
|
382
|
-
</
|
|
383
|
-
</section>
|
|
384
|
-
|
|
385
|
-
<section class="card trace-card span-12 h-280" data-card-id="trace" data-card-label="这一轮为什么">
|
|
386
|
-
<header class="card-head">
|
|
387
|
-
<span class="card-ico"><svg viewBox="0 0 20 20" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><use href="#i-route"></use></svg></span>
|
|
388
|
-
<h2>这一轮为什么</h2>
|
|
389
|
-
<span class="card-trail" id="traceHint">最近 3 轮</span>
|
|
390
|
-
</header>
|
|
391
|
-
<div class="trace-head-row"><span>时间</span><span>状态变化</span><span>意图</span><span>长度来源</span><span>闸命中</span><span>记忆</span></div>
|
|
392
|
-
<div class="well list-well">
|
|
393
|
-
<div class="trace-list" id="traceList"><p class="state-note">还没有记录</p></div>
|
|
394
|
-
</div>
|
|
395
|
-
</section>
|
|
402
|
+
</section>
|
|
396
403
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
404
|
+
<section class="card" data-card-id="advanced" data-card-label="维护">
|
|
405
|
+
<header class="card-head">
|
|
406
|
+
<i class="sq" aria-hidden="true"></i>
|
|
407
|
+
<b>SERVICE</b><span class="zh">/ 维护</span>
|
|
408
|
+
<span class="r" id="advancedHint">只影响这台浏览器</span>
|
|
409
|
+
</header>
|
|
410
|
+
<div class="advanced-row">
|
|
411
|
+
<div class="data-inline"><span>出口清洗</span><b id="sanitizeReplyText">—</b></div>
|
|
412
|
+
<div class="card-actions">
|
|
413
|
+
<button id="resetLayout" class="ghost-button" type="button">恢复默认布局</button>
|
|
414
|
+
<button id="clearDraft" class="ghost-button" type="button">清空本地草稿</button>
|
|
415
|
+
</div>
|
|
416
|
+
</div>
|
|
417
|
+
<p class="hint" id="dataDirText">数据目录:宿主托管</p>
|
|
418
|
+
</section>
|
|
411
419
|
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
<div
|
|
420
|
-
|
|
421
|
-
<div><dt>会话</dt><dd id="diagSession">—</dd></div>
|
|
422
|
-
<div><dt>数据目录</dt><dd id="dataDirText">宿主托管</dd></div>
|
|
423
|
-
<div><dt>插件版本</dt><dd id="pluginVersion">0.2.1</dd></div>
|
|
424
|
-
<div><dt>降级项</dt><dd id="diagDegraded">无</dd></div>
|
|
425
|
-
<div><dt>状态生成</dt><dd id="diagGenerated">—</dd></div>
|
|
426
|
-
<div><dt>适配器版本</dt><dd id="diagAdapter">—</dd></div>
|
|
427
|
-
</dl>
|
|
428
|
-
</section>
|
|
429
|
-
</div>
|
|
420
|
+
<section class="card" data-card-id="trace" data-card-label="这一轮为什么">
|
|
421
|
+
<header class="card-head">
|
|
422
|
+
<i class="sq" aria-hidden="true"></i>
|
|
423
|
+
<b>TRACE</b><span class="zh">/ 这一轮为什么</span>
|
|
424
|
+
<span class="r" id="traceHint">最近 3 轮</span>
|
|
425
|
+
</header>
|
|
426
|
+
<div class="trace-head-row"><span>时间</span><span>状态变化</span><span>意图</span><span>长度来源</span><span>闸命中</span><span>记忆</span></div>
|
|
427
|
+
<div class="trace-list" id="traceList"><p class="state-note">还没有记录</p></div>
|
|
428
|
+
</section>
|
|
430
429
|
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
430
|
+
<section class="card" data-card-id="runtime" data-card-label="运行时">
|
|
431
|
+
<header class="card-head">
|
|
432
|
+
<i class="sq" aria-hidden="true"></i>
|
|
433
|
+
<b>RUNTIME</b><span class="zh">/ 运行时</span>
|
|
434
|
+
<span class="r" id="runSession">—</span>
|
|
435
|
+
</header>
|
|
436
|
+
<dl class="data-list">
|
|
437
|
+
<div><dt>页面运行</dt><dd id="runtimeUptime">—</dd></div>
|
|
438
|
+
<div><dt>采样点</dt><dd class="num" id="runtimeTurns">—</dd></div>
|
|
439
|
+
<div><dt>向量模式</dt><dd id="runtimeVector">—</dd></div>
|
|
440
|
+
<div><dt>会话</dt><dd class="num" id="diagSession">—</dd></div>
|
|
441
|
+
<div><dt>状态刷新</dt><dd>5 <small>秒</small></dd></div>
|
|
442
|
+
<div><dt>统计刷新</dt><dd>30 <small>秒</small></dd></div>
|
|
443
|
+
</dl>
|
|
444
|
+
</section>
|
|
435
445
|
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
446
|
+
<section class="card" data-card-id="diagnostics" data-card-label="诊断">
|
|
447
|
+
<header class="card-head">
|
|
448
|
+
<i class="sq" aria-hidden="true"></i>
|
|
449
|
+
<b>DIAGNOSTICS</b><span class="zh">/ 诊断</span>
|
|
450
|
+
<span class="r" id="diagHint">30 秒刷新</span>
|
|
451
|
+
</header>
|
|
452
|
+
<dl class="data-list data-list-inline">
|
|
453
|
+
<div><dt>状态生成</dt><dd class="num" id="diagGenerated">—</dd></div>
|
|
454
|
+
<div><dt>适配器版本</dt><dd class="num" id="diagAdapter">—</dd></div>
|
|
455
|
+
<div><dt>插件版本</dt><dd class="num" id="pluginVersion">—</dd></div>
|
|
456
|
+
<div><dt>降级项</dt><dd id="diagDegraded">—</dd></div>
|
|
457
|
+
</dl>
|
|
458
|
+
</section>
|
|
459
|
+
</div>
|
|
460
|
+
</main>
|
|
461
|
+
</div>
|
|
440
462
|
|
|
441
|
-
|
|
442
|
-
|
|
463
|
+
<section class="add-cards" id="addCards" hidden>
|
|
464
|
+
<h3>已隐藏的卡片</h3>
|
|
465
|
+
<div class="add-list" id="addList"></div>
|
|
466
|
+
</section>
|
|
443
467
|
|
|
444
468
|
<nav class="tabbar" id="tabBar" aria-label="页面切换">
|
|
445
469
|
<button class="tab-item active" type="button" data-tab="dashboard" aria-selected="true">
|
|
@@ -459,8 +483,10 @@
|
|
|
459
483
|
</button>
|
|
460
484
|
</nav>
|
|
461
485
|
|
|
462
|
-
<
|
|
486
|
+
<div class="layout-toast" id="layoutToast" role="status" hidden></div>
|
|
487
|
+
|
|
488
|
+
<script src="panel-layout.js?v=9"></script>
|
|
463
489
|
<script src="trace-view.js?v=5"></script>
|
|
464
|
-
<script src="panel.js?v=
|
|
490
|
+
<script src="panel.js?v=11"></script>
|
|
465
491
|
</body>
|
|
466
492
|
</html>
|