@shendeguize/dsh-agent-sidecar 0.1.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.
Files changed (68) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +167 -0
  3. package/cordis.patch.yml +10 -0
  4. package/lib/client.js +8062 -0
  5. package/lib/client.js.map +1 -0
  6. package/lib/index.d.ts +396 -0
  7. package/lib/index.js +4166 -0
  8. package/package.json +101 -0
  9. package/src/analysis.ts +782 -0
  10. package/src/bridge.ts +841 -0
  11. package/src/client/analysis/AnalysisPanel.tsx +191 -0
  12. package/src/client/analysis/analysis.module.css +183 -0
  13. package/src/client/analysis-glue.ts +331 -0
  14. package/src/client/api.ts +380 -0
  15. package/src/client/board/Board.tsx +214 -0
  16. package/src/client/board/board.module.css +302 -0
  17. package/src/client/board/logic.ts +556 -0
  18. package/src/client/board/project-view-logic.ts +361 -0
  19. package/src/client/board/project-view.module.css +307 -0
  20. package/src/client/board/project-view.tsx +189 -0
  21. package/src/client/board/strings.ts +112 -0
  22. package/src/client/commands.ts +484 -0
  23. package/src/client/controller.ts +360 -0
  24. package/src/client/css-modules.d.ts +11 -0
  25. package/src/client/detail/SessionDetail.tsx +270 -0
  26. package/src/client/detail/detail.module.css +433 -0
  27. package/src/client/detail/logic.ts +779 -0
  28. package/src/client/detail/strings.ts +98 -0
  29. package/src/client/detail/transport.ts +175 -0
  30. package/src/client/detail-glue.ts +397 -0
  31. package/src/client/detail-view.module.css +79 -0
  32. package/src/client/detail-view.tsx +233 -0
  33. package/src/client/dsh-tools/LineageTree.tsx +210 -0
  34. package/src/client/dsh-tools/SearchPanel.tsx +169 -0
  35. package/src/client/dsh-tools/dsh-tools.module.css +374 -0
  36. package/src/client/dsh-tools/logic.ts +596 -0
  37. package/src/client/dsh-tools/strings.ts +90 -0
  38. package/src/client/index.ts +315 -0
  39. package/src/client/inject/InjectPanel.tsx +482 -0
  40. package/src/client/inject/inject.module.css +446 -0
  41. package/src/client/inject/logic.ts +516 -0
  42. package/src/client/inject/overlay.module.css +22 -0
  43. package/src/client/inject-glue.ts +171 -0
  44. package/src/client/locales/command.ts +48 -0
  45. package/src/client/locales/en.ts +385 -0
  46. package/src/client/locales/index.ts +123 -0
  47. package/src/client/locales/zh.ts +402 -0
  48. package/src/client/m3-transport.ts +151 -0
  49. package/src/client/mount.tsx +307 -0
  50. package/src/client/project-glue.ts +134 -0
  51. package/src/client/search-glue.ts +143 -0
  52. package/src/client/settings-card.module.css +359 -0
  53. package/src/client/settings-card.tsx +565 -0
  54. package/src/client/settings-glue.ts +130 -0
  55. package/src/client/sidebar-tab.tsx +494 -0
  56. package/src/client/sse.ts +366 -0
  57. package/src/client/widget.tsx +80 -0
  58. package/src/config.ts +193 -0
  59. package/src/dsh-inject.ts +240 -0
  60. package/src/fusion.ts +988 -0
  61. package/src/guard.ts +274 -0
  62. package/src/index.ts +950 -0
  63. package/src/inject-gateway.ts +574 -0
  64. package/src/routes.ts +1133 -0
  65. package/src/send-cli.ts +340 -0
  66. package/src/session-store.ts +184 -0
  67. package/src/skills-provider.ts +293 -0
  68. package/src/supervisor.ts +463 -0
@@ -0,0 +1,374 @@
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
+ */
7
+
8
+ .panel {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 8px;
12
+ min-width: 0;
13
+ color: var(--dsw-alias-label-primary, #1f2328);
14
+ }
15
+
16
+ .panelHead {
17
+ display: flex;
18
+ align-items: baseline;
19
+ gap: 8px;
20
+ min-width: 0;
21
+ }
22
+
23
+ .panelTitle {
24
+ font-size: 13px;
25
+ font-weight: 600;
26
+ color: var(--dsw-alias-label-primary, #1f2328);
27
+ }
28
+
29
+ .panelCount {
30
+ font-size: 11px;
31
+ 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
+ }
38
+
39
+ /* ------------------------------------------------- shared status bodies */
40
+
41
+ .mutedLine {
42
+ font-size: 12px;
43
+ color: var(--dsw-alias-label-secondary, #57606a);
44
+ }
45
+
46
+ .errorCard {
47
+ font-size: 12px;
48
+ line-height: 18px;
49
+ padding: 8px 10px;
50
+ border-radius: 8px;
51
+ color: var(--dsw-alias-state-error-primary, #cf222e);
52
+ background: var(--dsw-alias-state-error-secondary, rgba(207, 34, 46, 0.08));
53
+ border: 1px solid var(--dsw-alias-state-error-secondary, rgba(207, 34, 46, 0.24));
54
+ }
55
+
56
+ .errorDetail {
57
+ display: block;
58
+ margin-top: 2px;
59
+ font-size: 11px;
60
+ color: var(--dsw-alias-label-secondary, #57606a);
61
+ word-break: break-all;
62
+ }
63
+
64
+ /* Honest degradation card (available:false — data, not an error). */
65
+ .degradeCard {
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 4px;
69
+ padding: 10px 12px;
70
+ border-radius: 8px;
71
+ border: 1px dashed var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));
72
+ background: var(--dsw-alias-bg-layer-1, rgba(0, 0, 0, 0.02));
73
+ }
74
+
75
+ .degradeTitle {
76
+ font-size: 12px;
77
+ font-weight: 600;
78
+ color: var(--dsw-alias-label-primary, #1f2328);
79
+ }
80
+
81
+ .degradeBody {
82
+ font-size: 12px;
83
+ line-height: 18px;
84
+ color: var(--dsw-alias-label-secondary, #57606a);
85
+ }
86
+
87
+ .degradeDetail {
88
+ font-size: 11px;
89
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
90
+ color: var(--dsw-alias-label-tertiary, #6e7781);
91
+ word-break: break-all;
92
+ }
93
+
94
+ /* Warn bar: trace incompleteness / filter-only search degradation. */
95
+ .noticeBar {
96
+ font-size: 12px;
97
+ line-height: 18px;
98
+ padding: 5px 10px;
99
+ border-radius: 8px;
100
+ color: var(--dsw-alias-state-warn-label, var(--dsw-alias-state-warn-primary, #9a6700));
101
+ background: var(--dsw-alias-state-warn-tertiary, rgba(154, 103, 0, 0.08));
102
+ border: 1px solid var(--dsw-alias-state-warn-secondary, rgba(154, 103, 0, 0.24));
103
+ }
104
+
105
+ /* --------------------------------------------------------- lineage tree */
106
+
107
+ .tree {
108
+ display: flex;
109
+ flex-direction: column;
110
+ gap: 2px;
111
+ min-width: 0;
112
+ }
113
+
114
+ .treeRow {
115
+ display: flex;
116
+ align-items: center;
117
+ gap: 4px;
118
+ min-width: 0;
119
+ }
120
+
121
+ .toggle {
122
+ flex: none;
123
+ width: 18px;
124
+ height: 18px;
125
+ padding: 0;
126
+ font-size: 10px;
127
+ 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
+ }
139
+
140
+ /* Alignment spacer where a leaf row has no toggle. */
141
+ .toggleSpacer {
142
+ flex: none;
143
+ width: 18px;
144
+ }
145
+
146
+ .node {
147
+ display: inline-flex;
148
+ align-items: center;
149
+ gap: 6px;
150
+ min-width: 0;
151
+ font-family: inherit;
152
+ font-size: 12px;
153
+ text-align: left;
154
+ 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
+ }
161
+
162
+ .node:hover {
163
+ border-color: var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
164
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.04));
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). */
173
+ .node[data-current='true'] {
174
+ border-color: var(--dsw-alias-brand-primary, #4d6bfe);
175
+ background: var(--dsw-alias-brand-tertiary, rgba(77, 107, 254, 0.08));
176
+ cursor: default;
177
+ }
178
+
179
+ .nodeId {
180
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
181
+ overflow: hidden;
182
+ text-overflow: ellipsis;
183
+ white-space: nowrap;
184
+ }
185
+
186
+ .nodeRole {
187
+ flex: none;
188
+ font-size: 11px;
189
+ color: var(--dsw-alias-label-tertiary, #6e7781);
190
+ }
191
+
192
+ .nodeBadge {
193
+ flex: none;
194
+ font-size: 11px;
195
+ line-height: 16px;
196
+ padding: 0 6px;
197
+ border-radius: 999px;
198
+ color: var(--dsw-alias-label-secondary, #57606a);
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));
201
+ }
202
+
203
+ .nodeBadge[data-kind='current'] {
204
+ color: var(--dsw-alias-brand-primary, #4d6bfe);
205
+ border-color: var(--dsw-alias-brand-primary, #4d6bfe);
206
+ background: transparent;
207
+ }
208
+
209
+ .nodeBadge[data-kind='live'] {
210
+ color: var(--dsw-alias-state-success-primary, #1a7f37);
211
+ border-color: var(--dsw-alias-state-success-secondary, rgba(26, 127, 55, 0.32));
212
+ background: transparent;
213
+ }
214
+
215
+ /* --------------------------------------------------------- search panel */
216
+
217
+ .searchForm {
218
+ display: flex;
219
+ align-items: center;
220
+ gap: 8px;
221
+ }
222
+
223
+ .searchInput {
224
+ flex: 1;
225
+ 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
+ }
257
+
258
+ .projectChip {
259
+ 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
+ }
268
+
269
+ .resultList {
270
+ display: flex;
271
+ flex-direction: column;
272
+ gap: 4px;
273
+ min-width: 0;
274
+ }
275
+
276
+ .resultItem {
277
+ display: flex;
278
+ flex-direction: column;
279
+ gap: 3px;
280
+ min-width: 0;
281
+ font-family: inherit;
282
+ text-align: left;
283
+ padding: 6px 10px;
284
+ border-radius: 8px;
285
+ border: 1px solid var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.08));
286
+ background: var(--dsw-alias-bg-layer-1, rgba(0, 0, 0, 0.02));
287
+ cursor: pointer;
288
+ }
289
+
290
+ .resultItem:hover {
291
+ border-color: var(--dsw-alias-border-l2, rgba(0, 0, 0, 0.12));
292
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.04));
293
+ }
294
+
295
+ .resultItem:focus-visible {
296
+ outline: 2px solid var(--dsw-alias-brand-primary, #4d6bfe);
297
+ outline-offset: 1px;
298
+ }
299
+
300
+ .resultHead {
301
+ display: flex;
302
+ align-items: center;
303
+ gap: 6px;
304
+ min-width: 0;
305
+ }
306
+
307
+ .resultAgent {
308
+ flex: none;
309
+ font-size: 11px;
310
+ font-weight: 600;
311
+ color: var(--dsw-alias-label-secondary, #57606a);
312
+ }
313
+
314
+ .resultTitle {
315
+ font-size: 12px;
316
+ color: var(--dsw-alias-label-primary, #1f2328);
317
+ overflow: hidden;
318
+ text-overflow: ellipsis;
319
+ white-space: nowrap;
320
+ }
321
+
322
+ .matchTag {
323
+ flex: none;
324
+ 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
+ }
333
+
334
+ .matchTag[data-kind='full-text'] {
335
+ color: var(--dsw-alias-brand-primary, #4d6bfe);
336
+ border-color: var(--dsw-alias-brand-secondary, rgba(77, 107, 254, 0.32));
337
+ background: transparent;
338
+ }
339
+
340
+ .resultMeta {
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 8px;
344
+ min-width: 0;
345
+ font-size: 11px;
346
+ color: var(--dsw-alias-label-tertiary, #6e7781);
347
+ }
348
+
349
+ .resultProject {
350
+ overflow: hidden;
351
+ text-overflow: ellipsis;
352
+ white-space: nowrap;
353
+ }
354
+
355
+ .resultId {
356
+ flex: none;
357
+ font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
358
+ }
359
+
360
+ .snippet {
361
+ font-size: 12px;
362
+ line-height: 18px;
363
+ color: var(--dsw-alias-label-secondary, #57606a);
364
+ overflow: hidden;
365
+ text-overflow: ellipsis;
366
+ white-space: nowrap;
367
+ }
368
+
369
+ .snippetMark {
370
+ color: var(--dsw-alias-brand-primary, #4d6bfe);
371
+ background: var(--dsw-alias-brand-tertiary, rgba(77, 107, 254, 0.12));
372
+ border-radius: 2px;
373
+ font-weight: 600;
374
+ }