dsh-data-domain-knowledge 0.1.0-alpha.1
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/LICENSE +21 -0
- package/README.md +360 -0
- package/cordis.patch.yml +410 -0
- package/eval/README.md +76 -0
- package/eval/evaluate-retrieval.mjs +121 -0
- package/eval/queries.example.jsonl +2 -0
- package/lib/client.js +111415 -0
- package/lib/types/config-schema.d.ts +35 -0
- package/lib/types/config-schema.d.ts.map +1 -0
- package/lib/types/config-schema.js +34 -0
- package/lib/types/config-schema.js.map +1 -0
- package/lib/types/convert/core-loader.d.ts +32 -0
- package/lib/types/convert/core-loader.d.ts.map +1 -0
- package/lib/types/convert/core-loader.js +60 -0
- package/lib/types/convert/core-loader.js.map +1 -0
- package/lib/types/convert/host.d.ts +88 -0
- package/lib/types/convert/host.d.ts.map +1 -0
- package/lib/types/convert/host.js +479 -0
- package/lib/types/convert/host.js.map +1 -0
- package/lib/types/convert/ingest.d.ts +125 -0
- package/lib/types/convert/ingest.d.ts.map +1 -0
- package/lib/types/convert/ingest.js +228 -0
- package/lib/types/convert/ingest.js.map +1 -0
- package/lib/types/convert/settings-schema.d.ts +18 -0
- package/lib/types/convert/settings-schema.d.ts.map +1 -0
- package/lib/types/convert/settings-schema.js +26 -0
- package/lib/types/convert/settings-schema.js.map +1 -0
- package/lib/types/convert/types.d.ts +46 -0
- package/lib/types/convert/types.d.ts.map +1 -0
- package/lib/types/convert/types.js +41 -0
- package/lib/types/convert/types.js.map +1 -0
- package/lib/types/diagnosis/cards.d.ts +71 -0
- package/lib/types/diagnosis/cards.d.ts.map +1 -0
- package/lib/types/diagnosis/cards.js +482 -0
- package/lib/types/diagnosis/cards.js.map +1 -0
- package/lib/types/diagnosis/problem-classes.d.ts +51 -0
- package/lib/types/diagnosis/problem-classes.d.ts.map +1 -0
- package/lib/types/diagnosis/problem-classes.js +66 -0
- package/lib/types/diagnosis/problem-classes.js.map +1 -0
- package/lib/types/diagnosis/schema.d.ts +65 -0
- package/lib/types/diagnosis/schema.d.ts.map +1 -0
- package/lib/types/diagnosis/schema.js +208 -0
- package/lib/types/diagnosis/schema.js.map +1 -0
- package/lib/types/diagnosis/seed-source.d.ts +20 -0
- package/lib/types/diagnosis/seed-source.d.ts.map +1 -0
- package/lib/types/diagnosis/seed-source.js +96 -0
- package/lib/types/diagnosis/seed-source.js.map +1 -0
- package/lib/types/diagnosis/seed.d.ts +50 -0
- package/lib/types/diagnosis/seed.d.ts.map +1 -0
- package/lib/types/diagnosis/seed.js +242 -0
- package/lib/types/diagnosis/seed.js.map +1 -0
- package/lib/types/diagnosis/store.d.ts +81 -0
- package/lib/types/diagnosis/store.d.ts.map +1 -0
- package/lib/types/diagnosis/store.js +409 -0
- package/lib/types/diagnosis/store.js.map +1 -0
- package/lib/types/diagnosis/types.d.ts +124 -0
- package/lib/types/diagnosis/types.d.ts.map +1 -0
- package/lib/types/diagnosis/types.js +13 -0
- package/lib/types/diagnosis/types.js.map +1 -0
- package/lib/types/directory-picker.d.ts +94 -0
- package/lib/types/directory-picker.d.ts.map +1 -0
- package/lib/types/directory-picker.js +110 -0
- package/lib/types/directory-picker.js.map +1 -0
- package/lib/types/extract-model.d.ts +76 -0
- package/lib/types/extract-model.d.ts.map +1 -0
- package/lib/types/extract-model.js +193 -0
- package/lib/types/extract-model.js.map +1 -0
- package/lib/types/extract.d.ts +121 -0
- package/lib/types/extract.d.ts.map +1 -0
- package/lib/types/extract.js +549 -0
- package/lib/types/extract.js.map +1 -0
- package/lib/types/fts.d.ts +96 -0
- package/lib/types/fts.d.ts.map +1 -0
- package/lib/types/fts.js +184 -0
- package/lib/types/fts.js.map +1 -0
- package/lib/types/index.d.ts +39 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +1112 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/intent/engine.d.ts +108 -0
- package/lib/types/intent/engine.d.ts.map +1 -0
- package/lib/types/intent/engine.js +501 -0
- package/lib/types/intent/engine.js.map +1 -0
- package/lib/types/intent/host.d.ts +88 -0
- package/lib/types/intent/host.d.ts.map +1 -0
- package/lib/types/intent/host.js +389 -0
- package/lib/types/intent/host.js.map +1 -0
- package/lib/types/intent/preset-tools.d.ts +37 -0
- package/lib/types/intent/preset-tools.d.ts.map +1 -0
- package/lib/types/intent/preset-tools.js +45 -0
- package/lib/types/intent/preset-tools.js.map +1 -0
- package/lib/types/intent/settings-schema.d.ts +59 -0
- package/lib/types/intent/settings-schema.d.ts.map +1 -0
- package/lib/types/intent/settings-schema.js +57 -0
- package/lib/types/intent/settings-schema.js.map +1 -0
- package/lib/types/intent/store.d.ts +75 -0
- package/lib/types/intent/store.d.ts.map +1 -0
- package/lib/types/intent/store.js +139 -0
- package/lib/types/intent/store.js.map +1 -0
- package/lib/types/intent/tools.d.ts +63 -0
- package/lib/types/intent/tools.d.ts.map +1 -0
- package/lib/types/intent/tools.js +108 -0
- package/lib/types/intent/tools.js.map +1 -0
- package/lib/types/intent/types.d.ts +189 -0
- package/lib/types/intent/types.d.ts.map +1 -0
- package/lib/types/intent/types.js +62 -0
- package/lib/types/intent/types.js.map +1 -0
- package/lib/types/knowledge-bases.d.ts +266 -0
- package/lib/types/knowledge-bases.d.ts.map +1 -0
- package/lib/types/knowledge-bases.js +1107 -0
- package/lib/types/knowledge-bases.js.map +1 -0
- package/lib/types/layout.d.ts +262 -0
- package/lib/types/layout.d.ts.map +1 -0
- package/lib/types/layout.js +312 -0
- package/lib/types/layout.js.map +1 -0
- package/lib/types/migrate.d.ts +110 -0
- package/lib/types/migrate.d.ts.map +1 -0
- package/lib/types/migrate.js +280 -0
- package/lib/types/migrate.js.map +1 -0
- package/lib/types/recall-rank.d.ts +158 -0
- package/lib/types/recall-rank.d.ts.map +1 -0
- package/lib/types/recall-rank.js +261 -0
- package/lib/types/recall-rank.js.map +1 -0
- package/lib/types/runtime.d.ts +568 -0
- package/lib/types/runtime.d.ts.map +1 -0
- package/lib/types/runtime.js +3045 -0
- package/lib/types/runtime.js.map +1 -0
- package/lib/types/settings-schema.d.ts +117 -0
- package/lib/types/settings-schema.d.ts.map +1 -0
- package/lib/types/settings-schema.js +92 -0
- package/lib/types/settings-schema.js.map +1 -0
- package/lib/types/settings-volatile.d.ts +102 -0
- package/lib/types/settings-volatile.d.ts.map +1 -0
- package/lib/types/settings-volatile.js +114 -0
- package/lib/types/settings-volatile.js.map +1 -0
- package/lib/types/types.d.ts +799 -0
- package/lib/types/types.d.ts.map +1 -0
- package/lib/types/types.js +387 -0
- package/lib/types/types.js.map +1 -0
- package/lib/types/wiki-types.d.ts +68 -0
- package/lib/types/wiki-types.d.ts.map +1 -0
- package/lib/types/wiki-types.js +322 -0
- package/lib/types/wiki-types.js.map +1 -0
- package/package.json +101 -0
- package/preset/tita-data-agent/agent.cordis.yml +376 -0
- package/preset/tita-data-agent/preset.yml +3 -0
- package/python/requirements.txt +8 -0
- package/scripts/doctor.mjs +70 -0
- package/scripts/e2e-pipeline.mjs +355 -0
- package/scripts/install-agent-preset.mjs +92 -0
- package/scripts/setup-embedding.sh +34 -0
- package/scripts/sync-agent-preset.mjs +188 -0
- package/src/client/AgentPresetCard.tsx +247 -0
- package/src/client/DirectoryPicker.tsx +357 -0
- package/src/client/InfoHint.tsx +65 -0
- package/src/client/IntentLogicTab.tsx +185 -0
- package/src/client/IntentTab.tsx +715 -0
- package/src/client/KnowledgeBaseTab.tsx +1454 -0
- package/src/client/KnowledgeGraphView.tsx +306 -0
- package/src/client/KnowledgePanel.tsx +381 -0
- package/src/client/KnowledgeStepRail.tsx +60 -0
- package/src/client/NodeSettings.tsx +392 -0
- package/src/client/PreviewSections.tsx +116 -0
- package/src/client/RecallPanel.tsx +399 -0
- package/src/client/TypeDefinitionDrawer.tsx +215 -0
- package/src/client/WikiFlowCard.tsx +226 -0
- package/src/client/WikiTypeEditor.tsx +332 -0
- package/src/client/agent-preset.ts +121 -0
- package/src/client/arch/AgentArchitectureGraph.tsx +219 -0
- package/src/client/arch/NodeLogicPanel.tsx +133 -0
- package/src/client/arch/ProblemDetailPanel.tsx +88 -0
- package/src/client/arch/model.ts +691 -0
- package/src/client/architecture.css +191 -0
- package/src/client/architecture.tsx +530 -0
- package/src/client/attribution/AttributionGraph.tsx +104 -0
- package/src/client/attribution/AttributionTab.tsx +332 -0
- package/src/client/attribution/CaseView.tsx +102 -0
- package/src/client/attribution/GraphStage.tsx +87 -0
- package/src/client/attribution/RunView.tsx +184 -0
- package/src/client/attribution/StageChrome.tsx +403 -0
- package/src/client/attribution/ViewSwitch.tsx +107 -0
- package/src/client/attribution/graph-options.ts +381 -0
- package/src/client/attribution/model.ts +462 -0
- package/src/client/config-scope.ts +119 -0
- package/src/client/convert/ConvertPanel.tsx +594 -0
- package/src/client/convert/styles.css +138 -0
- package/src/client/convert/styles.ts +49 -0
- package/src/client/format.ts +39 -0
- package/src/client/graph/layout.ts +181 -0
- package/src/client/graph.css +113 -0
- package/src/client/index.ts +98 -0
- package/src/client/problem-domains.ts +114 -0
- package/src/client/styles.css +940 -0
- package/src/client/styles.ts +11 -0
- package/src/client/useFitScale.ts +68 -0
- package/src/config-schema.ts +45 -0
- package/src/convert/core-loader.ts +68 -0
- package/src/convert/host.ts +579 -0
- package/src/convert/ingest.ts +367 -0
- package/src/convert/settings-schema.ts +27 -0
- package/src/convert/types.ts +65 -0
- package/src/diagnosis/cards.ts +498 -0
- package/src/diagnosis/problem-classes.ts +117 -0
- package/src/diagnosis/schema.ts +260 -0
- package/src/diagnosis/seed-source.ts +107 -0
- package/src/diagnosis/seed.ts +291 -0
- package/src/diagnosis/store.ts +432 -0
- package/src/diagnosis/types.ts +152 -0
- package/src/directory-picker.ts +164 -0
- package/src/extract-model.ts +227 -0
- package/src/extract.ts +632 -0
- package/src/fts.ts +203 -0
- package/src/index.ts +1091 -0
- package/src/intent/README.md +63 -0
- package/src/intent/engine.ts +527 -0
- package/src/intent/host.ts +462 -0
- package/src/intent/preset-tools.ts +48 -0
- package/src/intent/settings-schema.ts +63 -0
- package/src/intent/store.ts +143 -0
- package/src/intent/tools.ts +139 -0
- package/src/intent/types.ts +245 -0
- package/src/knowledge-bases.ts +1160 -0
- package/src/layout.ts +350 -0
- package/src/migrate.ts +262 -0
- package/src/python/embedding_worker.py +471 -0
- package/src/recall-rank.ts +299 -0
- package/src/runtime.ts +3069 -0
- package/src/settings-schema.ts +94 -0
- package/src/settings-volatile.ts +122 -0
- package/src/types.ts +1140 -0
- package/src/wiki-types.ts +357 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/* =====================================================================
|
|
2
|
+
Agent 概览:一张 AntV 架构图 + 画布内的详情浮层
|
|
3
|
+
---------------------------------------------------------------------
|
|
4
|
+
0025 之前这里住的是回字形 / 阶段带那套 DOM 图,类名已全部删除。
|
|
5
|
+
0026 之前画布上方有一条 flex 工具条(图例 + 提示 + 统计 + 全屏),栏宽一窄
|
|
6
|
+
`flex-wrap` 就把全屏按钮甩到第二行 —— 那正是「全屏不在右上角」的来源。
|
|
7
|
+
0027 之前节点详情是画布**右边的一列**(旧侧栏类名已全部删除):它把画布挤窄到
|
|
8
|
+
494px(缩放 0.42,卡片上的字缩到读不出),而且「图」与「这张图上的东西」
|
|
9
|
+
分成两块表面。现在它是画布内的浮层,侧栏那套类名随之删除。
|
|
10
|
+
0029 之前画布左上角还压着两行图例(边语义 + 全图状态分布),现在也撤了:
|
|
11
|
+
读法在带名、卡片状态字与浮层正文里,画布上不留说明板。
|
|
12
|
+
|
|
13
|
+
这个文件跟着架构视图走,不并进插件通用 styles.css:它是「一张图 + 一个
|
|
14
|
+
浮层」的版式,和知识库 / 意图 / 记忆那些卡片页没有共同词汇。
|
|
15
|
+
===================================================================== */
|
|
16
|
+
|
|
17
|
+
/* ---------------------------------------------------------------- 版式 */
|
|
18
|
+
|
|
19
|
+
/* **一个表面。** 画布拥有边框、圆角、投影;详情浮层浮在它里面,
|
|
20
|
+
不另起一列、不另起一张卡。 */
|
|
21
|
+
.tita-archStage {
|
|
22
|
+
position: relative;
|
|
23
|
+
display: flex;
|
|
24
|
+
min-width: 0;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
border: 1px solid var(--tita-line);
|
|
27
|
+
border-radius: 10px;
|
|
28
|
+
background: var(--tita-surface);
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.tita-archStage:fullscreen { border: 0; border-radius: 0; }
|
|
33
|
+
.tita-archStage:fullscreen .tita-archPane { flex: 1 1 auto; min-height: 0; }
|
|
34
|
+
|
|
35
|
+
/* 画布那一列。**浮层的定位上下文是它**,不是整块表面 —— 否则右上角那排操作
|
|
36
|
+
会浮到详情浮层头上。 */
|
|
37
|
+
.tita-archPane { position: relative; display: flex; flex: 1 1 auto; min-width: 0; flex-direction: column; }
|
|
38
|
+
|
|
39
|
+
/* ---------------------------------------------------------------- 画布 */
|
|
40
|
+
|
|
41
|
+
/* 浮层:只剩右上角的操作(缩放档 + 全屏)。0029 撤掉了左上角那两行图例 ——
|
|
42
|
+
画布上不再压一块半透明说明板,读法改由带名、卡片状态字与浮层正文承担。
|
|
43
|
+
`nowrap` 仍然保留:将来再有东西浮上来,也不许把操作挤到第二行去。 */
|
|
44
|
+
.tita-archOverlay {
|
|
45
|
+
position: absolute;
|
|
46
|
+
z-index: 2;
|
|
47
|
+
top: 10px;
|
|
48
|
+
right: 10px;
|
|
49
|
+
left: 10px;
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: flex-start;
|
|
52
|
+
justify-content: flex-end;
|
|
53
|
+
gap: 10px;
|
|
54
|
+
flex-wrap: nowrap;
|
|
55
|
+
pointer-events: none;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.tita-archOverlayActions { display: flex; flex: 0 0 auto; align-items: center; gap: 10px; padding: 3px 0; pointer-events: auto; }
|
|
59
|
+
/* 缩放档:两段的分段控件。两段都在,是因为一个来回翻转的按钮说不清「现在是哪一档」。 */
|
|
60
|
+
.tita-archZoom { display: inline-flex; overflow: hidden; border: 1px solid var(--tita-line); border-radius: 7px; background: var(--tita-surface); }
|
|
61
|
+
.tita-archZoomOption { border: 0; background: transparent; padding: 4px 9px; color: var(--tita-ink-muted); font: inherit; font-size: 11px; cursor: pointer; }
|
|
62
|
+
.tita-archZoomOption + .tita-archZoomOption { border-left: 1px solid var(--tita-line); }
|
|
63
|
+
.tita-archZoomOption:hover { background: var(--tita-surface-muted); color: var(--tita-ink); }
|
|
64
|
+
.tita-archZoomOn { background: var(--tita-surface-muted); color: var(--tita-ink); font-weight: 600; }
|
|
65
|
+
|
|
66
|
+
/* 画布容器:**画布永远是设计尺寸,缩放由板上的 transform 承担**。
|
|
67
|
+
这张画布设计宽 1172px、高 1132px(三条链路 + 一条问题域带),宿主右侧栏只有
|
|
68
|
+
380–840px。所以外层不去「适配」画布,而是按缩放比把整块板缩下来:`fit` 档下板宽
|
|
69
|
+
正好等于栏宽(没有可滚的余量),`1:1` 档下板保持设计尺寸、由滚动条承载。
|
|
70
|
+
缩放比由组件按设计常量算出(`CANVAS_WIDTH/HEIGHT`),不写进 CSS,避免两处各写一份。 */
|
|
71
|
+
.tita-archScroll { width: 100%; min-width: 0; overflow: auto; background: var(--tita-surface); }
|
|
72
|
+
.tita-archStage:fullscreen .tita-archScroll {
|
|
73
|
+
flex: 1 1 auto;
|
|
74
|
+
min-height: 0;
|
|
75
|
+
/* 全屏下 `fit` 档两边都可能有余量,居中;`safe` 保证 1:1 档溢出时左上角不被裁掉。 */
|
|
76
|
+
display: flex;
|
|
77
|
+
align-items: safe center;
|
|
78
|
+
justify-content: safe center;
|
|
79
|
+
}
|
|
80
|
+
.tita-archBoard { min-width: 0; flex: 0 0 auto; }
|
|
81
|
+
.tita-archCanvas { width: 100%; height: 100%; min-width: 0; }
|
|
82
|
+
|
|
83
|
+
/* 画布里的卡片与问题域牌子都是 G6 的 HTML 节点;选中态由 updateNodeData 换
|
|
84
|
+
innerHTML,这里只补 hover 反馈,否则鼠标移到卡片上看不出它可点。 */
|
|
85
|
+
.tita-archStage .tita-archCard { cursor: pointer; }
|
|
86
|
+
.tita-archStage .tita-archCard:hover { border-color: var(--tita-primary) !important; box-shadow: 0 0 0 3px var(--tita-primary-soft) !important; }
|
|
87
|
+
.tita-archStage .tita-archCardOn { cursor: default; }
|
|
88
|
+
.tita-archStage .tita-archPlate { cursor: pointer; }
|
|
89
|
+
.tita-archStage .tita-archPlate:hover { border-color: var(--tita-primary) !important; box-shadow: 0 0 0 3px var(--tita-primary-soft) !important; }
|
|
90
|
+
.tita-archStage .tita-archPlateOn { cursor: default; }
|
|
91
|
+
|
|
92
|
+
/* ---------------------------------------------------------------- 详情浮层 */
|
|
93
|
+
|
|
94
|
+
/* 浮层的高度取「板高 - 顶部留白」与「视口上限」的较小值:`1:1` 档下板高有 1132px,
|
|
95
|
+
如果浮层跟着板高长,它的下半截会落到宿主可视区外面去。 */
|
|
96
|
+
.tita-archInspector {
|
|
97
|
+
position: absolute;
|
|
98
|
+
z-index: 3;
|
|
99
|
+
top: 58px;
|
|
100
|
+
right: 10px;
|
|
101
|
+
display: flex;
|
|
102
|
+
width: min(360px, calc(100% - 20px));
|
|
103
|
+
height: min(calc(var(--arch-board-h, 600px) - 68px), 76vh);
|
|
104
|
+
flex-direction: column;
|
|
105
|
+
border: 1px solid var(--tita-line);
|
|
106
|
+
border-radius: 9px;
|
|
107
|
+
background: color-mix(in srgb, var(--tita-surface) 97%, transparent);
|
|
108
|
+
box-shadow: 0 12px 28px rgba(16, 24, 40, .13);
|
|
109
|
+
backdrop-filter: blur(3px);
|
|
110
|
+
overflow: hidden;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* 窄到放不下两列时,浮层改成底部抽屉:它不再盖住左上角的图例与右上角的
|
|
114
|
+
缩放 / 全屏 —— 那两个控件是「怎么看这张图」的全部入口,盖住它们就等于把人锁在浮层里。 */
|
|
115
|
+
@container (max-width: 620px) {
|
|
116
|
+
.tita-archInspector {
|
|
117
|
+
top: auto;
|
|
118
|
+
right: 10px;
|
|
119
|
+
left: 10px;
|
|
120
|
+
width: auto;
|
|
121
|
+
height: min(52%, 420px);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* ---------------------------------------------------------------- 节点 / 问题域面板 */
|
|
126
|
+
|
|
127
|
+
.tita-archPanel {
|
|
128
|
+
display: flex;
|
|
129
|
+
min-width: 0;
|
|
130
|
+
flex-direction: column;
|
|
131
|
+
background: var(--tita-surface);
|
|
132
|
+
overflow: hidden;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
.tita-archPanelHead { display: flex; flex: 0 0 auto; align-items: flex-start; gap: 9px; border-bottom: 1px solid var(--tita-line); padding: 11px 12px 10px; }
|
|
136
|
+
.tita-archPanelIcon { display: inline-flex; flex: 0 0 auto; width: 30px; height: 30px; align-items: center; justify-content: center; border: 1px solid var(--tita-line); border-radius: 7px; background: var(--tita-surface-muted); color: var(--tita-ink); }
|
|
137
|
+
.tita-archPanelHeadCopy { display: grid; flex: 1 1 auto; gap: 3px; min-width: 0; }
|
|
138
|
+
.tita-archPanelTitleRow { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
|
|
139
|
+
.tita-archPanelTitleRow h3 { margin: 0; color: var(--tita-ink); font-size: 13.5px; font-weight: 650; }
|
|
140
|
+
.tita-archPanelHeadCopy p { margin: 0; color: var(--tita-ink-muted); font-size: 11px; line-height: 1.5; }
|
|
141
|
+
/* 链路归属:一枚小圆点 + 链路名。颜色由行内 style 给(链路身份色在 model.ts 里)。 */
|
|
142
|
+
.tita-archPanelLane { display: inline-flex; align-items: center; gap: 5px; color: var(--tita-ink-muted); font-size: 10px; }
|
|
143
|
+
.tita-archPanelLane > i { width: 6px; height: 6px; border-radius: 999px; }
|
|
144
|
+
|
|
145
|
+
.tita-archPanelBody { display: grid; min-width: 0; overflow-y: auto; }
|
|
146
|
+
.tita-archPanelSection { display: grid; gap: 8px; border-top: 1px solid var(--tita-line); padding: 12px; }
|
|
147
|
+
.tita-archPanelSection:first-child { border-top: 0; }
|
|
148
|
+
.tita-archPanelSectionHead { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
|
|
149
|
+
.tita-archPanelSectionHead h4 { margin: 0; color: var(--tita-ink); font-size: 11.5px; font-weight: 650; }
|
|
150
|
+
.tita-archPanelEyebrow { color: var(--tita-ink-faint); font-size: 9.5px; font-weight: 650; font-variant-numeric: tabular-nums; }
|
|
151
|
+
.tita-archPanelText { margin: 0; color: var(--tita-ink-muted); font-size: 11.5px; line-height: 1.72; }
|
|
152
|
+
/* 状态说明块:用「整圈细边框 + 浅底」而不是左侧粗色条。左侧粗色条是
|
|
153
|
+
AI 生成界面的典型指纹,而且它并不比一圈细边框多传递任何信息。 */
|
|
154
|
+
.tita-archPanelNote { margin: 0; border: 1px solid var(--tita-line); border-radius: 7px; background: var(--tita-surface-muted); padding: 7px 9px; color: var(--tita-ink-muted); font-size: 11px; line-height: 1.65; }
|
|
155
|
+
|
|
156
|
+
.tita-archPanelFlow { display: grid; gap: 4px; border: 1px solid var(--tita-line); border-radius: 8px; background: var(--tita-surface); padding: 8px 9px; color: var(--tita-ink); }
|
|
157
|
+
.tita-archPanelFlow > span { display: grid; gap: 1px; font-size: 11px; }
|
|
158
|
+
.tita-archPanelFlow small { color: var(--tita-ink-faint); font-size: 9.5px; font-weight: 650; letter-spacing: .06em; }
|
|
159
|
+
.tita-archPanelFlow > svg { color: var(--tita-ink-faint); }
|
|
160
|
+
|
|
161
|
+
.tita-archPanelSteps { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
|
|
162
|
+
.tita-archPanelStep { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 7px; align-items: start; }
|
|
163
|
+
.tita-archPanelStep > svg { margin-top: 2px; color: var(--tita-tone-green); }
|
|
164
|
+
.tita-archPanelStep > span { display: grid; gap: 1px; min-width: 0; }
|
|
165
|
+
.tita-archPanelStep b { color: var(--tita-ink); font-size: 11.5px; font-weight: 600; }
|
|
166
|
+
.tita-archPanelStep small { color: var(--tita-ink-muted); font-size: 10.5px; line-height: 1.55; }
|
|
167
|
+
.tita-archPanelStepTodo > svg { color: var(--tita-ink-faint); }
|
|
168
|
+
.tita-archPanelStepTodo b { color: var(--tita-ink-muted); }
|
|
169
|
+
|
|
170
|
+
.tita-archPanelMetrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; }
|
|
171
|
+
.tita-archPanelMetric { display: grid; gap: 2px; border: 1px solid var(--tita-line); border-radius: 7px; background: var(--tita-surface); padding: 7px 9px; }
|
|
172
|
+
.tita-archPanelMetric small { color: var(--tita-ink-faint); font-size: 9.5px; font-weight: 600; letter-spacing: .03em; }
|
|
173
|
+
.tita-archPanelMetric b { color: var(--tita-ink); font-size: 14px; font-weight: 650; font-variant-numeric: tabular-nums; }
|
|
174
|
+
|
|
175
|
+
.tita-archPanelRecords { display: grid; gap: 0; margin: 0; }
|
|
176
|
+
.tita-archPanelRecords > div { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--tita-line); padding: 6px 0; }
|
|
177
|
+
.tita-archPanelRecords > div:last-child { border-bottom: 0; }
|
|
178
|
+
.tita-archPanelRecords dt { color: var(--tita-ink-muted); font-size: 10.5px; }
|
|
179
|
+
.tita-archPanelRecords dd { margin: 0; color: var(--tita-ink); font-size: 11px; font-weight: 600; text-align: right; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
|
|
180
|
+
|
|
181
|
+
.tita-archPanelHint { display: flex; align-items: flex-start; gap: 6px; margin: 0; color: var(--tita-ink-muted); font-size: 11px; line-height: 1.6; }
|
|
182
|
+
.tita-archPanelHint > svg { flex: 0 0 auto; margin-top: 2px; }
|
|
183
|
+
.tita-archPanelActions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
|
|
184
|
+
|
|
185
|
+
/* 机制标签:可点的跳到对应节点,没有落地的就是一枚静态标签 + 「未落地」徽标。
|
|
186
|
+
两种都在,因为「这个域现在靠什么跑」和「它还想靠什么」是两件事。 */
|
|
187
|
+
.tita-archPanelChips { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
|
|
188
|
+
.tita-archPanelChip { display: inline-flex; align-items: center; gap: 2px; border: 1px solid var(--tita-line); border-radius: 999px; background: var(--tita-surface); color: var(--tita-ink-muted); padding: 2px 4px 2px 9px; font: inherit; font-size: 10.5px; font-weight: 600; cursor: pointer; transition: border-color 140ms ease, color 140ms ease, background 140ms ease; }
|
|
189
|
+
.tita-archPanelChip:hover { border-color: var(--tita-primary-line); background: var(--tita-primary-soft); color: var(--tita-primary); }
|
|
190
|
+
.tita-archPanelChip:focus-visible { outline: 2px solid var(--tita-focus-ring); outline-offset: 1px; }
|
|
191
|
+
.tita-archPanelChipOff { display: inline-flex; align-items: center; gap: 5px; border: 1px dashed var(--tita-line); border-radius: 999px; color: var(--tita-ink-faint); padding: 2px 8px; font-size: 10.5px; }
|