@shendeguize/dsh-agent-sidecar 0.1.0 → 0.2.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/README.md +78 -11
- package/lib/client.js +4708 -2932
- package/lib/client.js.map +1 -1
- package/package.json +3 -1
- package/src/client/analysis/AnalysisPanel.tsx +19 -27
- package/src/client/analysis/analysis.module.css +36 -97
- package/src/client/board/Board.tsx +255 -48
- package/src/client/board/board.module.css +113 -92
- package/src/client/board/logic.ts +99 -21
- package/src/client/board/project-view-logic.ts +27 -34
- package/src/client/board/project-view.module.css +46 -83
- package/src/client/board/project-view.tsx +50 -8
- package/src/client/board/strings.ts +70 -85
- package/src/client/commands.ts +30 -15
- package/src/client/controller.ts +27 -7
- package/src/client/detail/SessionDetail.tsx +234 -37
- package/src/client/detail/detail.module.css +100 -153
- package/src/client/detail/logic.ts +220 -29
- package/src/client/detail/strings.ts +66 -77
- package/src/client/detail-glue.ts +33 -0
- package/src/client/detail-view.module.css +43 -35
- package/src/client/detail-view.tsx +138 -118
- package/src/client/dsh-tools/LineageTree.tsx +22 -13
- package/src/client/dsh-tools/SearchPanel.tsx +18 -11
- package/src/client/dsh-tools/dsh-tools.module.css +53 -140
- package/src/client/dsh-tools/strings.ts +42 -77
- package/src/client/index.ts +285 -124
- package/src/client/inject/InjectPanel.tsx +81 -61
- package/src/client/inject/inject.module.css +97 -197
- package/src/client/inject/logic.ts +38 -0
- package/src/client/lifecycle/handoff.ts +83 -0
- package/src/client/locales/en.ts +91 -4
- package/src/client/locales/host.ts +131 -0
- package/src/client/locales/index.ts +196 -8
- package/src/client/locales/react.ts +10 -0
- package/src/client/locales/view.ts +38 -0
- package/src/client/locales/zh.ts +200 -125
- package/src/client/mount.tsx +75 -41
- package/src/client/navigation/CenterOverlay.tsx +40 -0
- package/src/client/navigation/center-overlay.module.css +51 -0
- package/src/client/navigation/center.ts +45 -0
- package/src/client/navigation/modal-isolation.ts +152 -0
- package/src/client/navigation/modal-surface-anchor.ts +72 -0
- package/src/client/navigation/sidebar-entry.module.css +73 -0
- package/src/client/navigation/sidebar-entry.ts +309 -0
- package/src/client/primitives/StaticPill.tsx +21 -0
- package/src/client/settings-card.module.css +35 -119
- package/src/client/settings-card.tsx +31 -153
- package/src/client/settings-fields.tsx +131 -0
- package/src/client/sidebar/SidebarTab.tsx +156 -0
- package/src/client/sidebar/model.ts +65 -0
- package/src/client/sidebar/sidebar-tab.module.css +118 -0
- package/src/client/sidebar-tab.tsx +46 -320
- package/src/client/theme/agsc.module.css +31 -0
- package/src/client/theme/parts.ts +56 -0
- package/src/client/ui-integration.ts +86 -0
- package/src/client/widget.tsx +42 -16
- package/src/client/inject/overlay.module.css +0 -22
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* dsh deep-query tools styles (lineage tree + search panel, design §5.1
|
|
3
|
-
* view 2 / §5.4): every color rides a --dsw-alias-* design token with a
|
|
4
|
-
* neutral fallback — no theme colors are hardcoded as the only value.
|
|
5
|
-
* Same posture as board.module.css.
|
|
6
|
-
*/
|
|
1
|
+
/* dsh deep-query tools over the shared Agent Sidecar / DSH token contract. */
|
|
7
2
|
|
|
8
3
|
.panel {
|
|
9
4
|
display: flex;
|
|
10
5
|
flex-direction: column;
|
|
11
6
|
gap: 8px;
|
|
12
7
|
min-width: 0;
|
|
13
|
-
color: var(--
|
|
8
|
+
color: var(--agsc-fg);
|
|
14
9
|
}
|
|
15
10
|
|
|
16
11
|
.panelHead {
|
|
@@ -23,41 +18,35 @@
|
|
|
23
18
|
.panelTitle {
|
|
24
19
|
font-size: 13px;
|
|
25
20
|
font-weight: 600;
|
|
26
|
-
color: var(--dsw-alias-label-primary
|
|
21
|
+
color: var(--dsw-alias-label-primary);
|
|
27
22
|
}
|
|
28
23
|
|
|
29
24
|
.panelCount {
|
|
30
|
-
font-size: 11px;
|
|
31
25
|
flex: none;
|
|
32
|
-
color: var(--dsw-alias-label-secondary, #57606a);
|
|
33
|
-
background: var(--dsw-alias-bg-layer-2, rgba(0, 0, 0, 0.04));
|
|
34
|
-
border-radius: 999px;
|
|
35
|
-
padding: 0 8px;
|
|
36
|
-
line-height: 18px;
|
|
37
26
|
}
|
|
38
27
|
|
|
39
28
|
/* ------------------------------------------------- shared status bodies */
|
|
40
29
|
|
|
41
30
|
.mutedLine {
|
|
42
31
|
font-size: 12px;
|
|
43
|
-
color: var(--dsw-alias-label-secondary
|
|
32
|
+
color: var(--dsw-alias-label-secondary);
|
|
44
33
|
}
|
|
45
34
|
|
|
46
35
|
.errorCard {
|
|
47
36
|
font-size: 12px;
|
|
48
37
|
line-height: 18px;
|
|
49
38
|
padding: 8px 10px;
|
|
50
|
-
border-radius:
|
|
51
|
-
color: var(--
|
|
52
|
-
background: var(--dsw-alias-state-error-secondary
|
|
53
|
-
border: 1px solid var(--dsw-alias-state-error-secondary
|
|
39
|
+
border-radius: var(--agsc-radius-control);
|
|
40
|
+
color: var(--agsc-err);
|
|
41
|
+
background: var(--dsw-alias-state-error-secondary);
|
|
42
|
+
border: 1px solid var(--dsw-alias-state-error-secondary);
|
|
54
43
|
}
|
|
55
44
|
|
|
56
45
|
.errorDetail {
|
|
57
46
|
display: block;
|
|
58
47
|
margin-top: 2px;
|
|
59
48
|
font-size: 11px;
|
|
60
|
-
color: var(--dsw-alias-label-secondary
|
|
49
|
+
color: var(--dsw-alias-label-secondary);
|
|
61
50
|
word-break: break-all;
|
|
62
51
|
}
|
|
63
52
|
|
|
@@ -67,27 +56,27 @@
|
|
|
67
56
|
flex-direction: column;
|
|
68
57
|
gap: 4px;
|
|
69
58
|
padding: 10px 12px;
|
|
70
|
-
border-radius:
|
|
71
|
-
border: 1px dashed var(--
|
|
72
|
-
background: var(--
|
|
59
|
+
border-radius: var(--agsc-radius-control);
|
|
60
|
+
border: 1px dashed var(--agsc-border-strong);
|
|
61
|
+
background: var(--agsc-bg-raised);
|
|
73
62
|
}
|
|
74
63
|
|
|
75
64
|
.degradeTitle {
|
|
76
65
|
font-size: 12px;
|
|
77
66
|
font-weight: 600;
|
|
78
|
-
color: var(--dsw-alias-label-primary
|
|
67
|
+
color: var(--dsw-alias-label-primary);
|
|
79
68
|
}
|
|
80
69
|
|
|
81
70
|
.degradeBody {
|
|
82
71
|
font-size: 12px;
|
|
83
72
|
line-height: 18px;
|
|
84
|
-
color: var(--dsw-alias-label-secondary
|
|
73
|
+
color: var(--dsw-alias-label-secondary);
|
|
85
74
|
}
|
|
86
75
|
|
|
87
76
|
.degradeDetail {
|
|
88
77
|
font-size: 11px;
|
|
89
|
-
font-family:
|
|
90
|
-
color: var(--dsw-alias-label-tertiary
|
|
78
|
+
font-family: var(--ds-font-family-code);
|
|
79
|
+
color: var(--dsw-alias-label-tertiary);
|
|
91
80
|
word-break: break-all;
|
|
92
81
|
}
|
|
93
82
|
|
|
@@ -96,10 +85,10 @@
|
|
|
96
85
|
font-size: 12px;
|
|
97
86
|
line-height: 18px;
|
|
98
87
|
padding: 5px 10px;
|
|
99
|
-
border-radius:
|
|
100
|
-
color: var(--
|
|
101
|
-
background: var(--dsw-alias-state-warn-tertiary
|
|
102
|
-
border: 1px solid var(--dsw-alias-state-warn-secondary
|
|
88
|
+
border-radius: var(--agsc-radius-control);
|
|
89
|
+
color: var(--agsc-warn);
|
|
90
|
+
background: var(--dsw-alias-state-warn-tertiary);
|
|
91
|
+
border: 1px solid var(--dsw-alias-state-warn-secondary);
|
|
103
92
|
}
|
|
104
93
|
|
|
105
94
|
/* --------------------------------------------------------- lineage tree */
|
|
@@ -125,16 +114,6 @@
|
|
|
125
114
|
padding: 0;
|
|
126
115
|
font-size: 10px;
|
|
127
116
|
line-height: 1;
|
|
128
|
-
color: var(--dsw-alias-label-tertiary, #6e7781);
|
|
129
|
-
background: transparent;
|
|
130
|
-
border: none;
|
|
131
|
-
border-radius: 4px;
|
|
132
|
-
cursor: pointer;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.toggle:hover {
|
|
136
|
-
color: var(--dsw-alias-label-primary, #1f2328);
|
|
137
|
-
background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.04));
|
|
138
117
|
}
|
|
139
118
|
|
|
140
119
|
/* Alignment spacer where a leaf row has no toggle. */
|
|
@@ -144,40 +123,26 @@
|
|
|
144
123
|
}
|
|
145
124
|
|
|
146
125
|
.node {
|
|
147
|
-
|
|
148
|
-
align-items: center;
|
|
126
|
+
justify-content: flex-start;
|
|
149
127
|
gap: 6px;
|
|
128
|
+
height: auto;
|
|
150
129
|
min-width: 0;
|
|
151
|
-
font-family: inherit;
|
|
152
|
-
font-size: 12px;
|
|
153
130
|
text-align: left;
|
|
154
131
|
padding: 2px 8px;
|
|
155
|
-
border-radius: 6px;
|
|
156
|
-
border: 1px solid transparent;
|
|
157
|
-
background: transparent;
|
|
158
|
-
color: var(--dsw-alias-label-primary, #1f2328);
|
|
159
|
-
cursor: pointer;
|
|
160
132
|
}
|
|
161
133
|
|
|
162
|
-
.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
.node:focus-visible {
|
|
168
|
-
outline: 2px solid var(--dsw-alias-brand-primary, #4d6bfe);
|
|
169
|
-
outline-offset: 1px;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
/* Current-session highlight (the row the user is inspecting). */
|
|
134
|
+
/* Current-session highlight (the row the user is inspecting). Brand tint
|
|
135
|
+
* rides the real brand-primary token — brand-secondary/tertiary do not
|
|
136
|
+
* exist in the dsh token table (UX-15). */
|
|
173
137
|
.node[data-current='true'] {
|
|
174
|
-
|
|
175
|
-
background: var(--
|
|
138
|
+
color: var(--agsc-accent);
|
|
139
|
+
background: color-mix(in srgb, var(--agsc-accent) 8%, transparent);
|
|
140
|
+
box-shadow: inset 0 0 0 1px var(--agsc-accent);
|
|
176
141
|
cursor: default;
|
|
177
142
|
}
|
|
178
143
|
|
|
179
144
|
.nodeId {
|
|
180
|
-
font-family:
|
|
145
|
+
font-family: var(--ds-font-family-code);
|
|
181
146
|
overflow: hidden;
|
|
182
147
|
text-overflow: ellipsis;
|
|
183
148
|
white-space: nowrap;
|
|
@@ -186,30 +151,24 @@
|
|
|
186
151
|
.nodeRole {
|
|
187
152
|
flex: none;
|
|
188
153
|
font-size: 11px;
|
|
189
|
-
color: var(--dsw-alias-label-tertiary
|
|
154
|
+
color: var(--dsw-alias-label-tertiary);
|
|
190
155
|
}
|
|
191
156
|
|
|
192
157
|
.nodeBadge {
|
|
193
158
|
flex: none;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
color:
|
|
199
|
-
background: var(--dsw-alias-bg-layer-2, rgba(0, 0, 0, 0.04));
|
|
200
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.nodeBadge > span,
|
|
162
|
+
.matchTag > span {
|
|
163
|
+
color: inherit;
|
|
201
164
|
}
|
|
202
165
|
|
|
203
166
|
.nodeBadge[data-kind='current'] {
|
|
204
|
-
color: var(--
|
|
205
|
-
border-color: var(--dsw-alias-brand-primary, #4d6bfe);
|
|
206
|
-
background: transparent;
|
|
167
|
+
color: var(--agsc-accent);
|
|
207
168
|
}
|
|
208
169
|
|
|
209
170
|
.nodeBadge[data-kind='live'] {
|
|
210
|
-
color: var(--
|
|
211
|
-
border-color: var(--dsw-alias-state-success-secondary, rgba(26, 127, 55, 0.32));
|
|
212
|
-
background: transparent;
|
|
171
|
+
color: var(--agsc-ok);
|
|
213
172
|
}
|
|
214
173
|
|
|
215
174
|
/* --------------------------------------------------------- search panel */
|
|
@@ -223,47 +182,10 @@
|
|
|
223
182
|
.searchInput {
|
|
224
183
|
flex: 1;
|
|
225
184
|
min-width: 0;
|
|
226
|
-
font-size: 12px;
|
|
227
|
-
font-family: inherit;
|
|
228
|
-
color: var(--dsw-alias-label-primary, #1f2328);
|
|
229
|
-
background: var(--dsw-alias-bg-layer-1, transparent);
|
|
230
|
-
border: 1px solid var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));
|
|
231
|
-
border-radius: 6px;
|
|
232
|
-
padding: 4px 8px;
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
.searchInput:focus-visible {
|
|
236
|
-
outline: 2px solid var(--dsw-alias-brand-primary, #4d6bfe);
|
|
237
|
-
outline-offset: 0;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
.searchSubmit {
|
|
241
|
-
flex: none;
|
|
242
|
-
font-size: 12px;
|
|
243
|
-
font-family: inherit;
|
|
244
|
-
color: var(--dsw-alias-label-secondary, #57606a);
|
|
245
|
-
background: transparent;
|
|
246
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
|
|
247
|
-
border-radius: 6px;
|
|
248
|
-
padding: 3px 10px;
|
|
249
|
-
cursor: pointer;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
.searchSubmit:hover {
|
|
253
|
-
color: var(--dsw-alias-label-primary, #1f2328);
|
|
254
|
-
border-color: var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));
|
|
255
|
-
background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.04));
|
|
256
185
|
}
|
|
257
186
|
|
|
258
187
|
.projectChip {
|
|
259
188
|
align-self: flex-start;
|
|
260
|
-
font-size: 11px;
|
|
261
|
-
line-height: 18px;
|
|
262
|
-
padding: 0 8px;
|
|
263
|
-
border-radius: 999px;
|
|
264
|
-
color: var(--dsw-alias-label-secondary, #57606a);
|
|
265
|
-
background: var(--dsw-alias-bg-layer-2, rgba(0, 0, 0, 0.04));
|
|
266
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
|
|
267
189
|
}
|
|
268
190
|
|
|
269
191
|
.resultList {
|
|
@@ -276,24 +198,24 @@
|
|
|
276
198
|
.resultItem {
|
|
277
199
|
display: flex;
|
|
278
200
|
flex-direction: column;
|
|
201
|
+
align-items: stretch;
|
|
202
|
+
justify-content: flex-start;
|
|
279
203
|
gap: 3px;
|
|
204
|
+
height: auto;
|
|
280
205
|
min-width: 0;
|
|
281
|
-
font-family: inherit;
|
|
282
206
|
text-align: left;
|
|
283
207
|
padding: 6px 10px;
|
|
284
|
-
border-radius:
|
|
285
|
-
border: 1px solid var(--
|
|
286
|
-
background: var(--
|
|
287
|
-
cursor: pointer;
|
|
208
|
+
border-radius: var(--agsc-radius-control);
|
|
209
|
+
border: 1px solid var(--agsc-border);
|
|
210
|
+
background: var(--agsc-bg-raised);
|
|
288
211
|
}
|
|
289
212
|
|
|
290
213
|
.resultItem:hover {
|
|
291
|
-
border-color: var(--
|
|
292
|
-
background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.04));
|
|
214
|
+
border-color: var(--agsc-border-strong);
|
|
293
215
|
}
|
|
294
216
|
|
|
295
217
|
.resultItem:focus-visible {
|
|
296
|
-
outline: 2px solid var(--
|
|
218
|
+
outline: 2px solid var(--agsc-accent);
|
|
297
219
|
outline-offset: 1px;
|
|
298
220
|
}
|
|
299
221
|
|
|
@@ -308,12 +230,12 @@
|
|
|
308
230
|
flex: none;
|
|
309
231
|
font-size: 11px;
|
|
310
232
|
font-weight: 600;
|
|
311
|
-
color: var(--dsw-alias-label-secondary
|
|
233
|
+
color: var(--dsw-alias-label-secondary);
|
|
312
234
|
}
|
|
313
235
|
|
|
314
236
|
.resultTitle {
|
|
315
237
|
font-size: 12px;
|
|
316
|
-
color: var(--dsw-alias-label-primary
|
|
238
|
+
color: var(--dsw-alias-label-primary);
|
|
317
239
|
overflow: hidden;
|
|
318
240
|
text-overflow: ellipsis;
|
|
319
241
|
white-space: nowrap;
|
|
@@ -322,19 +244,10 @@
|
|
|
322
244
|
.matchTag {
|
|
323
245
|
flex: none;
|
|
324
246
|
margin-left: auto;
|
|
325
|
-
font-size: 11px;
|
|
326
|
-
line-height: 16px;
|
|
327
|
-
padding: 0 6px;
|
|
328
|
-
border-radius: 999px;
|
|
329
|
-
color: var(--dsw-alias-label-secondary, #57606a);
|
|
330
|
-
background: var(--dsw-alias-bg-layer-2, rgba(0, 0, 0, 0.04));
|
|
331
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
|
|
332
247
|
}
|
|
333
248
|
|
|
334
249
|
.matchTag[data-kind='full-text'] {
|
|
335
|
-
color: var(--
|
|
336
|
-
border-color: var(--dsw-alias-brand-secondary, rgba(77, 107, 254, 0.32));
|
|
337
|
-
background: transparent;
|
|
250
|
+
color: var(--agsc-accent);
|
|
338
251
|
}
|
|
339
252
|
|
|
340
253
|
.resultMeta {
|
|
@@ -343,7 +256,7 @@
|
|
|
343
256
|
gap: 8px;
|
|
344
257
|
min-width: 0;
|
|
345
258
|
font-size: 11px;
|
|
346
|
-
color: var(--dsw-alias-label-tertiary
|
|
259
|
+
color: var(--dsw-alias-label-tertiary);
|
|
347
260
|
}
|
|
348
261
|
|
|
349
262
|
.resultProject {
|
|
@@ -354,21 +267,21 @@
|
|
|
354
267
|
|
|
355
268
|
.resultId {
|
|
356
269
|
flex: none;
|
|
357
|
-
font-family:
|
|
270
|
+
font-family: var(--ds-font-family-code);
|
|
358
271
|
}
|
|
359
272
|
|
|
360
273
|
.snippet {
|
|
361
274
|
font-size: 12px;
|
|
362
275
|
line-height: 18px;
|
|
363
|
-
color: var(--dsw-alias-label-secondary
|
|
276
|
+
color: var(--dsw-alias-label-secondary);
|
|
364
277
|
overflow: hidden;
|
|
365
278
|
text-overflow: ellipsis;
|
|
366
279
|
white-space: nowrap;
|
|
367
280
|
}
|
|
368
281
|
|
|
369
282
|
.snippetMark {
|
|
370
|
-
color: var(--
|
|
371
|
-
background:
|
|
283
|
+
color: var(--agsc-accent);
|
|
284
|
+
background: color-mix(in srgb, var(--agsc-accent) 12%, transparent);
|
|
372
285
|
border-radius: 2px;
|
|
373
286
|
font-weight: 600;
|
|
374
287
|
}
|
|
@@ -1,90 +1,55 @@
|
|
|
1
|
-
|
|
2
|
-
* Centralized user-facing strings for the dsh deep-query tools (design
|
|
3
|
-
* §5.1 view 2 dsh 会话专属区: lineage tree / provenance jump / full-text
|
|
4
|
-
* search; §5.3 honest degradation wording).
|
|
5
|
-
*
|
|
6
|
-
* Deliberately a MODULE-LOCAL table (task T5.4 constraint): the main
|
|
7
|
-
* locale table (client/locales) and test/locales.test.ts are untouched —
|
|
8
|
-
* S7 merges this table into the locale registry in one move. Chinese is
|
|
9
|
-
* the primary UI language, same posture as board/strings.ts. Templates
|
|
10
|
-
* use `{name}` placeholders resolved by `formatTemplate` in logic.ts.
|
|
11
|
-
*
|
|
12
|
-
* Pure data module: no imports, no logic.
|
|
13
|
-
*
|
|
14
|
-
* @module
|
|
15
|
-
*/
|
|
1
|
+
import { createLocaleView } from '../locales/view.ts'
|
|
16
2
|
|
|
17
|
-
|
|
18
|
-
|
|
3
|
+
/** Dynamic dsh-tools vocabulary; templates are interpolated by `formatTemplate`. */
|
|
4
|
+
export const DSH_TOOLS_STRINGS = createLocaleView({
|
|
19
5
|
lineage: {
|
|
20
|
-
title: '
|
|
21
|
-
loading: '
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
currentBadge: '当前会话',
|
|
28
|
-
/** Badge on records live in this dsh process. */
|
|
29
|
-
liveBadge: '运行中',
|
|
30
|
-
/** Badge on records the trace knows but dsh has not persisted. */
|
|
31
|
-
notPersistedBadge: '未持久化',
|
|
32
|
-
/** Role labels for tree rows. */
|
|
6
|
+
title: 'dshtools.lineage.title',
|
|
7
|
+
loading: 'dshtools.lineage.loading',
|
|
8
|
+
error: 'dshtools.lineage.error',
|
|
9
|
+
empty: 'dshtools.lineage.empty',
|
|
10
|
+
currentBadge: 'dshtools.lineage.currentBadge',
|
|
11
|
+
liveBadge: 'dshtools.lineage.liveBadge',
|
|
12
|
+
notPersistedBadge: 'dshtools.lineage.notPersistedBadge',
|
|
33
13
|
role: {
|
|
34
|
-
ancestor: '
|
|
35
|
-
target: '
|
|
36
|
-
descendant: '
|
|
14
|
+
ancestor: 'dshtools.lineage.role.ancestor',
|
|
15
|
+
target: 'dshtools.lineage.role.target',
|
|
16
|
+
descendant: 'dshtools.lineage.role.descendant',
|
|
37
17
|
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
/** trace.complete === false with a known unresolved parent id. */
|
|
46
|
-
incompleteWithId: '谱系不完整:父会话 {id} 无法解析',
|
|
47
|
-
/** trace.complete === false without an unresolved parent id. */
|
|
48
|
-
incomplete: '谱系不完整:部分父链无法解析',
|
|
49
|
-
/** Degradation cards — available:false is data, not an error (§4.e.4). */
|
|
18
|
+
jumpTitle: 'dshtools.lineage.jumpTitle',
|
|
19
|
+
currentTitle: 'dshtools.lineage.currentTitle',
|
|
20
|
+
expand: 'dshtools.lineage.expand',
|
|
21
|
+
collapse: 'dshtools.lineage.collapse',
|
|
22
|
+
nodeCount: 'dshtools.lineage.nodeCount',
|
|
23
|
+
incompleteWithId: 'dshtools.lineage.incompleteWithId',
|
|
24
|
+
incomplete: 'dshtools.lineage.incomplete',
|
|
50
25
|
degrade: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
traceFailedTitle: '谱系追溯失败',
|
|
60
|
-
traceFailedBody: 'dsh 无法解析该会话的谱系。',
|
|
61
|
-
/** Any reason outside the known vocabulary (never invent a state). */
|
|
62
|
-
unknownTitle: '谱系不可用',
|
|
63
|
-
unknownBody: '后端报告谱系不可用(原因: {reason})。',
|
|
26
|
+
notDshTitle: 'dshtools.lineage.degrade.notDshTitle',
|
|
27
|
+
notDshBody: 'dshtools.lineage.degrade.notDshBody',
|
|
28
|
+
queryUnavailableTitle: 'dshtools.lineage.degrade.queryUnavailableTitle',
|
|
29
|
+
queryUnavailableBody: 'dshtools.lineage.degrade.queryUnavailableBody',
|
|
30
|
+
traceFailedTitle: 'dshtools.lineage.degrade.traceFailedTitle',
|
|
31
|
+
traceFailedBody: 'dshtools.lineage.degrade.traceFailedBody',
|
|
32
|
+
unknownTitle: 'dshtools.lineage.degrade.unknownTitle',
|
|
33
|
+
unknownBody: 'dshtools.lineage.degrade.unknownBody',
|
|
64
34
|
},
|
|
65
35
|
},
|
|
66
|
-
/** Cross-agent search panel (dsh 全文检索 + 降级过滤). */
|
|
67
36
|
search: {
|
|
68
|
-
title: '
|
|
69
|
-
placeholder: '
|
|
70
|
-
submit: '
|
|
71
|
-
loading: '
|
|
72
|
-
error: '
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
filterOnlyNotice: 'dsh 全文检索不可用,已降级为标题/项目过滤',
|
|
77
|
-
/** Active project-filter chip. */
|
|
78
|
-
projectFilter: '项目过滤: {project}',
|
|
79
|
-
/** matchedBy tags on result rows. */
|
|
37
|
+
title: 'dshtools.search.title',
|
|
38
|
+
placeholder: 'dshtools.search.placeholder',
|
|
39
|
+
submit: 'dshtools.search.submit',
|
|
40
|
+
loading: 'dshtools.search.loading',
|
|
41
|
+
error: 'dshtools.search.error',
|
|
42
|
+
empty: 'dshtools.search.empty',
|
|
43
|
+
filterOnlyNotice: 'dshtools.search.filterOnlyNotice',
|
|
44
|
+
projectFilter: 'dshtools.search.projectFilter',
|
|
80
45
|
matchedBy: {
|
|
81
|
-
'full-text': '
|
|
82
|
-
title: '
|
|
83
|
-
project: '
|
|
84
|
-
other: '
|
|
46
|
+
'full-text': 'dshtools.search.matchedBy.full-text',
|
|
47
|
+
title: 'dshtools.search.matchedBy.title',
|
|
48
|
+
project: 'dshtools.search.matchedBy.project',
|
|
49
|
+
other: 'dshtools.search.matchedBy.other',
|
|
85
50
|
},
|
|
86
|
-
untitled: '
|
|
51
|
+
untitled: 'dshtools.search.untitled',
|
|
87
52
|
},
|
|
88
|
-
} as const
|
|
53
|
+
} as const)
|
|
89
54
|
|
|
90
55
|
export type DshToolsStrings = typeof DSH_TOOLS_STRINGS
|