@gendive/chatllm 0.17.27 → 0.17.28
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/dist/react/index.d.mts +38 -1
- package/dist/react/index.d.ts +38 -1
- package/dist/react/index.js +355 -78
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +353 -78
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -35,6 +35,8 @@ __export(index_exports, {
|
|
|
35
35
|
ChatSidebar: () => ChatSidebar,
|
|
36
36
|
ChatUI: () => ChatUI,
|
|
37
37
|
ChecklistCard: () => ChecklistCard,
|
|
38
|
+
ChecklistMiniIndicator: () => ChecklistMiniIndicator,
|
|
39
|
+
ChecklistPanel: () => ChecklistPanel,
|
|
38
40
|
ContentPartRenderer: () => ContentPartRenderer,
|
|
39
41
|
DEFAULT_PROJECT_ID: () => DEFAULT_PROJECT_ID,
|
|
40
42
|
DEFAULT_PROJECT_TITLE: () => DEFAULT_PROJECT_TITLE,
|
|
@@ -4146,7 +4148,13 @@ ${result.content}
|
|
|
4146
4148
|
/** @Todo vibecode - 체크리스트 error 항목 재시도 */
|
|
4147
4149
|
handleChecklistRetry,
|
|
4148
4150
|
/** @Todo vibecode - 체크리스트 pending 항목 건너뛰기 */
|
|
4149
|
-
handleChecklistSkip
|
|
4151
|
+
handleChecklistSkip,
|
|
4152
|
+
/** @Todo vibecode - 활성 체크리스트가 포함된 메시지 (패널 자동 열기 트리거용) */
|
|
4153
|
+
activeChecklistMessage: messages.find(
|
|
4154
|
+
(m) => m.checklistBlock && !m.checklistBlock.completed
|
|
4155
|
+
) || messages.find(
|
|
4156
|
+
(m) => m.checklistBlock?.completed
|
|
4157
|
+
) || null
|
|
4150
4158
|
};
|
|
4151
4159
|
};
|
|
4152
4160
|
|
|
@@ -8944,6 +8952,80 @@ var ChecklistCard = ({
|
|
|
8944
8952
|
}
|
|
8945
8953
|
);
|
|
8946
8954
|
};
|
|
8955
|
+
var ChecklistMiniIndicator = ({
|
|
8956
|
+
items,
|
|
8957
|
+
completed
|
|
8958
|
+
}) => {
|
|
8959
|
+
const doneCount = items.filter((it) => it.status === "done").length;
|
|
8960
|
+
const isRunning = items.some((it) => it.status === "in_progress");
|
|
8961
|
+
const hasError = items.some((it) => it.status === "error");
|
|
8962
|
+
const progressPercent = doneCount / items.length * 100;
|
|
8963
|
+
const statusText = completed ? "\uBAA8\uB4E0 \uB2E8\uACC4 \uC644\uB8CC" : hasError ? "\uC791\uC5C5 \uC911\uB2E8\uB428" : isRunning ? `\uC791\uC5C5 \uC9C4\uD589 \uC911 \xB7 ${doneCount}/${items.length}` : `\uB300\uAE30 \uC911 \xB7 ${doneCount}/${items.length}`;
|
|
8964
|
+
const statusColor = completed ? "var(--chatllm-success, #22c55e)" : hasError ? "var(--chatllm-error, #ef4444)" : "var(--chatllm-primary, #3584FA)";
|
|
8965
|
+
const barColor = completed ? "var(--chatllm-success, #22c55e)" : "var(--chatllm-primary, #3584FA)";
|
|
8966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
8967
|
+
"div",
|
|
8968
|
+
{
|
|
8969
|
+
style: {
|
|
8970
|
+
display: "flex",
|
|
8971
|
+
alignItems: "center",
|
|
8972
|
+
gap: "10px",
|
|
8973
|
+
padding: "10px 14px",
|
|
8974
|
+
border: "1px solid var(--chatllm-border, #e5e7eb)",
|
|
8975
|
+
borderRadius: "10px",
|
|
8976
|
+
backgroundColor: "var(--chatllm-content-bg, #fff)",
|
|
8977
|
+
marginTop: "8px"
|
|
8978
|
+
},
|
|
8979
|
+
children: [
|
|
8980
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
8981
|
+
IconSvg,
|
|
8982
|
+
{
|
|
8983
|
+
name: completed ? "checkbox-circle-line" : "list-check",
|
|
8984
|
+
size: 16,
|
|
8985
|
+
color: statusColor
|
|
8986
|
+
}
|
|
8987
|
+
),
|
|
8988
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
8989
|
+
"span",
|
|
8990
|
+
{
|
|
8991
|
+
style: {
|
|
8992
|
+
fontSize: "13px",
|
|
8993
|
+
fontWeight: 500,
|
|
8994
|
+
color: statusColor,
|
|
8995
|
+
whiteSpace: "nowrap"
|
|
8996
|
+
},
|
|
8997
|
+
children: statusText
|
|
8998
|
+
}
|
|
8999
|
+
),
|
|
9000
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
9001
|
+
"div",
|
|
9002
|
+
{
|
|
9003
|
+
style: {
|
|
9004
|
+
flex: 1,
|
|
9005
|
+
height: "3px",
|
|
9006
|
+
backgroundColor: "var(--chatllm-bg-secondary, #f1f5f9)",
|
|
9007
|
+
borderRadius: "2px",
|
|
9008
|
+
overflow: "hidden",
|
|
9009
|
+
minWidth: "60px"
|
|
9010
|
+
},
|
|
9011
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
9012
|
+
"div",
|
|
9013
|
+
{
|
|
9014
|
+
style: {
|
|
9015
|
+
height: "100%",
|
|
9016
|
+
width: `${progressPercent}%`,
|
|
9017
|
+
backgroundColor: barColor,
|
|
9018
|
+
borderRadius: "2px",
|
|
9019
|
+
transition: "width 0.6s cubic-bezier(0.25, 1, 0.5, 1)"
|
|
9020
|
+
}
|
|
9021
|
+
}
|
|
9022
|
+
)
|
|
9023
|
+
}
|
|
9024
|
+
)
|
|
9025
|
+
]
|
|
9026
|
+
}
|
|
9027
|
+
);
|
|
9028
|
+
};
|
|
8947
9029
|
|
|
8948
9030
|
// src/react/components/MessageBubble.tsx
|
|
8949
9031
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
@@ -9301,14 +9383,10 @@ var MessageBubble = ({
|
|
|
9301
9383
|
}
|
|
9302
9384
|
),
|
|
9303
9385
|
message.checklistBlock && message.checklistBlock.items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
9304
|
-
|
|
9386
|
+
ChecklistMiniIndicator,
|
|
9305
9387
|
{
|
|
9306
9388
|
items: message.checklistBlock.items,
|
|
9307
|
-
|
|
9308
|
-
completed: message.checklistBlock.completed,
|
|
9309
|
-
onAbort: onChecklistAbort,
|
|
9310
|
-
onRetryStep: onChecklistRetry,
|
|
9311
|
-
onSkipStep: onChecklistSkip
|
|
9389
|
+
completed: message.checklistBlock.completed
|
|
9312
9390
|
}
|
|
9313
9391
|
),
|
|
9314
9392
|
!isLoading && !displayContent && !message.pollBlock && !message.checklistBlock && !message.contentParts?.length && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
@@ -11126,8 +11204,169 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
11126
11204
|
);
|
|
11127
11205
|
};
|
|
11128
11206
|
|
|
11129
|
-
// src/react/
|
|
11207
|
+
// src/react/components/ChecklistPanel.tsx
|
|
11130
11208
|
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
11209
|
+
var ChecklistPanel = ({
|
|
11210
|
+
message,
|
|
11211
|
+
isOpen,
|
|
11212
|
+
onClose,
|
|
11213
|
+
onAbort,
|
|
11214
|
+
onRetry,
|
|
11215
|
+
onSkip,
|
|
11216
|
+
width = 360,
|
|
11217
|
+
isMobileOverlay = false
|
|
11218
|
+
}) => {
|
|
11219
|
+
const block = message?.checklistBlock;
|
|
11220
|
+
if (isMobileOverlay) {
|
|
11221
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
11222
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11223
|
+
"div",
|
|
11224
|
+
{
|
|
11225
|
+
onClick: onClose,
|
|
11226
|
+
style: {
|
|
11227
|
+
position: "fixed",
|
|
11228
|
+
inset: 0,
|
|
11229
|
+
backgroundColor: "rgba(0, 0, 0, 0.4)",
|
|
11230
|
+
zIndex: 999,
|
|
11231
|
+
opacity: isOpen ? 1 : 0,
|
|
11232
|
+
pointerEvents: isOpen ? "auto" : "none",
|
|
11233
|
+
transition: "opacity 0.3s ease"
|
|
11234
|
+
}
|
|
11235
|
+
}
|
|
11236
|
+
),
|
|
11237
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11238
|
+
"aside",
|
|
11239
|
+
{
|
|
11240
|
+
style: {
|
|
11241
|
+
position: "fixed",
|
|
11242
|
+
top: 0,
|
|
11243
|
+
right: 0,
|
|
11244
|
+
bottom: 0,
|
|
11245
|
+
width: "85vw",
|
|
11246
|
+
maxWidth: "400px",
|
|
11247
|
+
backgroundColor: "var(--chatllm-bg, #F5F5F5)",
|
|
11248
|
+
zIndex: 1e3,
|
|
11249
|
+
transform: isOpen ? "translateX(0)" : "translateX(100%)",
|
|
11250
|
+
transition: "transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
11251
|
+
display: "flex",
|
|
11252
|
+
flexDirection: "column",
|
|
11253
|
+
boxShadow: isOpen ? "-4px 0 20px rgba(0, 0, 0, 0.1)" : "none"
|
|
11254
|
+
},
|
|
11255
|
+
children: renderPanelContent()
|
|
11256
|
+
}
|
|
11257
|
+
)
|
|
11258
|
+
] });
|
|
11259
|
+
}
|
|
11260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11261
|
+
"aside",
|
|
11262
|
+
{
|
|
11263
|
+
style: {
|
|
11264
|
+
width: isOpen ? typeof width === "number" ? `${width}px` : width : "0px",
|
|
11265
|
+
minWidth: 0,
|
|
11266
|
+
overflow: "hidden",
|
|
11267
|
+
transition: "width 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
11268
|
+
borderLeft: isOpen ? "1px solid var(--chatllm-border, #e2e8f0)" : "none",
|
|
11269
|
+
backgroundColor: "var(--chatllm-bg, #F5F5F5)",
|
|
11270
|
+
display: "flex",
|
|
11271
|
+
flexDirection: "column",
|
|
11272
|
+
flexShrink: 0
|
|
11273
|
+
},
|
|
11274
|
+
children: isOpen && renderPanelContent()
|
|
11275
|
+
}
|
|
11276
|
+
);
|
|
11277
|
+
function renderPanelContent() {
|
|
11278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_jsx_runtime21.Fragment, { children: [
|
|
11279
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
11280
|
+
"div",
|
|
11281
|
+
{
|
|
11282
|
+
style: {
|
|
11283
|
+
display: "flex",
|
|
11284
|
+
alignItems: "center",
|
|
11285
|
+
justifyContent: "space-between",
|
|
11286
|
+
padding: "16px",
|
|
11287
|
+
borderBottom: "1px solid var(--chatllm-border, #e2e8f0)",
|
|
11288
|
+
flexShrink: 0
|
|
11289
|
+
},
|
|
11290
|
+
children: [
|
|
11291
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
11292
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(IconSvg, { name: "list-check", size: 18, color: "var(--chatllm-primary, #3584FA)" }),
|
|
11293
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11294
|
+
"span",
|
|
11295
|
+
{
|
|
11296
|
+
style: {
|
|
11297
|
+
fontSize: "14px",
|
|
11298
|
+
fontWeight: 600,
|
|
11299
|
+
color: "var(--chatllm-text, #1e293b)"
|
|
11300
|
+
},
|
|
11301
|
+
children: "\uCCB4\uD06C\uB9AC\uC2A4\uD2B8"
|
|
11302
|
+
}
|
|
11303
|
+
)
|
|
11304
|
+
] }),
|
|
11305
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11306
|
+
"button",
|
|
11307
|
+
{
|
|
11308
|
+
onClick: onClose,
|
|
11309
|
+
"aria-label": "\uD328\uB110 \uB2EB\uAE30",
|
|
11310
|
+
style: {
|
|
11311
|
+
width: "28px",
|
|
11312
|
+
height: "28px",
|
|
11313
|
+
display: "flex",
|
|
11314
|
+
alignItems: "center",
|
|
11315
|
+
justifyContent: "center",
|
|
11316
|
+
borderRadius: "6px",
|
|
11317
|
+
border: "none",
|
|
11318
|
+
backgroundColor: "transparent",
|
|
11319
|
+
cursor: "pointer",
|
|
11320
|
+
color: "var(--chatllm-text-muted, #94a3b8)",
|
|
11321
|
+
transition: "background-color 0.15s ease"
|
|
11322
|
+
},
|
|
11323
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(IconSvg, { name: "close-line", size: 18, color: "currentColor" })
|
|
11324
|
+
}
|
|
11325
|
+
)
|
|
11326
|
+
]
|
|
11327
|
+
}
|
|
11328
|
+
),
|
|
11329
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11330
|
+
"div",
|
|
11331
|
+
{
|
|
11332
|
+
className: "chatllm-scrollbar",
|
|
11333
|
+
style: {
|
|
11334
|
+
flex: 1,
|
|
11335
|
+
overflowY: "auto",
|
|
11336
|
+
padding: "16px"
|
|
11337
|
+
},
|
|
11338
|
+
children: block && block.items.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11339
|
+
ChecklistCard,
|
|
11340
|
+
{
|
|
11341
|
+
items: block.items,
|
|
11342
|
+
currentStep: block.currentStep,
|
|
11343
|
+
completed: block.completed,
|
|
11344
|
+
onAbort,
|
|
11345
|
+
onRetryStep: onRetry,
|
|
11346
|
+
onSkipStep: onSkip
|
|
11347
|
+
}
|
|
11348
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
11349
|
+
"div",
|
|
11350
|
+
{
|
|
11351
|
+
style: {
|
|
11352
|
+
display: "flex",
|
|
11353
|
+
alignItems: "center",
|
|
11354
|
+
justifyContent: "center",
|
|
11355
|
+
height: "100%",
|
|
11356
|
+
color: "var(--chatllm-text-muted, #94a3b8)",
|
|
11357
|
+
fontSize: "13px"
|
|
11358
|
+
},
|
|
11359
|
+
children: "\uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4"
|
|
11360
|
+
}
|
|
11361
|
+
)
|
|
11362
|
+
}
|
|
11363
|
+
)
|
|
11364
|
+
] });
|
|
11365
|
+
}
|
|
11366
|
+
};
|
|
11367
|
+
|
|
11368
|
+
// src/react/ChatUI.tsx
|
|
11369
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
11131
11370
|
var DEFAULT_ACTIONS = [];
|
|
11132
11371
|
var DEFAULT_TEMPLATES = [];
|
|
11133
11372
|
var DEFAULT_MODELS = [
|
|
@@ -11466,9 +11705,33 @@ var ChatUIView = ({
|
|
|
11466
11705
|
// Checklist
|
|
11467
11706
|
handleChecklistAbort,
|
|
11468
11707
|
handleChecklistRetry,
|
|
11469
|
-
handleChecklistSkip
|
|
11708
|
+
handleChecklistSkip,
|
|
11709
|
+
activeChecklistMessage
|
|
11470
11710
|
} = state;
|
|
11471
11711
|
const [disclaimerOpen, setDisclaimerOpen] = import_react21.default.useState(false);
|
|
11712
|
+
const [isMobile, setIsMobile] = import_react21.default.useState(false);
|
|
11713
|
+
import_react21.default.useEffect(() => {
|
|
11714
|
+
if (typeof window === "undefined") return;
|
|
11715
|
+
const check = () => setIsMobile(window.innerWidth < 768);
|
|
11716
|
+
check();
|
|
11717
|
+
window.addEventListener("resize", check);
|
|
11718
|
+
return () => window.removeEventListener("resize", check);
|
|
11719
|
+
}, []);
|
|
11720
|
+
const [checklistPanelDismissed, setChecklistPanelDismissed] = import_react21.default.useState(false);
|
|
11721
|
+
const isChecklistPanelOpen = !!activeChecklistMessage && !checklistPanelDismissed;
|
|
11722
|
+
const prevChecklistIdRef = import_react21.default.useRef(void 0);
|
|
11723
|
+
import_react21.default.useEffect(() => {
|
|
11724
|
+
const currentId = activeChecklistMessage?.checklistBlock?.id;
|
|
11725
|
+
if (currentId && currentId !== prevChecklistIdRef.current && !activeChecklistMessage?.checklistBlock?.completed) {
|
|
11726
|
+
setChecklistPanelDismissed(false);
|
|
11727
|
+
}
|
|
11728
|
+
prevChecklistIdRef.current = currentId;
|
|
11729
|
+
}, [activeChecklistMessage?.checklistBlock?.id, activeChecklistMessage?.checklistBlock?.completed]);
|
|
11730
|
+
import_react21.default.useEffect(() => {
|
|
11731
|
+
if (!activeChecklistMessage?.checklistBlock?.completed) return;
|
|
11732
|
+
const timer = setTimeout(() => setChecklistPanelDismissed(true), 2e3);
|
|
11733
|
+
return () => clearTimeout(timer);
|
|
11734
|
+
}, [activeChecklistMessage?.checklistBlock?.completed]);
|
|
11472
11735
|
const [welcomeExiting, setWelcomeExiting] = import_react21.default.useState(false);
|
|
11473
11736
|
const prevMessageCountRef = import_react21.default.useRef(messages.length);
|
|
11474
11737
|
import_react21.default.useEffect(() => {
|
|
@@ -11524,7 +11787,7 @@ var ChatUIView = ({
|
|
|
11524
11787
|
return items;
|
|
11525
11788
|
}, [projectMemory?.state.entries]);
|
|
11526
11789
|
const themeClass = theme?.mode === "dark" ? "chatllm-dark" : "";
|
|
11527
|
-
return /* @__PURE__ */ (0,
|
|
11790
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
11528
11791
|
"div",
|
|
11529
11792
|
{
|
|
11530
11793
|
className: `chatllm-root ${themeClass} ${className}`,
|
|
@@ -11537,7 +11800,7 @@ var ChatUIView = ({
|
|
|
11537
11800
|
position: "relative"
|
|
11538
11801
|
},
|
|
11539
11802
|
children: [
|
|
11540
|
-
showSidebar && /* @__PURE__ */ (0,
|
|
11803
|
+
showSidebar && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11541
11804
|
ChatSidebar,
|
|
11542
11805
|
{
|
|
11543
11806
|
sessions,
|
|
@@ -11569,7 +11832,7 @@ var ChatUIView = ({
|
|
|
11569
11832
|
isLoading: isSessionsLoading
|
|
11570
11833
|
}
|
|
11571
11834
|
),
|
|
11572
|
-
/* @__PURE__ */ (0,
|
|
11835
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
11573
11836
|
"main",
|
|
11574
11837
|
{
|
|
11575
11838
|
style: {
|
|
@@ -11581,7 +11844,7 @@ var ChatUIView = ({
|
|
|
11581
11844
|
minWidth: 0
|
|
11582
11845
|
},
|
|
11583
11846
|
children: [
|
|
11584
|
-
/* @__PURE__ */ (0,
|
|
11847
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11585
11848
|
ChatHeader,
|
|
11586
11849
|
{
|
|
11587
11850
|
title: currentSession?.title || "\uC0C8 \uB300\uD654",
|
|
@@ -11595,7 +11858,7 @@ var ChatUIView = ({
|
|
|
11595
11858
|
showSettings
|
|
11596
11859
|
}
|
|
11597
11860
|
),
|
|
11598
|
-
(messages.length === 0 || welcomeExiting) && /* @__PURE__ */ (0,
|
|
11861
|
+
(messages.length === 0 || welcomeExiting) && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
11599
11862
|
"div",
|
|
11600
11863
|
{
|
|
11601
11864
|
style: {
|
|
@@ -11610,7 +11873,7 @@ var ChatUIView = ({
|
|
|
11610
11873
|
pointerEvents: welcomeExiting ? "none" : "auto"
|
|
11611
11874
|
},
|
|
11612
11875
|
children: [
|
|
11613
|
-
/* @__PURE__ */ (0,
|
|
11876
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11614
11877
|
"h1",
|
|
11615
11878
|
{
|
|
11616
11879
|
style: {
|
|
@@ -11624,7 +11887,7 @@ var ChatUIView = ({
|
|
|
11624
11887
|
children: greeting ? `${greeting} \u273A` : "\u273A \uBB34\uC5C7\uC744 \uC0DD\uAC01\uD574 \uBCFC\uAE4C\uC694?"
|
|
11625
11888
|
}
|
|
11626
11889
|
),
|
|
11627
|
-
/* @__PURE__ */ (0,
|
|
11890
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { style: { width: "100%", maxWidth: "680px" }, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11628
11891
|
ChatInput,
|
|
11629
11892
|
{
|
|
11630
11893
|
value: input,
|
|
@@ -11652,7 +11915,7 @@ var ChatUIView = ({
|
|
|
11652
11915
|
inline: true
|
|
11653
11916
|
}
|
|
11654
11917
|
) }),
|
|
11655
|
-
suggestedPrompts && suggestedPrompts.length > 0 && /* @__PURE__ */ (0,
|
|
11918
|
+
suggestedPrompts && suggestedPrompts.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11656
11919
|
"div",
|
|
11657
11920
|
{
|
|
11658
11921
|
style: {
|
|
@@ -11662,7 +11925,7 @@ var ChatUIView = ({
|
|
|
11662
11925
|
justifyContent: "center",
|
|
11663
11926
|
maxWidth: "680px"
|
|
11664
11927
|
},
|
|
11665
|
-
children: suggestedPrompts.map((sp) => /* @__PURE__ */ (0,
|
|
11928
|
+
children: suggestedPrompts.map((sp) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
11666
11929
|
"button",
|
|
11667
11930
|
{
|
|
11668
11931
|
onClick: () => setInput(sp.prompt),
|
|
@@ -11681,7 +11944,7 @@ var ChatUIView = ({
|
|
|
11681
11944
|
transition: "all 0.2s"
|
|
11682
11945
|
},
|
|
11683
11946
|
children: [
|
|
11684
|
-
sp.icon && /* @__PURE__ */ (0,
|
|
11947
|
+
sp.icon && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconSvg, { name: sp.icon, size: 16, color: "var(--chatllm-text-muted)" }),
|
|
11685
11948
|
sp.label
|
|
11686
11949
|
]
|
|
11687
11950
|
},
|
|
@@ -11692,8 +11955,8 @@ var ChatUIView = ({
|
|
|
11692
11955
|
]
|
|
11693
11956
|
}
|
|
11694
11957
|
),
|
|
11695
|
-
messages.length > 0 && /* @__PURE__ */ (0,
|
|
11696
|
-
/* @__PURE__ */ (0,
|
|
11958
|
+
messages.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(import_jsx_runtime22.Fragment, { children: [
|
|
11959
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11697
11960
|
MessageList,
|
|
11698
11961
|
{
|
|
11699
11962
|
messages,
|
|
@@ -11718,7 +11981,7 @@ var ChatUIView = ({
|
|
|
11718
11981
|
onChecklistSkip: handleChecklistSkip
|
|
11719
11982
|
}
|
|
11720
11983
|
),
|
|
11721
|
-
/* @__PURE__ */ (0,
|
|
11984
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11722
11985
|
ChatInput,
|
|
11723
11986
|
{
|
|
11724
11987
|
value: input,
|
|
@@ -11749,7 +12012,19 @@ var ChatUIView = ({
|
|
|
11749
12012
|
]
|
|
11750
12013
|
}
|
|
11751
12014
|
),
|
|
11752
|
-
|
|
12015
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
12016
|
+
ChecklistPanel,
|
|
12017
|
+
{
|
|
12018
|
+
message: activeChecklistMessage,
|
|
12019
|
+
isOpen: isChecklistPanelOpen,
|
|
12020
|
+
onClose: () => setChecklistPanelDismissed(true),
|
|
12021
|
+
onAbort: handleChecklistAbort,
|
|
12022
|
+
onRetry: activeChecklistMessage ? (stepIndex) => handleChecklistRetry(activeChecklistMessage.id, stepIndex) : void 0,
|
|
12023
|
+
onSkip: activeChecklistMessage ? (stepIndex) => handleChecklistSkip(activeChecklistMessage.id, stepIndex) : void 0,
|
|
12024
|
+
isMobileOverlay: isMobile
|
|
12025
|
+
}
|
|
12026
|
+
),
|
|
12027
|
+
showSettings && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11753
12028
|
SettingsModal,
|
|
11754
12029
|
{
|
|
11755
12030
|
isOpen: settingsOpen,
|
|
@@ -11776,7 +12051,7 @@ var ChatUIView = ({
|
|
|
11776
12051
|
currentProjectTitle: currentProject?.title
|
|
11777
12052
|
}
|
|
11778
12053
|
),
|
|
11779
|
-
/* @__PURE__ */ (0,
|
|
12054
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11780
12055
|
ProjectSettingsModal,
|
|
11781
12056
|
{
|
|
11782
12057
|
isOpen: projectSettingsOpen,
|
|
@@ -11788,7 +12063,7 @@ var ChatUIView = ({
|
|
|
11788
12063
|
onDeleteProject: deleteProject
|
|
11789
12064
|
}
|
|
11790
12065
|
),
|
|
11791
|
-
/* @__PURE__ */ (0,
|
|
12066
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(DisclaimerModal, { isOpen: disclaimerOpen, onClose: () => setDisclaimerOpen(false) })
|
|
11792
12067
|
]
|
|
11793
12068
|
}
|
|
11794
12069
|
);
|
|
@@ -11891,7 +12166,7 @@ var ChatUIWithHook = ({
|
|
|
11891
12166
|
onDeleteProjectFile
|
|
11892
12167
|
};
|
|
11893
12168
|
const state = useChatUI(hookOptions);
|
|
11894
|
-
return /* @__PURE__ */ (0,
|
|
12169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11895
12170
|
ChatUIView,
|
|
11896
12171
|
{
|
|
11897
12172
|
state,
|
|
@@ -11939,7 +12214,7 @@ var ChatUI = (props) => {
|
|
|
11939
12214
|
deepResearch,
|
|
11940
12215
|
suggestedPrompts: chatStateSuggestedPrompts
|
|
11941
12216
|
} = props;
|
|
11942
|
-
return /* @__PURE__ */ (0,
|
|
12217
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
11943
12218
|
ChatUIView,
|
|
11944
12219
|
{
|
|
11945
12220
|
state: props.chatState,
|
|
@@ -11964,7 +12239,7 @@ var ChatUI = (props) => {
|
|
|
11964
12239
|
}
|
|
11965
12240
|
);
|
|
11966
12241
|
}
|
|
11967
|
-
return /* @__PURE__ */ (0,
|
|
12242
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChatUIWithHook, { ...props });
|
|
11968
12243
|
};
|
|
11969
12244
|
|
|
11970
12245
|
// src/react/hooks/useDeepResearch.ts
|
|
@@ -12282,7 +12557,7 @@ var useDeepResearch = (options) => {
|
|
|
12282
12557
|
};
|
|
12283
12558
|
|
|
12284
12559
|
// src/react/components/EmptyState.tsx
|
|
12285
|
-
var
|
|
12560
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
12286
12561
|
var EmptyState = ({
|
|
12287
12562
|
greeting,
|
|
12288
12563
|
templates = [],
|
|
@@ -12300,7 +12575,7 @@ var EmptyState = ({
|
|
|
12300
12575
|
return iconMap[icon] || "sparkling-line";
|
|
12301
12576
|
};
|
|
12302
12577
|
const hasContent = actions.length > 0 || templates.length > 0;
|
|
12303
|
-
return /* @__PURE__ */ (0,
|
|
12578
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
12304
12579
|
"div",
|
|
12305
12580
|
{
|
|
12306
12581
|
className: "chatllm-empty-state",
|
|
@@ -12315,7 +12590,7 @@ var EmptyState = ({
|
|
|
12315
12590
|
textAlign: "center"
|
|
12316
12591
|
},
|
|
12317
12592
|
children: [
|
|
12318
|
-
/* @__PURE__ */ (0,
|
|
12593
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12319
12594
|
"div",
|
|
12320
12595
|
{
|
|
12321
12596
|
className: "chatllm-sheet",
|
|
@@ -12329,10 +12604,10 @@ var EmptyState = ({
|
|
|
12329
12604
|
marginBottom: "32px",
|
|
12330
12605
|
color: "var(--chatllm-primary)"
|
|
12331
12606
|
},
|
|
12332
|
-
children: /* @__PURE__ */ (0,
|
|
12607
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(IconSvg, { name: "chat-1-line", size: 40 })
|
|
12333
12608
|
}
|
|
12334
12609
|
),
|
|
12335
|
-
/* @__PURE__ */ (0,
|
|
12610
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12336
12611
|
"h1",
|
|
12337
12612
|
{
|
|
12338
12613
|
style: {
|
|
@@ -12345,7 +12620,7 @@ var EmptyState = ({
|
|
|
12345
12620
|
children: "How can I help you today?"
|
|
12346
12621
|
}
|
|
12347
12622
|
),
|
|
12348
|
-
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */ (0,
|
|
12623
|
+
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
12349
12624
|
"div",
|
|
12350
12625
|
{
|
|
12351
12626
|
style: {
|
|
@@ -12357,7 +12632,7 @@ var EmptyState = ({
|
|
|
12357
12632
|
marginBottom: "48px"
|
|
12358
12633
|
},
|
|
12359
12634
|
children: [
|
|
12360
|
-
actions.map((action) => /* @__PURE__ */ (0,
|
|
12635
|
+
actions.map((action) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
12361
12636
|
"button",
|
|
12362
12637
|
{
|
|
12363
12638
|
onClick: () => onActionSelect?.(action),
|
|
@@ -12371,7 +12646,7 @@ var EmptyState = ({
|
|
|
12371
12646
|
fontWeight: 500
|
|
12372
12647
|
},
|
|
12373
12648
|
children: [
|
|
12374
|
-
/* @__PURE__ */ (0,
|
|
12649
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12375
12650
|
IconSvg,
|
|
12376
12651
|
{
|
|
12377
12652
|
name: getActionIcon(action.icon),
|
|
@@ -12384,7 +12659,7 @@ var EmptyState = ({
|
|
|
12384
12659
|
},
|
|
12385
12660
|
action.id
|
|
12386
12661
|
)),
|
|
12387
|
-
templates.slice(0, 4).map((template) => /* @__PURE__ */ (0,
|
|
12662
|
+
templates.slice(0, 4).map((template) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
12388
12663
|
"button",
|
|
12389
12664
|
{
|
|
12390
12665
|
onClick: () => onTemplateClick(template),
|
|
@@ -12398,7 +12673,7 @@ var EmptyState = ({
|
|
|
12398
12673
|
fontWeight: 500
|
|
12399
12674
|
},
|
|
12400
12675
|
children: [
|
|
12401
|
-
/* @__PURE__ */ (0,
|
|
12676
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
12402
12677
|
IconSvg,
|
|
12403
12678
|
{
|
|
12404
12679
|
name: "sparkling-line",
|
|
@@ -12421,7 +12696,7 @@ var EmptyState = ({
|
|
|
12421
12696
|
|
|
12422
12697
|
// src/react/components/MemoryPanel.tsx
|
|
12423
12698
|
var import_react23 = require("react");
|
|
12424
|
-
var
|
|
12699
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
12425
12700
|
var categoryLabels = {
|
|
12426
12701
|
fact: "\uC0AC\uC6A9\uC790 \uC815\uBCF4",
|
|
12427
12702
|
skill: "\uC804\uBB38 \uBD84\uC57C/\uAE30\uC220",
|
|
@@ -12453,7 +12728,7 @@ var MemoryPanel = ({
|
|
|
12453
12728
|
});
|
|
12454
12729
|
};
|
|
12455
12730
|
if (!isOpen) {
|
|
12456
|
-
return /* @__PURE__ */ (0,
|
|
12731
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12457
12732
|
"button",
|
|
12458
12733
|
{
|
|
12459
12734
|
onClick: onToggle,
|
|
@@ -12473,11 +12748,11 @@ var MemoryPanel = ({
|
|
|
12473
12748
|
justifyContent: "center",
|
|
12474
12749
|
zIndex: 100
|
|
12475
12750
|
},
|
|
12476
|
-
children: /* @__PURE__ */ (0,
|
|
12751
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "robot-line", size: 24, color: "#ffffff" })
|
|
12477
12752
|
}
|
|
12478
12753
|
);
|
|
12479
12754
|
}
|
|
12480
|
-
return /* @__PURE__ */ (0,
|
|
12755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12481
12756
|
"div",
|
|
12482
12757
|
{
|
|
12483
12758
|
className: "chatllm-memory-panel",
|
|
@@ -12497,7 +12772,7 @@ var MemoryPanel = ({
|
|
|
12497
12772
|
zIndex: 100
|
|
12498
12773
|
},
|
|
12499
12774
|
children: [
|
|
12500
|
-
/* @__PURE__ */ (0,
|
|
12775
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12501
12776
|
"div",
|
|
12502
12777
|
{
|
|
12503
12778
|
style: {
|
|
@@ -12508,8 +12783,8 @@ var MemoryPanel = ({
|
|
|
12508
12783
|
borderBottom: "1px solid var(--chatllm-border, #e5e7eb)"
|
|
12509
12784
|
},
|
|
12510
12785
|
children: [
|
|
12511
|
-
/* @__PURE__ */ (0,
|
|
12512
|
-
/* @__PURE__ */ (0,
|
|
12786
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
|
|
12787
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12513
12788
|
"div",
|
|
12514
12789
|
{
|
|
12515
12790
|
style: {
|
|
@@ -12521,19 +12796,19 @@ var MemoryPanel = ({
|
|
|
12521
12796
|
alignItems: "center",
|
|
12522
12797
|
justifyContent: "center"
|
|
12523
12798
|
},
|
|
12524
|
-
children: /* @__PURE__ */ (0,
|
|
12799
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3584FA)" })
|
|
12525
12800
|
}
|
|
12526
12801
|
),
|
|
12527
|
-
/* @__PURE__ */ (0,
|
|
12528
|
-
/* @__PURE__ */ (0,
|
|
12529
|
-
/* @__PURE__ */ (0,
|
|
12802
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { children: [
|
|
12803
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { style: { fontSize: "15px", fontWeight: 600, color: "var(--chatllm-text, #1f2937)" }, children: "AI \uBA54\uBAA8\uB9AC" }),
|
|
12804
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: [
|
|
12530
12805
|
items.length,
|
|
12531
12806
|
"\uAC1C \uD56D\uBAA9"
|
|
12532
12807
|
] })
|
|
12533
12808
|
] })
|
|
12534
12809
|
] }),
|
|
12535
|
-
/* @__PURE__ */ (0,
|
|
12536
|
-
onClearAll && items.length > 0 && /* @__PURE__ */ (0,
|
|
12810
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { display: "flex", gap: "4px" }, children: [
|
|
12811
|
+
onClearAll && items.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12537
12812
|
"button",
|
|
12538
12813
|
{
|
|
12539
12814
|
onClick: onClearAll,
|
|
@@ -12545,10 +12820,10 @@ var MemoryPanel = ({
|
|
|
12545
12820
|
cursor: "pointer"
|
|
12546
12821
|
},
|
|
12547
12822
|
title: "\uC804\uCCB4 \uC0AD\uC81C",
|
|
12548
|
-
children: /* @__PURE__ */ (0,
|
|
12823
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "delete-bin-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12549
12824
|
}
|
|
12550
12825
|
),
|
|
12551
|
-
/* @__PURE__ */ (0,
|
|
12826
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12552
12827
|
"button",
|
|
12553
12828
|
{
|
|
12554
12829
|
onClick: onToggle,
|
|
@@ -12559,14 +12834,14 @@ var MemoryPanel = ({
|
|
|
12559
12834
|
borderRadius: "8px",
|
|
12560
12835
|
cursor: "pointer"
|
|
12561
12836
|
},
|
|
12562
|
-
children: /* @__PURE__ */ (0,
|
|
12837
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "close-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12563
12838
|
}
|
|
12564
12839
|
)
|
|
12565
12840
|
] })
|
|
12566
12841
|
]
|
|
12567
12842
|
}
|
|
12568
12843
|
),
|
|
12569
|
-
/* @__PURE__ */ (0,
|
|
12844
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12570
12845
|
"div",
|
|
12571
12846
|
{
|
|
12572
12847
|
style: {
|
|
@@ -12576,7 +12851,7 @@ var MemoryPanel = ({
|
|
|
12576
12851
|
borderBottom: "1px solid var(--chatllm-border-light, #f3f4f6)",
|
|
12577
12852
|
overflowX: "auto"
|
|
12578
12853
|
},
|
|
12579
|
-
children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ (0,
|
|
12854
|
+
children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12580
12855
|
"button",
|
|
12581
12856
|
{
|
|
12582
12857
|
onClick: () => setActiveTab(tab),
|
|
@@ -12597,8 +12872,8 @@ var MemoryPanel = ({
|
|
|
12597
12872
|
))
|
|
12598
12873
|
}
|
|
12599
12874
|
),
|
|
12600
|
-
/* @__PURE__ */ (0,
|
|
12601
|
-
contextSummary && activeTab === "all" && /* @__PURE__ */ (0,
|
|
12875
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { flex: 1, overflow: "auto", padding: "12px" }, children: [
|
|
12876
|
+
contextSummary && activeTab === "all" && /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12602
12877
|
"div",
|
|
12603
12878
|
{
|
|
12604
12879
|
style: {
|
|
@@ -12609,7 +12884,7 @@ var MemoryPanel = ({
|
|
|
12609
12884
|
borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
|
|
12610
12885
|
},
|
|
12611
12886
|
children: [
|
|
12612
|
-
/* @__PURE__ */ (0,
|
|
12887
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12613
12888
|
"div",
|
|
12614
12889
|
{
|
|
12615
12890
|
style: {
|
|
@@ -12619,12 +12894,12 @@ var MemoryPanel = ({
|
|
|
12619
12894
|
marginBottom: "8px"
|
|
12620
12895
|
},
|
|
12621
12896
|
children: [
|
|
12622
|
-
/* @__PURE__ */ (0,
|
|
12623
|
-
/* @__PURE__ */ (0,
|
|
12897
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
|
|
12898
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
|
|
12624
12899
|
]
|
|
12625
12900
|
}
|
|
12626
12901
|
),
|
|
12627
|
-
/* @__PURE__ */ (0,
|
|
12902
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12628
12903
|
"p",
|
|
12629
12904
|
{
|
|
12630
12905
|
style: {
|
|
@@ -12639,7 +12914,7 @@ var MemoryPanel = ({
|
|
|
12639
12914
|
]
|
|
12640
12915
|
}
|
|
12641
12916
|
),
|
|
12642
|
-
filteredItems.length === 0 ? /* @__PURE__ */ (0,
|
|
12917
|
+
filteredItems.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12643
12918
|
"div",
|
|
12644
12919
|
{
|
|
12645
12920
|
style: {
|
|
@@ -12648,11 +12923,11 @@ var MemoryPanel = ({
|
|
|
12648
12923
|
color: "var(--chatllm-text-muted, #9ca3af)"
|
|
12649
12924
|
},
|
|
12650
12925
|
children: [
|
|
12651
|
-
/* @__PURE__ */ (0,
|
|
12652
|
-
/* @__PURE__ */ (0,
|
|
12926
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "robot-line", size: 32, color: "var(--chatllm-text-muted, #d1d5db)" }),
|
|
12927
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("p", { style: { fontSize: "14px", marginTop: "12px" }, children: "\uC800\uC7A5\uB41C \uBA54\uBAA8\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" })
|
|
12653
12928
|
]
|
|
12654
12929
|
}
|
|
12655
|
-
) : /* @__PURE__ */ (0,
|
|
12930
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: filteredItems.map((item) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
12656
12931
|
"div",
|
|
12657
12932
|
{
|
|
12658
12933
|
style: {
|
|
@@ -12665,10 +12940,10 @@ var MemoryPanel = ({
|
|
|
12665
12940
|
},
|
|
12666
12941
|
onClick: () => setExpandedId(expandedId === item.id ? null : item.id),
|
|
12667
12942
|
children: [
|
|
12668
|
-
/* @__PURE__ */ (0,
|
|
12669
|
-
/* @__PURE__ */ (0,
|
|
12670
|
-
/* @__PURE__ */ (0,
|
|
12671
|
-
item.category && /* @__PURE__ */ (0,
|
|
12943
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between" }, children: [
|
|
12944
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
12945
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "4px" }, children: [
|
|
12946
|
+
item.category && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12672
12947
|
"span",
|
|
12673
12948
|
{
|
|
12674
12949
|
style: {
|
|
@@ -12682,9 +12957,9 @@ var MemoryPanel = ({
|
|
|
12682
12957
|
children: categoryLabels[item.category]
|
|
12683
12958
|
}
|
|
12684
12959
|
),
|
|
12685
|
-
/* @__PURE__ */ (0,
|
|
12960
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: formatDate(item.timestamp) })
|
|
12686
12961
|
] }),
|
|
12687
|
-
/* @__PURE__ */ (0,
|
|
12962
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12688
12963
|
"div",
|
|
12689
12964
|
{
|
|
12690
12965
|
style: {
|
|
@@ -12696,8 +12971,8 @@ var MemoryPanel = ({
|
|
|
12696
12971
|
}
|
|
12697
12972
|
)
|
|
12698
12973
|
] }),
|
|
12699
|
-
/* @__PURE__ */ (0,
|
|
12700
|
-
onDelete && /* @__PURE__ */ (0,
|
|
12974
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
12975
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12701
12976
|
"button",
|
|
12702
12977
|
{
|
|
12703
12978
|
onClick: (e) => {
|
|
@@ -12712,10 +12987,10 @@ var MemoryPanel = ({
|
|
|
12712
12987
|
cursor: "pointer",
|
|
12713
12988
|
opacity: 0.5
|
|
12714
12989
|
},
|
|
12715
|
-
children: /* @__PURE__ */ (0,
|
|
12990
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSvg, { name: "delete-bin-line", size: 14, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12716
12991
|
}
|
|
12717
12992
|
),
|
|
12718
|
-
/* @__PURE__ */ (0,
|
|
12993
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12719
12994
|
IconSvg,
|
|
12720
12995
|
{
|
|
12721
12996
|
name: expandedId === item.id ? "arrow-up-s-line" : "arrow-down-s-line",
|
|
@@ -12725,7 +13000,7 @@ var MemoryPanel = ({
|
|
|
12725
13000
|
)
|
|
12726
13001
|
] })
|
|
12727
13002
|
] }),
|
|
12728
|
-
expandedId === item.id && /* @__PURE__ */ (0,
|
|
13003
|
+
expandedId === item.id && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12729
13004
|
"div",
|
|
12730
13005
|
{
|
|
12731
13006
|
style: {
|
|
@@ -12733,7 +13008,7 @@ var MemoryPanel = ({
|
|
|
12733
13008
|
paddingTop: "12px",
|
|
12734
13009
|
borderTop: "1px solid var(--chatllm-border-light, #f3f4f6)"
|
|
12735
13010
|
},
|
|
12736
|
-
children: /* @__PURE__ */ (0,
|
|
13011
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
12737
13012
|
"p",
|
|
12738
13013
|
{
|
|
12739
13014
|
style: {
|
|
@@ -12764,6 +13039,8 @@ var MemoryPanel = ({
|
|
|
12764
13039
|
ChatSidebar,
|
|
12765
13040
|
ChatUI,
|
|
12766
13041
|
ChecklistCard,
|
|
13042
|
+
ChecklistMiniIndicator,
|
|
13043
|
+
ChecklistPanel,
|
|
12767
13044
|
ContentPartRenderer,
|
|
12768
13045
|
DEFAULT_PROJECT_ID,
|
|
12769
13046
|
DEFAULT_PROJECT_TITLE,
|