codexmate 0.1.17 → 0.1.19
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 +1 -0
- package/README.vi.md +1 -0
- package/README.zh.md +1 -0
- package/cli.js +130 -3
- package/package.json +1 -1
- package/web-ui/app.js +5 -10
- package/web-ui/index.html +1 -0
- package/web-ui/modules/app.methods.navigation.mjs +2 -2
- package/web-ui/modules/app.methods.pi-config.mjs +208 -120
- package/web-ui/modules/i18n/locales/en.mjs +14 -0
- package/web-ui/modules/i18n/locales/ja.mjs +14 -0
- package/web-ui/modules/i18n/locales/vi.mjs +14 -0
- package/web-ui/modules/i18n/locales/zh-tw.mjs +14 -0
- package/web-ui/modules/i18n/locales/zh.mjs +14 -0
- package/web-ui/modules/pi-provider-templates.mjs +26 -0
- package/web-ui/partials/index/modals-pi-provider.html +96 -0
- package/web-ui/partials/index/panel-config-pi.html +0 -122
- package/web-ui/partials/index/panel-dashboard.html +51 -44
- package/web-ui/res/web-ui-render.precompiled.js +404 -421
- package/web-ui/session-helpers.mjs +12 -23
- package/web-ui/styles/dashboard.css +52 -158
- package/web-ui/styles/settings-panel.css +12 -0
|
@@ -530,7 +530,7 @@ export async function loadActiveSessionDetail(api, options = {}) {
|
|
|
530
530
|
}
|
|
531
531
|
}
|
|
532
532
|
|
|
533
|
-
export async function loadMoreSessionMessages(
|
|
533
|
+
export async function loadMoreSessionMessages() {
|
|
534
534
|
if (this.mainTab !== 'sessions' || !this.sessionPreviewRenderEnabled) {
|
|
535
535
|
return;
|
|
536
536
|
}
|
|
@@ -541,19 +541,6 @@ export async function loadMoreSessionMessages(stepSize) {
|
|
|
541
541
|
this.sessionPreviewVisibleCount = 0;
|
|
542
542
|
return;
|
|
543
543
|
}
|
|
544
|
-
const step = Number.isFinite(stepSize)
|
|
545
|
-
? Math.max(1, Math.floor(stepSize))
|
|
546
|
-
: (Number.isFinite(this.sessionPreviewLoadStep)
|
|
547
|
-
? Math.max(1, Math.floor(this.sessionPreviewLoadStep))
|
|
548
|
-
: 40);
|
|
549
|
-
const current = Number.isFinite(this.sessionPreviewVisibleCount)
|
|
550
|
-
? Math.max(0, Math.floor(this.sessionPreviewVisibleCount))
|
|
551
|
-
: 0;
|
|
552
|
-
const targetVisible = current + step;
|
|
553
|
-
if (targetVisible <= total) {
|
|
554
|
-
this.sessionPreviewVisibleCount = Math.min(total, targetVisible);
|
|
555
|
-
return;
|
|
556
|
-
}
|
|
557
544
|
|
|
558
545
|
this.sessionPreviewVisibleCount = total;
|
|
559
546
|
if (this.sessionDetailLoading) {
|
|
@@ -573,24 +560,19 @@ export async function loadMoreSessionMessages(stepSize) {
|
|
|
573
560
|
const currentLimit = Number.isFinite(currentLimitRaw)
|
|
574
561
|
? Math.max(1, Math.floor(currentLimitRaw))
|
|
575
562
|
: Math.max(1, total);
|
|
576
|
-
const fetchStep = Number.isFinite(this.sessionDetailFetchStep)
|
|
577
|
-
? Math.max(1, Math.floor(this.sessionDetailFetchStep))
|
|
578
|
-
: 80;
|
|
579
563
|
const limitCapRaw = Number(this.sessionDetailMessageLimitCap);
|
|
580
564
|
const limitCap = Number.isFinite(limitCapRaw)
|
|
581
565
|
? Math.max(1, Math.floor(limitCapRaw))
|
|
582
566
|
: 1000;
|
|
583
567
|
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
}
|
|
588
|
-
nextLimit = Math.min(nextLimit, limitCap);
|
|
568
|
+
const nextLimit = totalKnown > 0
|
|
569
|
+
? Math.min(totalKnown, limitCap)
|
|
570
|
+
: limitCap;
|
|
589
571
|
if (nextLimit <= currentLimit) {
|
|
590
572
|
return;
|
|
591
573
|
}
|
|
592
574
|
|
|
593
|
-
this.sessionPreviewPendingVisibleCount =
|
|
575
|
+
this.sessionPreviewPendingVisibleCount = nextLimit;
|
|
594
576
|
this.sessionDetailMessageLimit = nextLimit;
|
|
595
577
|
this.sessionPreviewLoadingMore = true;
|
|
596
578
|
try {
|
|
@@ -598,4 +580,11 @@ export async function loadMoreSessionMessages(stepSize) {
|
|
|
598
580
|
} finally {
|
|
599
581
|
this.sessionPreviewLoadingMore = false;
|
|
600
582
|
}
|
|
583
|
+
|
|
584
|
+
const loadedTotal = Array.isArray(this.activeSessionMessages)
|
|
585
|
+
? this.activeSessionMessages.length
|
|
586
|
+
: 0;
|
|
587
|
+
if (loadedTotal > this.sessionPreviewVisibleCount) {
|
|
588
|
+
this.sessionPreviewVisibleCount = loadedTotal;
|
|
589
|
+
}
|
|
601
590
|
}
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
|
|
5
5
|
.doctor-grid {
|
|
6
6
|
display: grid;
|
|
7
|
-
grid-template-columns: repeat(
|
|
7
|
+
grid-template-columns: repeat(4, minmax(0, 1fr));
|
|
8
8
|
gap: 12px;
|
|
9
9
|
margin-top: 12px;
|
|
10
|
+
align-items: stretch;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
13
|
.doctor-card {
|
|
@@ -102,14 +103,16 @@
|
|
|
102
103
|
display: inline-flex;
|
|
103
104
|
align-items: center;
|
|
104
105
|
gap: 8px;
|
|
105
|
-
|
|
106
|
+
min-width: 150px;
|
|
107
|
+
padding: 8px 12px;
|
|
106
108
|
border-radius: 999px;
|
|
107
109
|
border: 1px solid var(--color-border-soft);
|
|
108
110
|
background: rgba(255, 255, 255, 0.78);
|
|
109
111
|
font-size: var(--font-size-caption);
|
|
110
112
|
color: var(--color-text-secondary);
|
|
111
|
-
justify-content:
|
|
112
|
-
text-align:
|
|
113
|
+
justify-content: space-between;
|
|
114
|
+
text-align: left;
|
|
115
|
+
font-variant-numeric: tabular-nums;
|
|
113
116
|
}
|
|
114
117
|
|
|
115
118
|
.doctor-status-chip strong {
|
|
@@ -162,27 +165,6 @@
|
|
|
162
165
|
text-align: left;
|
|
163
166
|
}
|
|
164
167
|
|
|
165
|
-
.doctor-health-issues {
|
|
166
|
-
display: flex;
|
|
167
|
-
flex-direction: column;
|
|
168
|
-
gap: 6px;
|
|
169
|
-
font-size: var(--font-size-caption);
|
|
170
|
-
align-items: center;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
.doctor-health-issue {
|
|
174
|
-
padding: 8px 10px;
|
|
175
|
-
border-radius: 12px;
|
|
176
|
-
border: 1px solid rgba(220, 95, 108, 0.2);
|
|
177
|
-
background: rgba(255, 255, 255, 0.75);
|
|
178
|
-
color: var(--color-text-secondary);
|
|
179
|
-
overflow-wrap: anywhere;
|
|
180
|
-
word-break: break-word;
|
|
181
|
-
text-align: center;
|
|
182
|
-
width: 100%;
|
|
183
|
-
max-width: 720px;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
168
|
.doctor-action-list {
|
|
187
169
|
margin-top: 14px;
|
|
188
170
|
display: grid;
|
|
@@ -212,8 +194,11 @@
|
|
|
212
194
|
color: var(--color-text-primary);
|
|
213
195
|
min-width: 0;
|
|
214
196
|
overflow: hidden;
|
|
215
|
-
|
|
216
|
-
|
|
197
|
+
display: -webkit-box;
|
|
198
|
+
-webkit-box-orient: vertical;
|
|
199
|
+
-webkit-line-clamp: 2;
|
|
200
|
+
overflow-wrap: anywhere;
|
|
201
|
+
word-break: break-word;
|
|
217
202
|
max-width: 100%;
|
|
218
203
|
flex: 1 1 220px;
|
|
219
204
|
}
|
|
@@ -271,6 +256,46 @@
|
|
|
271
256
|
margin-top: 2px;
|
|
272
257
|
}
|
|
273
258
|
|
|
259
|
+
.doctor-result-section {
|
|
260
|
+
margin-top: 14px;
|
|
261
|
+
display: flex;
|
|
262
|
+
flex-direction: column;
|
|
263
|
+
gap: 12px;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.doctor-result-section > .doctor-health-result,
|
|
267
|
+
.doctor-result-section > .doctor-action-list {
|
|
268
|
+
margin-top: 0;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.doctor-result-empty {
|
|
272
|
+
border: 1px dashed var(--color-border-soft);
|
|
273
|
+
border-radius: var(--radius-lg);
|
|
274
|
+
background: rgba(255, 255, 255, 0.5);
|
|
275
|
+
padding: 16px;
|
|
276
|
+
text-align: center;
|
|
277
|
+
font-size: var(--font-size-caption);
|
|
278
|
+
color: var(--color-text-tertiary);
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.doctor-header .selector-actions > .doctor-run-btn {
|
|
282
|
+
background: linear-gradient(135deg, var(--color-brand) 0%, var(--color-brand-dark) 100%);
|
|
283
|
+
border-color: var(--color-brand-dark);
|
|
284
|
+
color: #fff;
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.doctor-header .selector-actions > .doctor-run-btn:not(:disabled):hover {
|
|
288
|
+
border-color: var(--color-brand-dark);
|
|
289
|
+
color: #fff;
|
|
290
|
+
filter: brightness(1.05);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
@media (max-width: 1280px) {
|
|
294
|
+
.doctor-grid {
|
|
295
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
|
|
274
299
|
@media (max-width: 520px) {
|
|
275
300
|
.doctor-grid {
|
|
276
301
|
grid-template-columns: 1fr;
|
|
@@ -305,134 +330,3 @@
|
|
|
305
330
|
}
|
|
306
331
|
}
|
|
307
332
|
|
|
308
|
-
.doctor-providers-health {
|
|
309
|
-
margin-top: 12px;
|
|
310
|
-
padding: 12px;
|
|
311
|
-
border-radius: var(--radius-lg);
|
|
312
|
-
border: 1px solid var(--color-border-soft);
|
|
313
|
-
background: rgba(255, 255, 255, 0.78);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
.doctor-providers-health-title {
|
|
317
|
-
font-size: var(--font-size-body);
|
|
318
|
-
font-weight: var(--font-weight-title);
|
|
319
|
-
color: var(--color-text-primary);
|
|
320
|
-
margin-bottom: 10px;
|
|
321
|
-
display: flex;
|
|
322
|
-
align-items: center;
|
|
323
|
-
gap: 8px;
|
|
324
|
-
}
|
|
325
|
-
|
|
326
|
-
.doctor-providers-health-summary {
|
|
327
|
-
font-size: var(--font-size-caption);
|
|
328
|
-
font-weight: var(--font-weight-primary);
|
|
329
|
-
color: var(--color-text-tertiary);
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
.doctor-providers-grid {
|
|
333
|
-
display: flex;
|
|
334
|
-
flex-wrap: wrap;
|
|
335
|
-
gap: 8px;
|
|
336
|
-
}
|
|
337
|
-
|
|
338
|
-
.doctor-provider-chip {
|
|
339
|
-
display: inline-flex;
|
|
340
|
-
align-items: center;
|
|
341
|
-
gap: 6px;
|
|
342
|
-
padding: 6px 12px;
|
|
343
|
-
border-radius: 999px;
|
|
344
|
-
border: 1px solid var(--color-border-soft);
|
|
345
|
-
background: rgba(255, 255, 255, 0.85);
|
|
346
|
-
font-size: var(--font-size-caption);
|
|
347
|
-
color: var(--color-text-secondary);
|
|
348
|
-
max-width: 100%;
|
|
349
|
-
overflow: hidden;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
.doctor-provider-chip.green {
|
|
353
|
-
border-color: rgba(57, 181, 97, 0.25);
|
|
354
|
-
background: rgba(57, 181, 97, 0.08);
|
|
355
|
-
color: #2b6a3b;
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
.doctor-provider-chip.yellow {
|
|
359
|
-
border-color: rgba(246, 211, 106, 0.45);
|
|
360
|
-
background: rgba(246, 211, 106, 0.16);
|
|
361
|
-
color: #6f4b00;
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
.doctor-provider-chip.red {
|
|
365
|
-
border-color: rgba(220, 95, 108, 0.28);
|
|
366
|
-
background: rgba(220, 95, 108, 0.08);
|
|
367
|
-
color: #8a2f36;
|
|
368
|
-
}
|
|
369
|
-
|
|
370
|
-
.doctor-provider-name {
|
|
371
|
-
overflow: hidden;
|
|
372
|
-
text-overflow: ellipsis;
|
|
373
|
-
white-space: nowrap;
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
.doctor-provider-current {
|
|
377
|
-
font-size: 0.85em;
|
|
378
|
-
opacity: 0.7;
|
|
379
|
-
margin-left: 2px;
|
|
380
|
-
}
|
|
381
|
-
|
|
382
|
-
.doctor-provider-status-dot {
|
|
383
|
-
width: 8px;
|
|
384
|
-
height: 8px;
|
|
385
|
-
border-radius: 50%;
|
|
386
|
-
flex-shrink: 0;
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
.doctor-provider-chip.green .doctor-provider-status-dot {
|
|
390
|
-
background: rgba(57, 181, 97, 0.7);
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
.doctor-provider-chip.yellow .doctor-provider-status-dot {
|
|
394
|
-
background: rgba(246, 211, 106, 0.85);
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
.doctor-provider-chip.red .doctor-provider-status-dot {
|
|
398
|
-
background: rgba(220, 95, 108, 0.7);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
.doctor-provider-issues {
|
|
402
|
-
margin-top: 10px;
|
|
403
|
-
display: flex;
|
|
404
|
-
flex-direction: column;
|
|
405
|
-
gap: 6px;
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
.doctor-provider-issue-card {
|
|
409
|
-
padding: 8px 10px;
|
|
410
|
-
border-radius: 10px;
|
|
411
|
-
border: 1px solid rgba(220, 95, 108, 0.15);
|
|
412
|
-
background: rgba(255, 255, 255, 0.7);
|
|
413
|
-
}
|
|
414
|
-
|
|
415
|
-
.doctor-provider-issue-name {
|
|
416
|
-
font-weight: var(--font-weight-secondary);
|
|
417
|
-
color: var(--color-text-primary);
|
|
418
|
-
margin-bottom: 4px;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
.doctor-provider-issue-row {
|
|
422
|
-
font-size: var(--font-size-caption);
|
|
423
|
-
color: var(--color-text-secondary);
|
|
424
|
-
display: flex;
|
|
425
|
-
flex-direction: column;
|
|
426
|
-
gap: 2px;
|
|
427
|
-
padding-left: 8px;
|
|
428
|
-
margin-top: 4px;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
.doctor-provider-issue-text {
|
|
432
|
-
color: #8a2f36;
|
|
433
|
-
}
|
|
434
|
-
|
|
435
|
-
.doctor-provider-issue-fix {
|
|
436
|
-
color: var(--color-text-tertiary);
|
|
437
|
-
font-style: italic;
|
|
438
|
-
}
|
|
@@ -869,3 +869,15 @@
|
|
|
869
869
|
border-top: 1px solid rgba(137, 111, 94, 0.14);
|
|
870
870
|
background: rgba(255, 253, 252, 0.92);
|
|
871
871
|
}
|
|
872
|
+
|
|
873
|
+
.pi-picker { display: flex; flex-direction: column; gap: 12px; }
|
|
874
|
+
.pi-picker-group-title { font-weight: 600; margin-bottom: 6px; opacity: 0.8; }
|
|
875
|
+
.pi-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 8px; }
|
|
876
|
+
.pi-picker-card { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; text-align: left; cursor: pointer; }
|
|
877
|
+
.pi-picker-card-name { font-weight: 600; }
|
|
878
|
+
.pi-picker-card-url { font-size: 12px; opacity: 0.6; word-break: break-all; }
|
|
879
|
+
.pi-model-import-section { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 10px; }
|
|
880
|
+
.pi-model-import-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; max-height: 240px; overflow-y: auto; }
|
|
881
|
+
@media (max-width: 768px) { .pi-model-import-list { grid-template-columns: 1fr; } }
|
|
882
|
+
.pi-model-import-item { display: flex; align-items: center; gap: 8px; padding: 12px 14px; border-radius: var(--radius-md); border: 1px solid var(--color-border-soft); background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(255, 251, 247, 0.76)); box-shadow: var(--shadow-card); cursor: pointer; }
|
|
883
|
+
.pi-model-import-id { font-family: monospace; font-size: 13px; }
|