dsh-remote-plugin 0.5.0 → 0.5.2
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/apk/dsh-remote.apk +0 -0
- package/client.js +0 -12
- package/gateway.cjs +41 -4
- package/package.json +1 -1
- package/public/admin.html +3 -3
- package/public/admin.js +16 -1
- package/public/app.js +222 -30
- package/public/index.html +35 -5
- package/public/jsqr.min.js +10104 -0
- package/public/styles.css +58 -6
- package/public/update.json +3 -3
- package/public/version.json +1 -1
package/public/styles.css
CHANGED
|
@@ -163,12 +163,30 @@ body.in-session .view {
|
|
|
163
163
|
backdrop-filter: blur(12px);
|
|
164
164
|
border-bottom: 1px solid var(--line);
|
|
165
165
|
}
|
|
166
|
+
/* 会话运行状态可视化(类似 Web UI deepdiving):
|
|
167
|
+
运行中 = 蓝色流动渐变; 出错/中断 = 橙红; 空闲 = 原始样式 */
|
|
168
|
+
.session-head.running {
|
|
169
|
+
background: linear-gradient(90deg, rgba(11, 14, 26, .94), rgba(35, 65, 150, .92), rgba(125, 207, 255, .6), rgba(35, 65, 150, .92), rgba(11, 14, 26, .94));
|
|
170
|
+
background-size: 200% 100%;
|
|
171
|
+
animation: session-running-flow 2.6s ease-in-out infinite alternate;
|
|
172
|
+
border-bottom-color: rgba(91, 140, 255, .55);
|
|
173
|
+
}
|
|
174
|
+
.session-head.interrupted {
|
|
175
|
+
background: linear-gradient(90deg, rgba(11, 14, 26, .94), rgba(90, 26, 12, .92), rgba(255, 158, 100, .55), rgba(90, 26, 12, .92), rgba(11, 14, 26, .94));
|
|
176
|
+
background-size: 200% 100%;
|
|
177
|
+
animation: session-running-flow 1.8s ease-in-out infinite alternate;
|
|
178
|
+
border-bottom-color: rgba(255, 158, 100, .55);
|
|
179
|
+
}
|
|
180
|
+
@keyframes session-running-flow {
|
|
181
|
+
from { background-position: 0% 50%; }
|
|
182
|
+
to { background-position: 100% 50%; }
|
|
183
|
+
}
|
|
166
184
|
.session-head .session-title { flex-shrink: 1; }
|
|
167
185
|
.session-head-meta { flex: 1; min-width: 0; }
|
|
168
186
|
.session-title {
|
|
169
187
|
font-size: 16px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
170
188
|
}
|
|
171
|
-
.session-sub { font-size: 12px; color: var(--muted); margin-top: 1px; }
|
|
189
|
+
.session-sub { font-size: 12px; color: var(--muted); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
172
190
|
.cards {
|
|
173
191
|
display: flex; flex-direction: column; gap: 8px; margin-top: 8px;
|
|
174
192
|
flex-shrink: 0; max-height: 42vh; overflow-y: auto;
|
|
@@ -271,13 +289,15 @@ body.in-session .view {
|
|
|
271
289
|
.tool.error summary { color: var(--orange); }
|
|
272
290
|
|
|
273
291
|
/* ---------- composer ---------- */
|
|
274
|
-
.composer {
|
|
292
|
+
.composer-wrap {
|
|
275
293
|
position: fixed; left: 0; right: 0; bottom: calc(58px + var(--safe-b)); z-index: 20;
|
|
276
|
-
|
|
277
|
-
padding: 8px 12px calc(8px + var(--safe-b));
|
|
294
|
+
max-width: 720px; margin: 0 auto;
|
|
278
295
|
background: rgba(11, 14, 26, .92); backdrop-filter: blur(10px);
|
|
279
296
|
border-top: 1px solid var(--line);
|
|
280
|
-
|
|
297
|
+
}
|
|
298
|
+
.composer {
|
|
299
|
+
display: flex; gap: 8px; align-items: flex-end;
|
|
300
|
+
padding: 8px 12px calc(8px + var(--safe-b));
|
|
281
301
|
}
|
|
282
302
|
.composer textarea {
|
|
283
303
|
flex: 1; resize: none; background: var(--panel); color: var(--text);
|
|
@@ -286,11 +306,43 @@ body.in-session .view {
|
|
|
286
306
|
max-height: 120px; outline: none;
|
|
287
307
|
}
|
|
288
308
|
.composer textarea:focus { border-color: rgba(91, 140, 255, .6); }
|
|
309
|
+
.plus-btn {
|
|
310
|
+
flex-shrink: 0; width: 42px; height: 42px; border-radius: 14px;
|
|
311
|
+
background: var(--panel); color: var(--cyan); border: 1px solid var(--line);
|
|
312
|
+
font-size: 22px; font-weight: 700; line-height: 1;
|
|
313
|
+
}
|
|
314
|
+
.plus-btn.active { background: rgba(125, 207, 255, .14); border-color: rgba(125, 207, 255, .45); }
|
|
289
315
|
.send-btn {
|
|
290
316
|
flex-shrink: 0; width: 46px; height: 42px; border-radius: 14px;
|
|
291
317
|
background: var(--blue); color: #fff; font-weight: 700; font-size: 14px;
|
|
292
318
|
}
|
|
293
319
|
.send-btn:disabled { opacity: .45; }
|
|
320
|
+
.composer-menu {
|
|
321
|
+
max-height: min(46vh, 340px); overflow-y: auto;
|
|
322
|
+
padding: 10px 12px; display: flex; flex-direction: column; gap: 12px;
|
|
323
|
+
border-bottom: 1px solid var(--line);
|
|
324
|
+
}
|
|
325
|
+
.menu-title {
|
|
326
|
+
font-size: 12px; color: var(--muted); font-weight: 700; letter-spacing: .5px;
|
|
327
|
+
margin-bottom: 7px; display: flex; align-items: center; justify-content: space-between;
|
|
328
|
+
}
|
|
329
|
+
.menu-chips { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
|
|
330
|
+
.menu-chip {
|
|
331
|
+
background: var(--panel); color: var(--text); border: 1px solid var(--line);
|
|
332
|
+
border-radius: 999px; padding: 6px 11px; font-size: 12.5px; cursor: pointer;
|
|
333
|
+
white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis;
|
|
334
|
+
}
|
|
335
|
+
.menu-chip:active { background: rgba(91, 140, 255, .16); border-color: rgba(91, 140, 255, .5); }
|
|
336
|
+
.menu-chip.current { color: var(--cyan); border-color: rgba(125, 207, 255, .45); background: rgba(125, 207, 255, .08); }
|
|
337
|
+
.menu-chip.danger { color: var(--orange); border-color: rgba(255, 158, 100, .4); }
|
|
338
|
+
.menu-models { display: flex; flex-wrap: wrap; gap: 7px; }
|
|
339
|
+
.model-chip {
|
|
340
|
+
background: var(--panel); border: 1px solid var(--line); color: var(--text);
|
|
341
|
+
border-radius: 999px; padding: 6px 11px; font-size: 12.5px; cursor: pointer;
|
|
342
|
+
max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
|
343
|
+
}
|
|
344
|
+
.model-chip.current { color: var(--cyan); border-color: rgba(125, 207, 255, .45); background: rgba(125, 207, 255, .08); }
|
|
345
|
+
.model-provider { font-size: 11px; color: var(--muted); margin: 7px 0 5px; }
|
|
294
346
|
body.in-session .main { padding-bottom: 84px; }
|
|
295
347
|
|
|
296
348
|
/* ---------- 待办 ---------- */
|
|
@@ -302,7 +354,7 @@ body.in-session .main { padding-bottom: 84px; }
|
|
|
302
354
|
.pending-card.approval { border-left: 3px solid var(--orange); }
|
|
303
355
|
.pending-card.question { border-left: 3px solid var(--purple); }
|
|
304
356
|
.pc-title { font-weight: 600; font-size: 14px; }
|
|
305
|
-
.pc-desc { font-size: 12.5px; color: var(--muted); margin-top: 3px;
|
|
357
|
+
.pc-desc { font-size: 12.5px; color: var(--muted); margin-top: 3px; overflow-wrap: anywhere; }
|
|
306
358
|
.pc-session { font-size: 11px; color: var(--blue); margin-top: 5px; }
|
|
307
359
|
.job-card .job-name { font-weight: 600; font-size: 14px; }
|
|
308
360
|
.job-state { font-size: 12px; color: var(--muted); margin-top: 3px; }
|
package/public/update.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.5.
|
|
2
|
+
"version": "0.5.2",
|
|
3
3
|
"apkUrl": "dsh-remote.apk",
|
|
4
|
-
"releasedAt": "2026-08-
|
|
5
|
-
"notes": "
|
|
4
|
+
"releasedAt": "2026-08-16T05:47:22.411Z",
|
|
5
|
+
"notes": "管理页二维码修复 SVG 尺寸白点并新增网关徽章一键开面板, 抽屉去标题栏沉浸式; App 扫码改为 Camera+jsQR 本地解码(无谷歌服务依赖, APK 27MB→9MB), 保留系统相机/手动输入冗余; 桌面端已回答的提问不再残留手机待办; Android 安装界面显示真实版本号"
|
|
6
6
|
}
|
package/public/version.json
CHANGED