@privateclaw/privateclaw-relay 0.1.6 → 0.1.7
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/.env.example +3 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.js +6 -0
- package/dist/config.js.map +1 -1
- package/dist/relay-cluster.js +102 -6
- package/dist/relay-cluster.js.map +1 -1
- package/dist/relay-server.d.ts +15 -0
- package/dist/relay-server.js +139 -15
- package/dist/relay-server.js.map +1 -1
- package/dist/web/chat/index.html +2 -2
- package/dist/web/scripts/chat.js +166 -4
- package/dist/web/scripts/i18n.js +15 -0
- package/dist/web/scripts/session-client.js +65 -0
- package/dist/web/styles.css +180 -0
- package/package.json +1 -1
package/dist/web/styles.css
CHANGED
|
@@ -984,6 +984,11 @@ a:focus {
|
|
|
984
984
|
border-color: rgba(255, 127, 159, 0.28);
|
|
985
985
|
}
|
|
986
986
|
|
|
987
|
+
.message-bubble.thinking-bubble {
|
|
988
|
+
background: linear-gradient(180deg, rgba(143, 125, 255, 0.22), rgba(62, 217, 255, 0.08));
|
|
989
|
+
border-color: rgba(143, 125, 255, 0.24);
|
|
990
|
+
}
|
|
991
|
+
|
|
987
992
|
.message-text {
|
|
988
993
|
color: var(--text);
|
|
989
994
|
line-height: 1.6;
|
|
@@ -1020,6 +1025,181 @@ a:focus {
|
|
|
1020
1025
|
text-decoration: underline;
|
|
1021
1026
|
}
|
|
1022
1027
|
|
|
1028
|
+
.thinking-trace-card {
|
|
1029
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
1030
|
+
border-radius: 18px;
|
|
1031
|
+
background: rgba(7, 12, 26, 0.28);
|
|
1032
|
+
padding: 12px;
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
details.thinking-trace-card > summary {
|
|
1036
|
+
list-style: none;
|
|
1037
|
+
cursor: pointer;
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
details.thinking-trace-card > summary::-webkit-details-marker {
|
|
1041
|
+
display: none;
|
|
1042
|
+
}
|
|
1043
|
+
|
|
1044
|
+
.thinking-trace-card.active {
|
|
1045
|
+
border-color: rgba(143, 125, 255, 0.3);
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
.thinking-trace-card.failed {
|
|
1049
|
+
border-color: rgba(255, 127, 159, 0.38);
|
|
1050
|
+
background: rgba(62, 10, 24, 0.26);
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
.thinking-trace-summary {
|
|
1054
|
+
display: flex;
|
|
1055
|
+
flex-direction: column;
|
|
1056
|
+
gap: 10px;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
.thinking-trace-header {
|
|
1060
|
+
display: flex;
|
|
1061
|
+
align-items: flex-start;
|
|
1062
|
+
justify-content: space-between;
|
|
1063
|
+
gap: 12px;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
.thinking-trace-header-main {
|
|
1067
|
+
min-width: 0;
|
|
1068
|
+
display: inline-flex;
|
|
1069
|
+
align-items: center;
|
|
1070
|
+
gap: 10px;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
.thinking-trace-header-main strong {
|
|
1074
|
+
font-size: 0.98rem;
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
.thinking-trace-icon {
|
|
1078
|
+
width: 26px;
|
|
1079
|
+
height: 26px;
|
|
1080
|
+
border-radius: 999px;
|
|
1081
|
+
display: inline-flex;
|
|
1082
|
+
align-items: center;
|
|
1083
|
+
justify-content: center;
|
|
1084
|
+
flex-shrink: 0;
|
|
1085
|
+
font-size: 0.92rem;
|
|
1086
|
+
background: rgba(255, 255, 255, 0.08);
|
|
1087
|
+
color: var(--text);
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
.thinking-trace-icon.thought,
|
|
1091
|
+
.thinking-trace-icon.active {
|
|
1092
|
+
background: rgba(143, 125, 255, 0.2);
|
|
1093
|
+
color: rgba(230, 224, 255, 0.96);
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
.thinking-trace-icon.active {
|
|
1097
|
+
animation: pulse 1.2s ease-in-out infinite;
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1100
|
+
.thinking-trace-icon.action {
|
|
1101
|
+
background: rgba(62, 217, 255, 0.18);
|
|
1102
|
+
color: rgba(204, 247, 255, 0.96);
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
.thinking-trace-icon.result {
|
|
1106
|
+
background: rgba(92, 255, 196, 0.18);
|
|
1107
|
+
color: rgba(218, 255, 241, 0.98);
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
.thinking-trace-icon.error {
|
|
1111
|
+
background: rgba(255, 127, 159, 0.22);
|
|
1112
|
+
color: rgba(255, 230, 237, 0.98);
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
.thinking-trace-preview {
|
|
1116
|
+
margin: 0;
|
|
1117
|
+
color: var(--text-muted);
|
|
1118
|
+
white-space: pre-wrap;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
.thinking-trace-badges {
|
|
1122
|
+
display: flex;
|
|
1123
|
+
flex-wrap: wrap;
|
|
1124
|
+
justify-content: flex-end;
|
|
1125
|
+
gap: 8px;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
.thinking-trace-badge {
|
|
1129
|
+
display: inline-flex;
|
|
1130
|
+
align-items: center;
|
|
1131
|
+
gap: 6px;
|
|
1132
|
+
padding: 6px 10px;
|
|
1133
|
+
border-radius: 999px;
|
|
1134
|
+
background: rgba(255, 255, 255, 0.08);
|
|
1135
|
+
color: var(--text-muted);
|
|
1136
|
+
font-size: 0.82rem;
|
|
1137
|
+
font-weight: 600;
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
.thinking-trace-badge.live {
|
|
1141
|
+
background: rgba(143, 125, 255, 0.16);
|
|
1142
|
+
color: rgba(233, 228, 255, 0.96);
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
.thinking-trace-badge.done {
|
|
1146
|
+
background: rgba(92, 255, 196, 0.14);
|
|
1147
|
+
color: rgba(220, 255, 243, 0.98);
|
|
1148
|
+
}
|
|
1149
|
+
|
|
1150
|
+
.thinking-trace-badge.error {
|
|
1151
|
+
background: rgba(255, 127, 159, 0.18);
|
|
1152
|
+
color: rgba(255, 233, 239, 0.98);
|
|
1153
|
+
}
|
|
1154
|
+
|
|
1155
|
+
.thinking-trace-badge.tool {
|
|
1156
|
+
background: rgba(62, 217, 255, 0.16);
|
|
1157
|
+
color: rgba(208, 247, 255, 0.98);
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
.thinking-trace-history {
|
|
1161
|
+
margin-top: 12px;
|
|
1162
|
+
padding-top: 12px;
|
|
1163
|
+
border-top: 1px solid rgba(255, 255, 255, 0.08);
|
|
1164
|
+
display: flex;
|
|
1165
|
+
flex-direction: column;
|
|
1166
|
+
gap: 10px;
|
|
1167
|
+
}
|
|
1168
|
+
|
|
1169
|
+
.thinking-trace-entry {
|
|
1170
|
+
border-radius: 16px;
|
|
1171
|
+
padding: 12px;
|
|
1172
|
+
border: 1px solid rgba(255, 255, 255, 0.08);
|
|
1173
|
+
background: rgba(255, 255, 255, 0.04);
|
|
1174
|
+
}
|
|
1175
|
+
|
|
1176
|
+
.thinking-trace-entry.thought {
|
|
1177
|
+
border-color: rgba(143, 125, 255, 0.2);
|
|
1178
|
+
}
|
|
1179
|
+
|
|
1180
|
+
.thinking-trace-entry.action {
|
|
1181
|
+
border-color: rgba(62, 217, 255, 0.2);
|
|
1182
|
+
}
|
|
1183
|
+
|
|
1184
|
+
.thinking-trace-entry.result {
|
|
1185
|
+
border-color: rgba(92, 255, 196, 0.2);
|
|
1186
|
+
}
|
|
1187
|
+
|
|
1188
|
+
.thinking-trace-entry.error {
|
|
1189
|
+
border-color: rgba(255, 127, 159, 0.24);
|
|
1190
|
+
}
|
|
1191
|
+
|
|
1192
|
+
.thinking-trace-entry-header {
|
|
1193
|
+
display: flex;
|
|
1194
|
+
align-items: center;
|
|
1195
|
+
flex-wrap: wrap;
|
|
1196
|
+
gap: 10px;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
.thinking-trace-entry-body {
|
|
1200
|
+
margin-top: 8px;
|
|
1201
|
+
}
|
|
1202
|
+
|
|
1023
1203
|
.mermaid-card {
|
|
1024
1204
|
border: 1px solid var(--line);
|
|
1025
1205
|
border-radius: 16px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@privateclaw/privateclaw-relay",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Blind WebSocket relay for PrivateClaw encrypted sessions with local CLI startup and optional Tailscale Funnel or Cloudflare Tunnel exposure",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|