@hef2024/llmasaservice-ui 0.19.1 → 0.20.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/AICHATPANEL-PORT-INVENTORY.md +830 -0
- package/DEBUG-ERROR-HANDLING.md +130 -0
- package/FIX-APPLIED.md +234 -0
- package/IMPLEMENTATION-COMPLETE.md +246 -0
- package/README.md +1 -0
- package/dist/index.css +190 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +237 -54
- package/dist/index.mjs +237 -54
- package/docs/CHANGELOG-ERROR-HANDLING.md +247 -0
- package/docs/ERROR-HANDLING-413.md +253 -0
- package/docs/ERROR-HANDLING-SUMMARY.md +131 -0
- package/package.json +1 -1
- package/src/AIChatPanel.css +120 -1
- package/src/AIChatPanel.tsx +274 -38
- package/src/ChatPanel.css +111 -0
- package/src/ChatPanel.tsx +100 -4
package/dist/index.css
CHANGED
|
@@ -897,6 +897,97 @@ button[data-pending=true]::after {
|
|
|
897
897
|
.searching-section {
|
|
898
898
|
border-left: 3px solid #7b68ee;
|
|
899
899
|
}
|
|
900
|
+
.error-banner {
|
|
901
|
+
display: flex;
|
|
902
|
+
align-items: flex-start;
|
|
903
|
+
gap: 12px;
|
|
904
|
+
padding: 12px 16px;
|
|
905
|
+
margin: 12px 16px;
|
|
906
|
+
background: #fef2f2;
|
|
907
|
+
border: 1px solid #fecaca;
|
|
908
|
+
border-radius: 8px;
|
|
909
|
+
animation: slideDown 0.2s ease-out;
|
|
910
|
+
}
|
|
911
|
+
.dark-theme .error-banner {
|
|
912
|
+
background: #7f1d1d;
|
|
913
|
+
border-color: #991b1b;
|
|
914
|
+
}
|
|
915
|
+
.error-banner__icon {
|
|
916
|
+
flex-shrink: 0;
|
|
917
|
+
color: #dc2626;
|
|
918
|
+
margin-top: 2px;
|
|
919
|
+
width: 20px;
|
|
920
|
+
height: 20px;
|
|
921
|
+
}
|
|
922
|
+
.error-banner__icon svg {
|
|
923
|
+
width: 100%;
|
|
924
|
+
height: 100%;
|
|
925
|
+
}
|
|
926
|
+
.dark-theme .error-banner__icon {
|
|
927
|
+
color: #fca5a5;
|
|
928
|
+
}
|
|
929
|
+
.error-banner__content {
|
|
930
|
+
flex: 1;
|
|
931
|
+
display: flex;
|
|
932
|
+
flex-direction: column;
|
|
933
|
+
gap: 4px;
|
|
934
|
+
}
|
|
935
|
+
.error-banner__message {
|
|
936
|
+
color: #991b1b;
|
|
937
|
+
font-size: 14px;
|
|
938
|
+
font-weight: 500;
|
|
939
|
+
line-height: 1.4;
|
|
940
|
+
}
|
|
941
|
+
.dark-theme .error-banner__message {
|
|
942
|
+
color: #fecaca;
|
|
943
|
+
}
|
|
944
|
+
.error-banner__hint {
|
|
945
|
+
color: #b91c1c;
|
|
946
|
+
font-size: 13px;
|
|
947
|
+
line-height: 1.4;
|
|
948
|
+
}
|
|
949
|
+
.dark-theme .error-banner__hint {
|
|
950
|
+
color: #fca5a5;
|
|
951
|
+
opacity: 0.8;
|
|
952
|
+
}
|
|
953
|
+
.error-banner__close {
|
|
954
|
+
flex-shrink: 0;
|
|
955
|
+
background: none;
|
|
956
|
+
border: none;
|
|
957
|
+
padding: 4px;
|
|
958
|
+
cursor: pointer;
|
|
959
|
+
color: #991b1b;
|
|
960
|
+
border-radius: 4px;
|
|
961
|
+
transition: background-color 0.15s;
|
|
962
|
+
width: 24px;
|
|
963
|
+
height: 24px;
|
|
964
|
+
display: flex;
|
|
965
|
+
align-items: center;
|
|
966
|
+
justify-content: center;
|
|
967
|
+
}
|
|
968
|
+
.error-banner__close svg {
|
|
969
|
+
width: 16px;
|
|
970
|
+
height: 16px;
|
|
971
|
+
}
|
|
972
|
+
.dark-theme .error-banner__close {
|
|
973
|
+
color: #fca5a5;
|
|
974
|
+
}
|
|
975
|
+
.error-banner__close:hover {
|
|
976
|
+
background: rgba(220, 38, 38, 0.1);
|
|
977
|
+
}
|
|
978
|
+
.dark-theme .error-banner__close:hover {
|
|
979
|
+
background: rgba(252, 165, 165, 0.1);
|
|
980
|
+
}
|
|
981
|
+
@keyframes slideDown {
|
|
982
|
+
from {
|
|
983
|
+
opacity: 0;
|
|
984
|
+
transform: translateY(-8px);
|
|
985
|
+
}
|
|
986
|
+
to {
|
|
987
|
+
opacity: 1;
|
|
988
|
+
transform: translateY(0);
|
|
989
|
+
}
|
|
990
|
+
}
|
|
900
991
|
|
|
901
992
|
/* src/AIAgentPanel.css */
|
|
902
993
|
:root {
|
|
@@ -2301,12 +2392,34 @@ button[data-pending=true]::after {
|
|
|
2301
2392
|
display: flex;
|
|
2302
2393
|
gap: 4px;
|
|
2303
2394
|
margin-top: 8px;
|
|
2304
|
-
opacity:
|
|
2395
|
+
opacity: 1;
|
|
2305
2396
|
transition: opacity 0.2s;
|
|
2306
2397
|
}
|
|
2307
2398
|
.ai-chat-message:hover .ai-chat-message__actions {
|
|
2308
2399
|
opacity: 1;
|
|
2309
2400
|
}
|
|
2401
|
+
.ai-chat-action-button {
|
|
2402
|
+
display: inline-flex;
|
|
2403
|
+
align-items: center;
|
|
2404
|
+
justify-content: center;
|
|
2405
|
+
width: 32px;
|
|
2406
|
+
height: 32px;
|
|
2407
|
+
padding: 0;
|
|
2408
|
+
background: transparent;
|
|
2409
|
+
border: none;
|
|
2410
|
+
border-radius: 6px;
|
|
2411
|
+
color: var(--ai-sidebar-text-muted, #9ca3af);
|
|
2412
|
+
cursor: pointer;
|
|
2413
|
+
transition: background-color 0.15s, color 0.15s;
|
|
2414
|
+
}
|
|
2415
|
+
.ai-chat-action-button:hover {
|
|
2416
|
+
background-color: var(--ai-button-ghost-hover, rgba(0, 0, 0, 0.04));
|
|
2417
|
+
color: var(--ai-chat-assistant-text, #374151);
|
|
2418
|
+
}
|
|
2419
|
+
.dark-theme .ai-chat-action-button:hover {
|
|
2420
|
+
background-color: var(--ai-button-ghost-hover, rgba(255, 255, 255, 0.08));
|
|
2421
|
+
color: var(--ai-chat-assistant-text, #e5e7eb);
|
|
2422
|
+
}
|
|
2310
2423
|
.ai-chat-thinking {
|
|
2311
2424
|
background-color: var(--ai-chat-thinking-bg);
|
|
2312
2425
|
border: 1px solid var(--ai-chat-thinking-border);
|
|
@@ -3316,3 +3429,79 @@ button[data-pending=true]::after {
|
|
|
3316
3429
|
}
|
|
3317
3430
|
}
|
|
3318
3431
|
}
|
|
3432
|
+
.ai-chat-error-banner {
|
|
3433
|
+
display: flex;
|
|
3434
|
+
align-items: flex-start;
|
|
3435
|
+
gap: 12px;
|
|
3436
|
+
padding: 12px 16px;
|
|
3437
|
+
margin: 12px 16px;
|
|
3438
|
+
background: #fef2f2;
|
|
3439
|
+
border: 1px solid #fecaca;
|
|
3440
|
+
border-radius: 8px;
|
|
3441
|
+
animation: slideDown 0.2s ease-out;
|
|
3442
|
+
}
|
|
3443
|
+
.dark-theme .ai-chat-error-banner {
|
|
3444
|
+
background: #7f1d1d;
|
|
3445
|
+
border-color: #991b1b;
|
|
3446
|
+
}
|
|
3447
|
+
.ai-chat-error-banner__icon {
|
|
3448
|
+
flex-shrink: 0;
|
|
3449
|
+
color: #dc2626;
|
|
3450
|
+
margin-top: 2px;
|
|
3451
|
+
}
|
|
3452
|
+
.dark-theme .ai-chat-error-banner__icon {
|
|
3453
|
+
color: #fca5a5;
|
|
3454
|
+
}
|
|
3455
|
+
.ai-chat-error-banner__content {
|
|
3456
|
+
flex: 1;
|
|
3457
|
+
display: flex;
|
|
3458
|
+
flex-direction: column;
|
|
3459
|
+
gap: 4px;
|
|
3460
|
+
}
|
|
3461
|
+
.ai-chat-error-banner__message {
|
|
3462
|
+
color: #991b1b;
|
|
3463
|
+
font-size: 14px;
|
|
3464
|
+
font-weight: 500;
|
|
3465
|
+
line-height: 1.4;
|
|
3466
|
+
}
|
|
3467
|
+
.dark-theme .ai-chat-error-banner__message {
|
|
3468
|
+
color: #fecaca;
|
|
3469
|
+
}
|
|
3470
|
+
.ai-chat-error-banner__hint {
|
|
3471
|
+
color: #b91c1c;
|
|
3472
|
+
font-size: 13px;
|
|
3473
|
+
line-height: 1.4;
|
|
3474
|
+
}
|
|
3475
|
+
.dark-theme .ai-chat-error-banner__hint {
|
|
3476
|
+
color: #fca5a5;
|
|
3477
|
+
opacity: 0.8;
|
|
3478
|
+
}
|
|
3479
|
+
.ai-chat-error-banner__close {
|
|
3480
|
+
flex-shrink: 0;
|
|
3481
|
+
background: none;
|
|
3482
|
+
border: none;
|
|
3483
|
+
padding: 4px;
|
|
3484
|
+
cursor: pointer;
|
|
3485
|
+
color: #991b1b;
|
|
3486
|
+
border-radius: 4px;
|
|
3487
|
+
transition: background-color 0.15s;
|
|
3488
|
+
}
|
|
3489
|
+
.dark-theme .ai-chat-error-banner__close {
|
|
3490
|
+
color: #fca5a5;
|
|
3491
|
+
}
|
|
3492
|
+
.ai-chat-error-banner__close:hover {
|
|
3493
|
+
background: rgba(220, 38, 38, 0.1);
|
|
3494
|
+
}
|
|
3495
|
+
.dark-theme .ai-chat-error-banner__close:hover {
|
|
3496
|
+
background: rgba(252, 165, 165, 0.1);
|
|
3497
|
+
}
|
|
3498
|
+
@keyframes slideDown {
|
|
3499
|
+
from {
|
|
3500
|
+
opacity: 0;
|
|
3501
|
+
transform: translateY(-8px);
|
|
3502
|
+
}
|
|
3503
|
+
to {
|
|
3504
|
+
opacity: 1;
|
|
3505
|
+
transform: translateY(0);
|
|
3506
|
+
}
|
|
3507
|
+
}
|
package/dist/index.d.mts
CHANGED
|
@@ -390,7 +390,7 @@ declare function useAgentRegistry(agentIds: string[], options?: UseAgentRegistry
|
|
|
390
390
|
id: string;
|
|
391
391
|
name: string;
|
|
392
392
|
description: string;
|
|
393
|
-
status: "
|
|
393
|
+
status: "error" | "idle" | "loading" | "ready";
|
|
394
394
|
isReady: boolean;
|
|
395
395
|
avatarUrl: string | undefined;
|
|
396
396
|
localName: string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -390,7 +390,7 @@ declare function useAgentRegistry(agentIds: string[], options?: UseAgentRegistry
|
|
|
390
390
|
id: string;
|
|
391
391
|
name: string;
|
|
392
392
|
description: string;
|
|
393
|
-
status: "
|
|
393
|
+
status: "error" | "idle" | "loading" | "ready";
|
|
394
394
|
isReady: boolean;
|
|
395
395
|
avatarUrl: string | undefined;
|
|
396
396
|
localName: string | undefined;
|