@gendive/chatllm 0.17.26 → 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 +374 -78
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +372 -78
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.mjs
CHANGED
|
@@ -2826,7 +2826,26 @@ ${attachmentContext}
|
|
|
2826
2826
|
};
|
|
2827
2827
|
if (!shouldSkipSkillParsing) {
|
|
2828
2828
|
const assistantContent = accumulatedContent;
|
|
2829
|
+
console.log("[useChatUI] Post-processing \u2014 accumulatedContent \uAE38\uC774:", assistantContent.length, ", skill_use \uD3EC\uD568:", assistantContent.includes("<skill_use"));
|
|
2829
2830
|
const { skillCall: detectedSkill, cleanContent: skillCleanContent } = parseSkillCallFromContent(assistantContent);
|
|
2831
|
+
if (detectedSkill) {
|
|
2832
|
+
console.log("[useChatUI] \uC2A4\uD0AC \uAC10\uC9C0:", detectedSkill.name, ", resolvedSkills \uD0A4:", Object.keys(resolvedSkills));
|
|
2833
|
+
}
|
|
2834
|
+
if (detectedSkill && !resolvedSkills[detectedSkill.name]) {
|
|
2835
|
+
console.warn(`[useChatUI] \uC2A4\uD0AC "${detectedSkill.name}" \uAC10\uC9C0\uB418\uC5C8\uC73C\uB098 \uBBF8\uB4F1\uB85D. \uB4F1\uB85D\uB41C \uC2A4\uD0AC:`, Object.keys(resolvedSkills));
|
|
2836
|
+
setSessions(
|
|
2837
|
+
(prev) => prev.map((s) => {
|
|
2838
|
+
if (s.id !== capturedSessionId) return s;
|
|
2839
|
+
return {
|
|
2840
|
+
...s,
|
|
2841
|
+
messages: s.messages.map((m) => {
|
|
2842
|
+
if (m.id !== assistantMessageId) return m;
|
|
2843
|
+
return { ...m, content: skillCleanContent };
|
|
2844
|
+
})
|
|
2845
|
+
};
|
|
2846
|
+
})
|
|
2847
|
+
);
|
|
2848
|
+
}
|
|
2830
2849
|
if (detectedSkill && resolvedSkills[detectedSkill.name]) {
|
|
2831
2850
|
setSessions(
|
|
2832
2851
|
(prev) => prev.map((s) => {
|
|
@@ -4060,7 +4079,13 @@ ${result.content}
|
|
|
4060
4079
|
/** @Todo vibecode - 체크리스트 error 항목 재시도 */
|
|
4061
4080
|
handleChecklistRetry,
|
|
4062
4081
|
/** @Todo vibecode - 체크리스트 pending 항목 건너뛰기 */
|
|
4063
|
-
handleChecklistSkip
|
|
4082
|
+
handleChecklistSkip,
|
|
4083
|
+
/** @Todo vibecode - 활성 체크리스트가 포함된 메시지 (패널 자동 열기 트리거용) */
|
|
4084
|
+
activeChecklistMessage: messages.find(
|
|
4085
|
+
(m) => m.checklistBlock && !m.checklistBlock.completed
|
|
4086
|
+
) || messages.find(
|
|
4087
|
+
(m) => m.checklistBlock?.completed
|
|
4088
|
+
) || null
|
|
4064
4089
|
};
|
|
4065
4090
|
};
|
|
4066
4091
|
|
|
@@ -8858,6 +8883,80 @@ var ChecklistCard = ({
|
|
|
8858
8883
|
}
|
|
8859
8884
|
);
|
|
8860
8885
|
};
|
|
8886
|
+
var ChecklistMiniIndicator = ({
|
|
8887
|
+
items,
|
|
8888
|
+
completed
|
|
8889
|
+
}) => {
|
|
8890
|
+
const doneCount = items.filter((it) => it.status === "done").length;
|
|
8891
|
+
const isRunning = items.some((it) => it.status === "in_progress");
|
|
8892
|
+
const hasError = items.some((it) => it.status === "error");
|
|
8893
|
+
const progressPercent = doneCount / items.length * 100;
|
|
8894
|
+
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}`;
|
|
8895
|
+
const statusColor = completed ? "var(--chatllm-success, #22c55e)" : hasError ? "var(--chatllm-error, #ef4444)" : "var(--chatllm-primary, #3584FA)";
|
|
8896
|
+
const barColor = completed ? "var(--chatllm-success, #22c55e)" : "var(--chatllm-primary, #3584FA)";
|
|
8897
|
+
return /* @__PURE__ */ jsxs14(
|
|
8898
|
+
"div",
|
|
8899
|
+
{
|
|
8900
|
+
style: {
|
|
8901
|
+
display: "flex",
|
|
8902
|
+
alignItems: "center",
|
|
8903
|
+
gap: "10px",
|
|
8904
|
+
padding: "10px 14px",
|
|
8905
|
+
border: "1px solid var(--chatllm-border, #e5e7eb)",
|
|
8906
|
+
borderRadius: "10px",
|
|
8907
|
+
backgroundColor: "var(--chatllm-content-bg, #fff)",
|
|
8908
|
+
marginTop: "8px"
|
|
8909
|
+
},
|
|
8910
|
+
children: [
|
|
8911
|
+
/* @__PURE__ */ jsx15(
|
|
8912
|
+
IconSvg,
|
|
8913
|
+
{
|
|
8914
|
+
name: completed ? "checkbox-circle-line" : "list-check",
|
|
8915
|
+
size: 16,
|
|
8916
|
+
color: statusColor
|
|
8917
|
+
}
|
|
8918
|
+
),
|
|
8919
|
+
/* @__PURE__ */ jsx15(
|
|
8920
|
+
"span",
|
|
8921
|
+
{
|
|
8922
|
+
style: {
|
|
8923
|
+
fontSize: "13px",
|
|
8924
|
+
fontWeight: 500,
|
|
8925
|
+
color: statusColor,
|
|
8926
|
+
whiteSpace: "nowrap"
|
|
8927
|
+
},
|
|
8928
|
+
children: statusText
|
|
8929
|
+
}
|
|
8930
|
+
),
|
|
8931
|
+
/* @__PURE__ */ jsx15(
|
|
8932
|
+
"div",
|
|
8933
|
+
{
|
|
8934
|
+
style: {
|
|
8935
|
+
flex: 1,
|
|
8936
|
+
height: "3px",
|
|
8937
|
+
backgroundColor: "var(--chatllm-bg-secondary, #f1f5f9)",
|
|
8938
|
+
borderRadius: "2px",
|
|
8939
|
+
overflow: "hidden",
|
|
8940
|
+
minWidth: "60px"
|
|
8941
|
+
},
|
|
8942
|
+
children: /* @__PURE__ */ jsx15(
|
|
8943
|
+
"div",
|
|
8944
|
+
{
|
|
8945
|
+
style: {
|
|
8946
|
+
height: "100%",
|
|
8947
|
+
width: `${progressPercent}%`,
|
|
8948
|
+
backgroundColor: barColor,
|
|
8949
|
+
borderRadius: "2px",
|
|
8950
|
+
transition: "width 0.6s cubic-bezier(0.25, 1, 0.5, 1)"
|
|
8951
|
+
}
|
|
8952
|
+
}
|
|
8953
|
+
)
|
|
8954
|
+
}
|
|
8955
|
+
)
|
|
8956
|
+
]
|
|
8957
|
+
}
|
|
8958
|
+
);
|
|
8959
|
+
};
|
|
8861
8960
|
|
|
8862
8961
|
// src/react/components/MessageBubble.tsx
|
|
8863
8962
|
import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
@@ -9215,14 +9314,10 @@ var MessageBubble = ({
|
|
|
9215
9314
|
}
|
|
9216
9315
|
),
|
|
9217
9316
|
message.checklistBlock && message.checklistBlock.items.length > 0 && /* @__PURE__ */ jsx16(
|
|
9218
|
-
|
|
9317
|
+
ChecklistMiniIndicator,
|
|
9219
9318
|
{
|
|
9220
9319
|
items: message.checklistBlock.items,
|
|
9221
|
-
|
|
9222
|
-
completed: message.checklistBlock.completed,
|
|
9223
|
-
onAbort: onChecklistAbort,
|
|
9224
|
-
onRetryStep: onChecklistRetry,
|
|
9225
|
-
onSkipStep: onChecklistSkip
|
|
9320
|
+
completed: message.checklistBlock.completed
|
|
9226
9321
|
}
|
|
9227
9322
|
),
|
|
9228
9323
|
!isLoading && !displayContent && !message.pollBlock && !message.checklistBlock && !message.contentParts?.length && /* @__PURE__ */ jsx16(
|
|
@@ -11040,8 +11135,169 @@ var DisclaimerModal = ({ isOpen, onClose }) => {
|
|
|
11040
11135
|
);
|
|
11041
11136
|
};
|
|
11042
11137
|
|
|
11043
|
-
// src/react/
|
|
11138
|
+
// src/react/components/ChecklistPanel.tsx
|
|
11044
11139
|
import { Fragment as Fragment8, jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
11140
|
+
var ChecklistPanel = ({
|
|
11141
|
+
message,
|
|
11142
|
+
isOpen,
|
|
11143
|
+
onClose,
|
|
11144
|
+
onAbort,
|
|
11145
|
+
onRetry,
|
|
11146
|
+
onSkip,
|
|
11147
|
+
width = 360,
|
|
11148
|
+
isMobileOverlay = false
|
|
11149
|
+
}) => {
|
|
11150
|
+
const block = message?.checklistBlock;
|
|
11151
|
+
if (isMobileOverlay) {
|
|
11152
|
+
return /* @__PURE__ */ jsxs20(Fragment8, { children: [
|
|
11153
|
+
/* @__PURE__ */ jsx21(
|
|
11154
|
+
"div",
|
|
11155
|
+
{
|
|
11156
|
+
onClick: onClose,
|
|
11157
|
+
style: {
|
|
11158
|
+
position: "fixed",
|
|
11159
|
+
inset: 0,
|
|
11160
|
+
backgroundColor: "rgba(0, 0, 0, 0.4)",
|
|
11161
|
+
zIndex: 999,
|
|
11162
|
+
opacity: isOpen ? 1 : 0,
|
|
11163
|
+
pointerEvents: isOpen ? "auto" : "none",
|
|
11164
|
+
transition: "opacity 0.3s ease"
|
|
11165
|
+
}
|
|
11166
|
+
}
|
|
11167
|
+
),
|
|
11168
|
+
/* @__PURE__ */ jsx21(
|
|
11169
|
+
"aside",
|
|
11170
|
+
{
|
|
11171
|
+
style: {
|
|
11172
|
+
position: "fixed",
|
|
11173
|
+
top: 0,
|
|
11174
|
+
right: 0,
|
|
11175
|
+
bottom: 0,
|
|
11176
|
+
width: "85vw",
|
|
11177
|
+
maxWidth: "400px",
|
|
11178
|
+
backgroundColor: "var(--chatllm-bg, #F5F5F5)",
|
|
11179
|
+
zIndex: 1e3,
|
|
11180
|
+
transform: isOpen ? "translateX(0)" : "translateX(100%)",
|
|
11181
|
+
transition: "transform 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
11182
|
+
display: "flex",
|
|
11183
|
+
flexDirection: "column",
|
|
11184
|
+
boxShadow: isOpen ? "-4px 0 20px rgba(0, 0, 0, 0.1)" : "none"
|
|
11185
|
+
},
|
|
11186
|
+
children: renderPanelContent()
|
|
11187
|
+
}
|
|
11188
|
+
)
|
|
11189
|
+
] });
|
|
11190
|
+
}
|
|
11191
|
+
return /* @__PURE__ */ jsx21(
|
|
11192
|
+
"aside",
|
|
11193
|
+
{
|
|
11194
|
+
style: {
|
|
11195
|
+
width: isOpen ? typeof width === "number" ? `${width}px` : width : "0px",
|
|
11196
|
+
minWidth: 0,
|
|
11197
|
+
overflow: "hidden",
|
|
11198
|
+
transition: "width 0.3s cubic-bezier(0.4, 0, 0.2, 1)",
|
|
11199
|
+
borderLeft: isOpen ? "1px solid var(--chatllm-border, #e2e8f0)" : "none",
|
|
11200
|
+
backgroundColor: "var(--chatllm-bg, #F5F5F5)",
|
|
11201
|
+
display: "flex",
|
|
11202
|
+
flexDirection: "column",
|
|
11203
|
+
flexShrink: 0
|
|
11204
|
+
},
|
|
11205
|
+
children: isOpen && renderPanelContent()
|
|
11206
|
+
}
|
|
11207
|
+
);
|
|
11208
|
+
function renderPanelContent() {
|
|
11209
|
+
return /* @__PURE__ */ jsxs20(Fragment8, { children: [
|
|
11210
|
+
/* @__PURE__ */ jsxs20(
|
|
11211
|
+
"div",
|
|
11212
|
+
{
|
|
11213
|
+
style: {
|
|
11214
|
+
display: "flex",
|
|
11215
|
+
alignItems: "center",
|
|
11216
|
+
justifyContent: "space-between",
|
|
11217
|
+
padding: "16px",
|
|
11218
|
+
borderBottom: "1px solid var(--chatllm-border, #e2e8f0)",
|
|
11219
|
+
flexShrink: 0
|
|
11220
|
+
},
|
|
11221
|
+
children: [
|
|
11222
|
+
/* @__PURE__ */ jsxs20("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
|
|
11223
|
+
/* @__PURE__ */ jsx21(IconSvg, { name: "list-check", size: 18, color: "var(--chatllm-primary, #3584FA)" }),
|
|
11224
|
+
/* @__PURE__ */ jsx21(
|
|
11225
|
+
"span",
|
|
11226
|
+
{
|
|
11227
|
+
style: {
|
|
11228
|
+
fontSize: "14px",
|
|
11229
|
+
fontWeight: 600,
|
|
11230
|
+
color: "var(--chatllm-text, #1e293b)"
|
|
11231
|
+
},
|
|
11232
|
+
children: "\uCCB4\uD06C\uB9AC\uC2A4\uD2B8"
|
|
11233
|
+
}
|
|
11234
|
+
)
|
|
11235
|
+
] }),
|
|
11236
|
+
/* @__PURE__ */ jsx21(
|
|
11237
|
+
"button",
|
|
11238
|
+
{
|
|
11239
|
+
onClick: onClose,
|
|
11240
|
+
"aria-label": "\uD328\uB110 \uB2EB\uAE30",
|
|
11241
|
+
style: {
|
|
11242
|
+
width: "28px",
|
|
11243
|
+
height: "28px",
|
|
11244
|
+
display: "flex",
|
|
11245
|
+
alignItems: "center",
|
|
11246
|
+
justifyContent: "center",
|
|
11247
|
+
borderRadius: "6px",
|
|
11248
|
+
border: "none",
|
|
11249
|
+
backgroundColor: "transparent",
|
|
11250
|
+
cursor: "pointer",
|
|
11251
|
+
color: "var(--chatllm-text-muted, #94a3b8)",
|
|
11252
|
+
transition: "background-color 0.15s ease"
|
|
11253
|
+
},
|
|
11254
|
+
children: /* @__PURE__ */ jsx21(IconSvg, { name: "close-line", size: 18, color: "currentColor" })
|
|
11255
|
+
}
|
|
11256
|
+
)
|
|
11257
|
+
]
|
|
11258
|
+
}
|
|
11259
|
+
),
|
|
11260
|
+
/* @__PURE__ */ jsx21(
|
|
11261
|
+
"div",
|
|
11262
|
+
{
|
|
11263
|
+
className: "chatllm-scrollbar",
|
|
11264
|
+
style: {
|
|
11265
|
+
flex: 1,
|
|
11266
|
+
overflowY: "auto",
|
|
11267
|
+
padding: "16px"
|
|
11268
|
+
},
|
|
11269
|
+
children: block && block.items.length > 0 ? /* @__PURE__ */ jsx21(
|
|
11270
|
+
ChecklistCard,
|
|
11271
|
+
{
|
|
11272
|
+
items: block.items,
|
|
11273
|
+
currentStep: block.currentStep,
|
|
11274
|
+
completed: block.completed,
|
|
11275
|
+
onAbort,
|
|
11276
|
+
onRetryStep: onRetry,
|
|
11277
|
+
onSkipStep: onSkip
|
|
11278
|
+
}
|
|
11279
|
+
) : /* @__PURE__ */ jsx21(
|
|
11280
|
+
"div",
|
|
11281
|
+
{
|
|
11282
|
+
style: {
|
|
11283
|
+
display: "flex",
|
|
11284
|
+
alignItems: "center",
|
|
11285
|
+
justifyContent: "center",
|
|
11286
|
+
height: "100%",
|
|
11287
|
+
color: "var(--chatllm-text-muted, #94a3b8)",
|
|
11288
|
+
fontSize: "13px"
|
|
11289
|
+
},
|
|
11290
|
+
children: "\uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4"
|
|
11291
|
+
}
|
|
11292
|
+
)
|
|
11293
|
+
}
|
|
11294
|
+
)
|
|
11295
|
+
] });
|
|
11296
|
+
}
|
|
11297
|
+
};
|
|
11298
|
+
|
|
11299
|
+
// src/react/ChatUI.tsx
|
|
11300
|
+
import { Fragment as Fragment9, jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
11045
11301
|
var DEFAULT_ACTIONS = [];
|
|
11046
11302
|
var DEFAULT_TEMPLATES = [];
|
|
11047
11303
|
var DEFAULT_MODELS = [
|
|
@@ -11380,9 +11636,33 @@ var ChatUIView = ({
|
|
|
11380
11636
|
// Checklist
|
|
11381
11637
|
handleChecklistAbort,
|
|
11382
11638
|
handleChecklistRetry,
|
|
11383
|
-
handleChecklistSkip
|
|
11639
|
+
handleChecklistSkip,
|
|
11640
|
+
activeChecklistMessage
|
|
11384
11641
|
} = state;
|
|
11385
11642
|
const [disclaimerOpen, setDisclaimerOpen] = React16.useState(false);
|
|
11643
|
+
const [isMobile, setIsMobile] = React16.useState(false);
|
|
11644
|
+
React16.useEffect(() => {
|
|
11645
|
+
if (typeof window === "undefined") return;
|
|
11646
|
+
const check = () => setIsMobile(window.innerWidth < 768);
|
|
11647
|
+
check();
|
|
11648
|
+
window.addEventListener("resize", check);
|
|
11649
|
+
return () => window.removeEventListener("resize", check);
|
|
11650
|
+
}, []);
|
|
11651
|
+
const [checklistPanelDismissed, setChecklistPanelDismissed] = React16.useState(false);
|
|
11652
|
+
const isChecklistPanelOpen = !!activeChecklistMessage && !checklistPanelDismissed;
|
|
11653
|
+
const prevChecklistIdRef = React16.useRef(void 0);
|
|
11654
|
+
React16.useEffect(() => {
|
|
11655
|
+
const currentId = activeChecklistMessage?.checklistBlock?.id;
|
|
11656
|
+
if (currentId && currentId !== prevChecklistIdRef.current && !activeChecklistMessage?.checklistBlock?.completed) {
|
|
11657
|
+
setChecklistPanelDismissed(false);
|
|
11658
|
+
}
|
|
11659
|
+
prevChecklistIdRef.current = currentId;
|
|
11660
|
+
}, [activeChecklistMessage?.checklistBlock?.id, activeChecklistMessage?.checklistBlock?.completed]);
|
|
11661
|
+
React16.useEffect(() => {
|
|
11662
|
+
if (!activeChecklistMessage?.checklistBlock?.completed) return;
|
|
11663
|
+
const timer = setTimeout(() => setChecklistPanelDismissed(true), 2e3);
|
|
11664
|
+
return () => clearTimeout(timer);
|
|
11665
|
+
}, [activeChecklistMessage?.checklistBlock?.completed]);
|
|
11386
11666
|
const [welcomeExiting, setWelcomeExiting] = React16.useState(false);
|
|
11387
11667
|
const prevMessageCountRef = React16.useRef(messages.length);
|
|
11388
11668
|
React16.useEffect(() => {
|
|
@@ -11438,7 +11718,7 @@ var ChatUIView = ({
|
|
|
11438
11718
|
return items;
|
|
11439
11719
|
}, [projectMemory?.state.entries]);
|
|
11440
11720
|
const themeClass = theme?.mode === "dark" ? "chatllm-dark" : "";
|
|
11441
|
-
return /* @__PURE__ */
|
|
11721
|
+
return /* @__PURE__ */ jsxs21(
|
|
11442
11722
|
"div",
|
|
11443
11723
|
{
|
|
11444
11724
|
className: `chatllm-root ${themeClass} ${className}`,
|
|
@@ -11451,7 +11731,7 @@ var ChatUIView = ({
|
|
|
11451
11731
|
position: "relative"
|
|
11452
11732
|
},
|
|
11453
11733
|
children: [
|
|
11454
|
-
showSidebar && /* @__PURE__ */
|
|
11734
|
+
showSidebar && /* @__PURE__ */ jsx22(
|
|
11455
11735
|
ChatSidebar,
|
|
11456
11736
|
{
|
|
11457
11737
|
sessions,
|
|
@@ -11483,7 +11763,7 @@ var ChatUIView = ({
|
|
|
11483
11763
|
isLoading: isSessionsLoading
|
|
11484
11764
|
}
|
|
11485
11765
|
),
|
|
11486
|
-
/* @__PURE__ */
|
|
11766
|
+
/* @__PURE__ */ jsxs21(
|
|
11487
11767
|
"main",
|
|
11488
11768
|
{
|
|
11489
11769
|
style: {
|
|
@@ -11495,7 +11775,7 @@ var ChatUIView = ({
|
|
|
11495
11775
|
minWidth: 0
|
|
11496
11776
|
},
|
|
11497
11777
|
children: [
|
|
11498
|
-
/* @__PURE__ */
|
|
11778
|
+
/* @__PURE__ */ jsx22(
|
|
11499
11779
|
ChatHeader,
|
|
11500
11780
|
{
|
|
11501
11781
|
title: currentSession?.title || "\uC0C8 \uB300\uD654",
|
|
@@ -11509,7 +11789,7 @@ var ChatUIView = ({
|
|
|
11509
11789
|
showSettings
|
|
11510
11790
|
}
|
|
11511
11791
|
),
|
|
11512
|
-
(messages.length === 0 || welcomeExiting) && /* @__PURE__ */
|
|
11792
|
+
(messages.length === 0 || welcomeExiting) && /* @__PURE__ */ jsxs21(
|
|
11513
11793
|
"div",
|
|
11514
11794
|
{
|
|
11515
11795
|
style: {
|
|
@@ -11524,7 +11804,7 @@ var ChatUIView = ({
|
|
|
11524
11804
|
pointerEvents: welcomeExiting ? "none" : "auto"
|
|
11525
11805
|
},
|
|
11526
11806
|
children: [
|
|
11527
|
-
/* @__PURE__ */
|
|
11807
|
+
/* @__PURE__ */ jsx22(
|
|
11528
11808
|
"h1",
|
|
11529
11809
|
{
|
|
11530
11810
|
style: {
|
|
@@ -11538,7 +11818,7 @@ var ChatUIView = ({
|
|
|
11538
11818
|
children: greeting ? `${greeting} \u273A` : "\u273A \uBB34\uC5C7\uC744 \uC0DD\uAC01\uD574 \uBCFC\uAE4C\uC694?"
|
|
11539
11819
|
}
|
|
11540
11820
|
),
|
|
11541
|
-
/* @__PURE__ */
|
|
11821
|
+
/* @__PURE__ */ jsx22("div", { style: { width: "100%", maxWidth: "680px" }, children: /* @__PURE__ */ jsx22(
|
|
11542
11822
|
ChatInput,
|
|
11543
11823
|
{
|
|
11544
11824
|
value: input,
|
|
@@ -11566,7 +11846,7 @@ var ChatUIView = ({
|
|
|
11566
11846
|
inline: true
|
|
11567
11847
|
}
|
|
11568
11848
|
) }),
|
|
11569
|
-
suggestedPrompts && suggestedPrompts.length > 0 && /* @__PURE__ */
|
|
11849
|
+
suggestedPrompts && suggestedPrompts.length > 0 && /* @__PURE__ */ jsx22(
|
|
11570
11850
|
"div",
|
|
11571
11851
|
{
|
|
11572
11852
|
style: {
|
|
@@ -11576,7 +11856,7 @@ var ChatUIView = ({
|
|
|
11576
11856
|
justifyContent: "center",
|
|
11577
11857
|
maxWidth: "680px"
|
|
11578
11858
|
},
|
|
11579
|
-
children: suggestedPrompts.map((sp) => /* @__PURE__ */
|
|
11859
|
+
children: suggestedPrompts.map((sp) => /* @__PURE__ */ jsxs21(
|
|
11580
11860
|
"button",
|
|
11581
11861
|
{
|
|
11582
11862
|
onClick: () => setInput(sp.prompt),
|
|
@@ -11595,7 +11875,7 @@ var ChatUIView = ({
|
|
|
11595
11875
|
transition: "all 0.2s"
|
|
11596
11876
|
},
|
|
11597
11877
|
children: [
|
|
11598
|
-
sp.icon && /* @__PURE__ */
|
|
11878
|
+
sp.icon && /* @__PURE__ */ jsx22(IconSvg, { name: sp.icon, size: 16, color: "var(--chatllm-text-muted)" }),
|
|
11599
11879
|
sp.label
|
|
11600
11880
|
]
|
|
11601
11881
|
},
|
|
@@ -11606,8 +11886,8 @@ var ChatUIView = ({
|
|
|
11606
11886
|
]
|
|
11607
11887
|
}
|
|
11608
11888
|
),
|
|
11609
|
-
messages.length > 0 && /* @__PURE__ */
|
|
11610
|
-
/* @__PURE__ */
|
|
11889
|
+
messages.length > 0 && /* @__PURE__ */ jsxs21(Fragment9, { children: [
|
|
11890
|
+
/* @__PURE__ */ jsx22(
|
|
11611
11891
|
MessageList,
|
|
11612
11892
|
{
|
|
11613
11893
|
messages,
|
|
@@ -11632,7 +11912,7 @@ var ChatUIView = ({
|
|
|
11632
11912
|
onChecklistSkip: handleChecklistSkip
|
|
11633
11913
|
}
|
|
11634
11914
|
),
|
|
11635
|
-
/* @__PURE__ */
|
|
11915
|
+
/* @__PURE__ */ jsx22(
|
|
11636
11916
|
ChatInput,
|
|
11637
11917
|
{
|
|
11638
11918
|
value: input,
|
|
@@ -11663,7 +11943,19 @@ var ChatUIView = ({
|
|
|
11663
11943
|
]
|
|
11664
11944
|
}
|
|
11665
11945
|
),
|
|
11666
|
-
|
|
11946
|
+
/* @__PURE__ */ jsx22(
|
|
11947
|
+
ChecklistPanel,
|
|
11948
|
+
{
|
|
11949
|
+
message: activeChecklistMessage,
|
|
11950
|
+
isOpen: isChecklistPanelOpen,
|
|
11951
|
+
onClose: () => setChecklistPanelDismissed(true),
|
|
11952
|
+
onAbort: handleChecklistAbort,
|
|
11953
|
+
onRetry: activeChecklistMessage ? (stepIndex) => handleChecklistRetry(activeChecklistMessage.id, stepIndex) : void 0,
|
|
11954
|
+
onSkip: activeChecklistMessage ? (stepIndex) => handleChecklistSkip(activeChecklistMessage.id, stepIndex) : void 0,
|
|
11955
|
+
isMobileOverlay: isMobile
|
|
11956
|
+
}
|
|
11957
|
+
),
|
|
11958
|
+
showSettings && /* @__PURE__ */ jsx22(
|
|
11667
11959
|
SettingsModal,
|
|
11668
11960
|
{
|
|
11669
11961
|
isOpen: settingsOpen,
|
|
@@ -11690,7 +11982,7 @@ var ChatUIView = ({
|
|
|
11690
11982
|
currentProjectTitle: currentProject?.title
|
|
11691
11983
|
}
|
|
11692
11984
|
),
|
|
11693
|
-
/* @__PURE__ */
|
|
11985
|
+
/* @__PURE__ */ jsx22(
|
|
11694
11986
|
ProjectSettingsModal,
|
|
11695
11987
|
{
|
|
11696
11988
|
isOpen: projectSettingsOpen,
|
|
@@ -11702,7 +11994,7 @@ var ChatUIView = ({
|
|
|
11702
11994
|
onDeleteProject: deleteProject
|
|
11703
11995
|
}
|
|
11704
11996
|
),
|
|
11705
|
-
/* @__PURE__ */
|
|
11997
|
+
/* @__PURE__ */ jsx22(DisclaimerModal, { isOpen: disclaimerOpen, onClose: () => setDisclaimerOpen(false) })
|
|
11706
11998
|
]
|
|
11707
11999
|
}
|
|
11708
12000
|
);
|
|
@@ -11805,7 +12097,7 @@ var ChatUIWithHook = ({
|
|
|
11805
12097
|
onDeleteProjectFile
|
|
11806
12098
|
};
|
|
11807
12099
|
const state = useChatUI(hookOptions);
|
|
11808
|
-
return /* @__PURE__ */
|
|
12100
|
+
return /* @__PURE__ */ jsx22(
|
|
11809
12101
|
ChatUIView,
|
|
11810
12102
|
{
|
|
11811
12103
|
state,
|
|
@@ -11853,7 +12145,7 @@ var ChatUI = (props) => {
|
|
|
11853
12145
|
deepResearch,
|
|
11854
12146
|
suggestedPrompts: chatStateSuggestedPrompts
|
|
11855
12147
|
} = props;
|
|
11856
|
-
return /* @__PURE__ */
|
|
12148
|
+
return /* @__PURE__ */ jsx22(
|
|
11857
12149
|
ChatUIView,
|
|
11858
12150
|
{
|
|
11859
12151
|
state: props.chatState,
|
|
@@ -11878,7 +12170,7 @@ var ChatUI = (props) => {
|
|
|
11878
12170
|
}
|
|
11879
12171
|
);
|
|
11880
12172
|
}
|
|
11881
|
-
return /* @__PURE__ */
|
|
12173
|
+
return /* @__PURE__ */ jsx22(ChatUIWithHook, { ...props });
|
|
11882
12174
|
};
|
|
11883
12175
|
|
|
11884
12176
|
// src/react/hooks/useDeepResearch.ts
|
|
@@ -12196,7 +12488,7 @@ var useDeepResearch = (options) => {
|
|
|
12196
12488
|
};
|
|
12197
12489
|
|
|
12198
12490
|
// src/react/components/EmptyState.tsx
|
|
12199
|
-
import { jsx as
|
|
12491
|
+
import { jsx as jsx23, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
12200
12492
|
var EmptyState = ({
|
|
12201
12493
|
greeting,
|
|
12202
12494
|
templates = [],
|
|
@@ -12214,7 +12506,7 @@ var EmptyState = ({
|
|
|
12214
12506
|
return iconMap[icon] || "sparkling-line";
|
|
12215
12507
|
};
|
|
12216
12508
|
const hasContent = actions.length > 0 || templates.length > 0;
|
|
12217
|
-
return /* @__PURE__ */
|
|
12509
|
+
return /* @__PURE__ */ jsxs22(
|
|
12218
12510
|
"div",
|
|
12219
12511
|
{
|
|
12220
12512
|
className: "chatllm-empty-state",
|
|
@@ -12229,7 +12521,7 @@ var EmptyState = ({
|
|
|
12229
12521
|
textAlign: "center"
|
|
12230
12522
|
},
|
|
12231
12523
|
children: [
|
|
12232
|
-
/* @__PURE__ */
|
|
12524
|
+
/* @__PURE__ */ jsx23(
|
|
12233
12525
|
"div",
|
|
12234
12526
|
{
|
|
12235
12527
|
className: "chatllm-sheet",
|
|
@@ -12243,10 +12535,10 @@ var EmptyState = ({
|
|
|
12243
12535
|
marginBottom: "32px",
|
|
12244
12536
|
color: "var(--chatllm-primary)"
|
|
12245
12537
|
},
|
|
12246
|
-
children: /* @__PURE__ */
|
|
12538
|
+
children: /* @__PURE__ */ jsx23(IconSvg, { name: "chat-1-line", size: 40 })
|
|
12247
12539
|
}
|
|
12248
12540
|
),
|
|
12249
|
-
/* @__PURE__ */
|
|
12541
|
+
/* @__PURE__ */ jsx23(
|
|
12250
12542
|
"h1",
|
|
12251
12543
|
{
|
|
12252
12544
|
style: {
|
|
@@ -12259,7 +12551,7 @@ var EmptyState = ({
|
|
|
12259
12551
|
children: "How can I help you today?"
|
|
12260
12552
|
}
|
|
12261
12553
|
),
|
|
12262
|
-
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */
|
|
12554
|
+
(actions.length > 0 || templates.length > 0) && /* @__PURE__ */ jsxs22(
|
|
12263
12555
|
"div",
|
|
12264
12556
|
{
|
|
12265
12557
|
style: {
|
|
@@ -12271,7 +12563,7 @@ var EmptyState = ({
|
|
|
12271
12563
|
marginBottom: "48px"
|
|
12272
12564
|
},
|
|
12273
12565
|
children: [
|
|
12274
|
-
actions.map((action) => /* @__PURE__ */
|
|
12566
|
+
actions.map((action) => /* @__PURE__ */ jsxs22(
|
|
12275
12567
|
"button",
|
|
12276
12568
|
{
|
|
12277
12569
|
onClick: () => onActionSelect?.(action),
|
|
@@ -12285,7 +12577,7 @@ var EmptyState = ({
|
|
|
12285
12577
|
fontWeight: 500
|
|
12286
12578
|
},
|
|
12287
12579
|
children: [
|
|
12288
|
-
/* @__PURE__ */
|
|
12580
|
+
/* @__PURE__ */ jsx23(
|
|
12289
12581
|
IconSvg,
|
|
12290
12582
|
{
|
|
12291
12583
|
name: getActionIcon(action.icon),
|
|
@@ -12298,7 +12590,7 @@ var EmptyState = ({
|
|
|
12298
12590
|
},
|
|
12299
12591
|
action.id
|
|
12300
12592
|
)),
|
|
12301
|
-
templates.slice(0, 4).map((template) => /* @__PURE__ */
|
|
12593
|
+
templates.slice(0, 4).map((template) => /* @__PURE__ */ jsxs22(
|
|
12302
12594
|
"button",
|
|
12303
12595
|
{
|
|
12304
12596
|
onClick: () => onTemplateClick(template),
|
|
@@ -12312,7 +12604,7 @@ var EmptyState = ({
|
|
|
12312
12604
|
fontWeight: 500
|
|
12313
12605
|
},
|
|
12314
12606
|
children: [
|
|
12315
|
-
/* @__PURE__ */
|
|
12607
|
+
/* @__PURE__ */ jsx23(
|
|
12316
12608
|
IconSvg,
|
|
12317
12609
|
{
|
|
12318
12610
|
name: "sparkling-line",
|
|
@@ -12335,7 +12627,7 @@ var EmptyState = ({
|
|
|
12335
12627
|
|
|
12336
12628
|
// src/react/components/MemoryPanel.tsx
|
|
12337
12629
|
import { useState as useState20 } from "react";
|
|
12338
|
-
import { jsx as
|
|
12630
|
+
import { jsx as jsx24, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
12339
12631
|
var categoryLabels = {
|
|
12340
12632
|
fact: "\uC0AC\uC6A9\uC790 \uC815\uBCF4",
|
|
12341
12633
|
skill: "\uC804\uBB38 \uBD84\uC57C/\uAE30\uC220",
|
|
@@ -12367,7 +12659,7 @@ var MemoryPanel = ({
|
|
|
12367
12659
|
});
|
|
12368
12660
|
};
|
|
12369
12661
|
if (!isOpen) {
|
|
12370
|
-
return /* @__PURE__ */
|
|
12662
|
+
return /* @__PURE__ */ jsx24(
|
|
12371
12663
|
"button",
|
|
12372
12664
|
{
|
|
12373
12665
|
onClick: onToggle,
|
|
@@ -12387,11 +12679,11 @@ var MemoryPanel = ({
|
|
|
12387
12679
|
justifyContent: "center",
|
|
12388
12680
|
zIndex: 100
|
|
12389
12681
|
},
|
|
12390
|
-
children: /* @__PURE__ */
|
|
12682
|
+
children: /* @__PURE__ */ jsx24(IconSvg, { name: "robot-line", size: 24, color: "#ffffff" })
|
|
12391
12683
|
}
|
|
12392
12684
|
);
|
|
12393
12685
|
}
|
|
12394
|
-
return /* @__PURE__ */
|
|
12686
|
+
return /* @__PURE__ */ jsxs23(
|
|
12395
12687
|
"div",
|
|
12396
12688
|
{
|
|
12397
12689
|
className: "chatllm-memory-panel",
|
|
@@ -12411,7 +12703,7 @@ var MemoryPanel = ({
|
|
|
12411
12703
|
zIndex: 100
|
|
12412
12704
|
},
|
|
12413
12705
|
children: [
|
|
12414
|
-
/* @__PURE__ */
|
|
12706
|
+
/* @__PURE__ */ jsxs23(
|
|
12415
12707
|
"div",
|
|
12416
12708
|
{
|
|
12417
12709
|
style: {
|
|
@@ -12422,8 +12714,8 @@ var MemoryPanel = ({
|
|
|
12422
12714
|
borderBottom: "1px solid var(--chatllm-border, #e5e7eb)"
|
|
12423
12715
|
},
|
|
12424
12716
|
children: [
|
|
12425
|
-
/* @__PURE__ */
|
|
12426
|
-
/* @__PURE__ */
|
|
12717
|
+
/* @__PURE__ */ jsxs23("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
|
|
12718
|
+
/* @__PURE__ */ jsx24(
|
|
12427
12719
|
"div",
|
|
12428
12720
|
{
|
|
12429
12721
|
style: {
|
|
@@ -12435,19 +12727,19 @@ var MemoryPanel = ({
|
|
|
12435
12727
|
alignItems: "center",
|
|
12436
12728
|
justifyContent: "center"
|
|
12437
12729
|
},
|
|
12438
|
-
children: /* @__PURE__ */
|
|
12730
|
+
children: /* @__PURE__ */ jsx24(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3584FA)" })
|
|
12439
12731
|
}
|
|
12440
12732
|
),
|
|
12441
|
-
/* @__PURE__ */
|
|
12442
|
-
/* @__PURE__ */
|
|
12443
|
-
/* @__PURE__ */
|
|
12733
|
+
/* @__PURE__ */ jsxs23("div", { children: [
|
|
12734
|
+
/* @__PURE__ */ jsx24("div", { style: { fontSize: "15px", fontWeight: 600, color: "var(--chatllm-text, #1f2937)" }, children: "AI \uBA54\uBAA8\uB9AC" }),
|
|
12735
|
+
/* @__PURE__ */ jsxs23("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: [
|
|
12444
12736
|
items.length,
|
|
12445
12737
|
"\uAC1C \uD56D\uBAA9"
|
|
12446
12738
|
] })
|
|
12447
12739
|
] })
|
|
12448
12740
|
] }),
|
|
12449
|
-
/* @__PURE__ */
|
|
12450
|
-
onClearAll && items.length > 0 && /* @__PURE__ */
|
|
12741
|
+
/* @__PURE__ */ jsxs23("div", { style: { display: "flex", gap: "4px" }, children: [
|
|
12742
|
+
onClearAll && items.length > 0 && /* @__PURE__ */ jsx24(
|
|
12451
12743
|
"button",
|
|
12452
12744
|
{
|
|
12453
12745
|
onClick: onClearAll,
|
|
@@ -12459,10 +12751,10 @@ var MemoryPanel = ({
|
|
|
12459
12751
|
cursor: "pointer"
|
|
12460
12752
|
},
|
|
12461
12753
|
title: "\uC804\uCCB4 \uC0AD\uC81C",
|
|
12462
|
-
children: /* @__PURE__ */
|
|
12754
|
+
children: /* @__PURE__ */ jsx24(IconSvg, { name: "delete-bin-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12463
12755
|
}
|
|
12464
12756
|
),
|
|
12465
|
-
/* @__PURE__ */
|
|
12757
|
+
/* @__PURE__ */ jsx24(
|
|
12466
12758
|
"button",
|
|
12467
12759
|
{
|
|
12468
12760
|
onClick: onToggle,
|
|
@@ -12473,14 +12765,14 @@ var MemoryPanel = ({
|
|
|
12473
12765
|
borderRadius: "8px",
|
|
12474
12766
|
cursor: "pointer"
|
|
12475
12767
|
},
|
|
12476
|
-
children: /* @__PURE__ */
|
|
12768
|
+
children: /* @__PURE__ */ jsx24(IconSvg, { name: "close-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12477
12769
|
}
|
|
12478
12770
|
)
|
|
12479
12771
|
] })
|
|
12480
12772
|
]
|
|
12481
12773
|
}
|
|
12482
12774
|
),
|
|
12483
|
-
/* @__PURE__ */
|
|
12775
|
+
/* @__PURE__ */ jsx24(
|
|
12484
12776
|
"div",
|
|
12485
12777
|
{
|
|
12486
12778
|
style: {
|
|
@@ -12490,7 +12782,7 @@ var MemoryPanel = ({
|
|
|
12490
12782
|
borderBottom: "1px solid var(--chatllm-border-light, #f3f4f6)",
|
|
12491
12783
|
overflowX: "auto"
|
|
12492
12784
|
},
|
|
12493
|
-
children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */
|
|
12785
|
+
children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ jsx24(
|
|
12494
12786
|
"button",
|
|
12495
12787
|
{
|
|
12496
12788
|
onClick: () => setActiveTab(tab),
|
|
@@ -12511,8 +12803,8 @@ var MemoryPanel = ({
|
|
|
12511
12803
|
))
|
|
12512
12804
|
}
|
|
12513
12805
|
),
|
|
12514
|
-
/* @__PURE__ */
|
|
12515
|
-
contextSummary && activeTab === "all" && /* @__PURE__ */
|
|
12806
|
+
/* @__PURE__ */ jsxs23("div", { style: { flex: 1, overflow: "auto", padding: "12px" }, children: [
|
|
12807
|
+
contextSummary && activeTab === "all" && /* @__PURE__ */ jsxs23(
|
|
12516
12808
|
"div",
|
|
12517
12809
|
{
|
|
12518
12810
|
style: {
|
|
@@ -12523,7 +12815,7 @@ var MemoryPanel = ({
|
|
|
12523
12815
|
borderLeft: "3px solid var(--chatllm-primary, #3584FA)"
|
|
12524
12816
|
},
|
|
12525
12817
|
children: [
|
|
12526
|
-
/* @__PURE__ */
|
|
12818
|
+
/* @__PURE__ */ jsxs23(
|
|
12527
12819
|
"div",
|
|
12528
12820
|
{
|
|
12529
12821
|
style: {
|
|
@@ -12533,12 +12825,12 @@ var MemoryPanel = ({
|
|
|
12533
12825
|
marginBottom: "8px"
|
|
12534
12826
|
},
|
|
12535
12827
|
children: [
|
|
12536
|
-
/* @__PURE__ */
|
|
12537
|
-
/* @__PURE__ */
|
|
12828
|
+
/* @__PURE__ */ jsx24(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3584FA)" }),
|
|
12829
|
+
/* @__PURE__ */ jsx24("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3584FA)" }, children: "\uB300\uD654 \uC694\uC57D" })
|
|
12538
12830
|
]
|
|
12539
12831
|
}
|
|
12540
12832
|
),
|
|
12541
|
-
/* @__PURE__ */
|
|
12833
|
+
/* @__PURE__ */ jsx24(
|
|
12542
12834
|
"p",
|
|
12543
12835
|
{
|
|
12544
12836
|
style: {
|
|
@@ -12553,7 +12845,7 @@ var MemoryPanel = ({
|
|
|
12553
12845
|
]
|
|
12554
12846
|
}
|
|
12555
12847
|
),
|
|
12556
|
-
filteredItems.length === 0 ? /* @__PURE__ */
|
|
12848
|
+
filteredItems.length === 0 ? /* @__PURE__ */ jsxs23(
|
|
12557
12849
|
"div",
|
|
12558
12850
|
{
|
|
12559
12851
|
style: {
|
|
@@ -12562,11 +12854,11 @@ var MemoryPanel = ({
|
|
|
12562
12854
|
color: "var(--chatllm-text-muted, #9ca3af)"
|
|
12563
12855
|
},
|
|
12564
12856
|
children: [
|
|
12565
|
-
/* @__PURE__ */
|
|
12566
|
-
/* @__PURE__ */
|
|
12857
|
+
/* @__PURE__ */ jsx24(IconSvg, { name: "robot-line", size: 32, color: "var(--chatllm-text-muted, #d1d5db)" }),
|
|
12858
|
+
/* @__PURE__ */ jsx24("p", { style: { fontSize: "14px", marginTop: "12px" }, children: "\uC800\uC7A5\uB41C \uBA54\uBAA8\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" })
|
|
12567
12859
|
]
|
|
12568
12860
|
}
|
|
12569
|
-
) : /* @__PURE__ */
|
|
12861
|
+
) : /* @__PURE__ */ jsx24("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: filteredItems.map((item) => /* @__PURE__ */ jsxs23(
|
|
12570
12862
|
"div",
|
|
12571
12863
|
{
|
|
12572
12864
|
style: {
|
|
@@ -12579,10 +12871,10 @@ var MemoryPanel = ({
|
|
|
12579
12871
|
},
|
|
12580
12872
|
onClick: () => setExpandedId(expandedId === item.id ? null : item.id),
|
|
12581
12873
|
children: [
|
|
12582
|
-
/* @__PURE__ */
|
|
12583
|
-
/* @__PURE__ */
|
|
12584
|
-
/* @__PURE__ */
|
|
12585
|
-
item.category && /* @__PURE__ */
|
|
12874
|
+
/* @__PURE__ */ jsxs23("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between" }, children: [
|
|
12875
|
+
/* @__PURE__ */ jsxs23("div", { style: { flex: 1, minWidth: 0 }, children: [
|
|
12876
|
+
/* @__PURE__ */ jsxs23("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "4px" }, children: [
|
|
12877
|
+
item.category && /* @__PURE__ */ jsx24(
|
|
12586
12878
|
"span",
|
|
12587
12879
|
{
|
|
12588
12880
|
style: {
|
|
@@ -12596,9 +12888,9 @@ var MemoryPanel = ({
|
|
|
12596
12888
|
children: categoryLabels[item.category]
|
|
12597
12889
|
}
|
|
12598
12890
|
),
|
|
12599
|
-
/* @__PURE__ */
|
|
12891
|
+
/* @__PURE__ */ jsx24("span", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: formatDate(item.timestamp) })
|
|
12600
12892
|
] }),
|
|
12601
|
-
/* @__PURE__ */
|
|
12893
|
+
/* @__PURE__ */ jsx24(
|
|
12602
12894
|
"div",
|
|
12603
12895
|
{
|
|
12604
12896
|
style: {
|
|
@@ -12610,8 +12902,8 @@ var MemoryPanel = ({
|
|
|
12610
12902
|
}
|
|
12611
12903
|
)
|
|
12612
12904
|
] }),
|
|
12613
|
-
/* @__PURE__ */
|
|
12614
|
-
onDelete && /* @__PURE__ */
|
|
12905
|
+
/* @__PURE__ */ jsxs23("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
|
|
12906
|
+
onDelete && /* @__PURE__ */ jsx24(
|
|
12615
12907
|
"button",
|
|
12616
12908
|
{
|
|
12617
12909
|
onClick: (e) => {
|
|
@@ -12626,10 +12918,10 @@ var MemoryPanel = ({
|
|
|
12626
12918
|
cursor: "pointer",
|
|
12627
12919
|
opacity: 0.5
|
|
12628
12920
|
},
|
|
12629
|
-
children: /* @__PURE__ */
|
|
12921
|
+
children: /* @__PURE__ */ jsx24(IconSvg, { name: "delete-bin-line", size: 14, color: "var(--chatllm-text-muted, #9ca3af)" })
|
|
12630
12922
|
}
|
|
12631
12923
|
),
|
|
12632
|
-
/* @__PURE__ */
|
|
12924
|
+
/* @__PURE__ */ jsx24(
|
|
12633
12925
|
IconSvg,
|
|
12634
12926
|
{
|
|
12635
12927
|
name: expandedId === item.id ? "arrow-up-s-line" : "arrow-down-s-line",
|
|
@@ -12639,7 +12931,7 @@ var MemoryPanel = ({
|
|
|
12639
12931
|
)
|
|
12640
12932
|
] })
|
|
12641
12933
|
] }),
|
|
12642
|
-
expandedId === item.id && /* @__PURE__ */
|
|
12934
|
+
expandedId === item.id && /* @__PURE__ */ jsx24(
|
|
12643
12935
|
"div",
|
|
12644
12936
|
{
|
|
12645
12937
|
style: {
|
|
@@ -12647,7 +12939,7 @@ var MemoryPanel = ({
|
|
|
12647
12939
|
paddingTop: "12px",
|
|
12648
12940
|
borderTop: "1px solid var(--chatllm-border-light, #f3f4f6)"
|
|
12649
12941
|
},
|
|
12650
|
-
children: /* @__PURE__ */
|
|
12942
|
+
children: /* @__PURE__ */ jsx24(
|
|
12651
12943
|
"p",
|
|
12652
12944
|
{
|
|
12653
12945
|
style: {
|
|
@@ -12677,6 +12969,8 @@ export {
|
|
|
12677
12969
|
ChatSidebar,
|
|
12678
12970
|
ChatUI,
|
|
12679
12971
|
ChecklistCard,
|
|
12972
|
+
ChecklistMiniIndicator,
|
|
12973
|
+
ChecklistPanel,
|
|
12680
12974
|
ContentPartRenderer,
|
|
12681
12975
|
DEFAULT_PROJECT_ID,
|
|
12682
12976
|
DEFAULT_PROJECT_TITLE,
|