@gendive/chatllm 0.17.6 → 0.17.8

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.
@@ -4648,7 +4648,8 @@ var ChatInput = ({
4648
4648
  attachments = [],
4649
4649
  onFileAttach,
4650
4650
  onRemoveAttachment,
4651
- acceptedFileTypes
4651
+ acceptedFileTypes,
4652
+ onDisclaimerClick
4652
4653
  }) => {
4653
4654
  const [mainMenuOpen, setMainMenuOpen] = React4.useState(false);
4654
4655
  const textareaRef = useRef7(null);
@@ -4732,7 +4733,7 @@ var ChatInput = ({
4732
4733
  };
4733
4734
  return icon ? iconMap[icon] || "sparkling-line" : "sparkling-line";
4734
4735
  };
4735
- return /* @__PURE__ */ jsx5(
4736
+ return /* @__PURE__ */ jsxs4(
4736
4737
  "footer",
4737
4738
  {
4738
4739
  className: "chatllm-input-footer",
@@ -4749,107 +4750,26 @@ var ChatInput = ({
4749
4750
  background: "linear-gradient(to top, var(--chatllm-bg) 60%, transparent)",
4750
4751
  pointerEvents: "none"
4751
4752
  },
4752
- children: /* @__PURE__ */ jsxs4(
4753
- "div",
4754
- {
4755
- style: {
4756
- width: "100%",
4757
- maxWidth: "820px",
4758
- padding: "0 24px",
4759
- pointerEvents: "auto"
4760
- },
4761
- children: [
4762
- activeSkillExecution && activeSkillExecution.status === "executing" && /* @__PURE__ */ jsxs4(
4763
- "div",
4764
- {
4765
- style: {
4766
- display: "flex",
4767
- alignItems: "center",
4768
- gap: "8px",
4769
- padding: "8px 14px",
4770
- marginBottom: "12px",
4771
- backgroundColor: "var(--chatllm-primary-light)",
4772
- borderRadius: "9999px",
4773
- fontSize: "13px",
4774
- fontWeight: 500,
4775
- color: "var(--chatllm-primary)"
4776
- },
4777
- children: [
4778
- /* @__PURE__ */ jsx5(
4779
- "span",
4780
- {
4781
- className: "chatllm-skeleton-pulse",
4782
- style: {
4783
- width: "8px",
4784
- height: "8px",
4785
- borderRadius: "50%",
4786
- backgroundColor: "var(--chatllm-primary)"
4787
- }
4788
- }
4789
- ),
4790
- activeSkillExecution.skillName,
4791
- " \uC2E4\uD589 \uC911..."
4792
- ]
4793
- }
4794
- ),
4795
- (quotedText || selectedAction) && /* @__PURE__ */ jsxs4("div", { style: { display: "flex", gap: "8px", marginBottom: "12px", flexWrap: "wrap" }, children: [
4796
- quotedText && /* @__PURE__ */ jsxs4(
4753
+ children: [
4754
+ /* @__PURE__ */ jsxs4(
4755
+ "div",
4756
+ {
4757
+ style: {
4758
+ width: "100%",
4759
+ maxWidth: "820px",
4760
+ padding: "0 24px",
4761
+ pointerEvents: "auto"
4762
+ },
4763
+ children: [
4764
+ activeSkillExecution && activeSkillExecution.status === "executing" && /* @__PURE__ */ jsxs4(
4797
4765
  "div",
4798
4766
  {
4799
4767
  style: {
4800
4768
  display: "flex",
4801
4769
  alignItems: "center",
4802
4770
  gap: "8px",
4803
- padding: "8px 12px",
4804
- backgroundColor: "var(--chatllm-content-bg)",
4805
- borderRadius: "12px",
4806
- border: "1px solid var(--chatllm-border)",
4807
- maxWidth: "100%"
4808
- },
4809
- children: [
4810
- /* @__PURE__ */ jsx5(IconSvg, { name: "double-quotes-l", size: 14, color: "var(--chatllm-primary)" }),
4811
- /* @__PURE__ */ jsx5(
4812
- "span",
4813
- {
4814
- style: {
4815
- fontSize: "13px",
4816
- color: "var(--chatllm-text)",
4817
- overflow: "hidden",
4818
- textOverflow: "ellipsis",
4819
- whiteSpace: "nowrap",
4820
- maxWidth: "300px"
4821
- },
4822
- children: quotedText
4823
- }
4824
- ),
4825
- /* @__PURE__ */ jsx5(
4826
- "button",
4827
- {
4828
- onClick: onClearQuote,
4829
- style: {
4830
- padding: "2px",
4831
- backgroundColor: "transparent",
4832
- border: "none",
4833
- borderRadius: "4px",
4834
- cursor: "pointer",
4835
- display: "flex",
4836
- alignItems: "center",
4837
- justifyContent: "center"
4838
- },
4839
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 14, color: "var(--chatllm-text-muted)" })
4840
- }
4841
- )
4842
- ]
4843
- }
4844
- ),
4845
- selectedAction && /* @__PURE__ */ jsxs4(
4846
- "div",
4847
- {
4848
- style: {
4849
- display: "flex",
4850
- alignItems: "center",
4851
- gap: "6px",
4852
4771
  padding: "8px 14px",
4772
+ marginBottom: "12px",
4853
4773
  backgroundColor: "var(--chatllm-primary-light)",
4854
4774
  borderRadius: "9999px",
4855
4775
  fontSize: "13px",
@@ -4857,315 +4777,265 @@ var ChatInput = ({
4857
4777
  color: "var(--chatllm-primary)"
4858
4778
  },
4859
4779
  children: [
4860
- /* @__PURE__ */ jsx5(IconSvg, { name: "sparkling-line", size: 14, color: "var(--chatllm-primary)" }),
4861
- selectedAction.label,
4862
4780
  /* @__PURE__ */ jsx5(
4863
- "button",
4781
+ "span",
4864
4782
  {
4865
- onClick: onClearAction,
4783
+ className: "chatllm-skeleton-pulse",
4866
4784
  style: {
4867
- padding: "2px",
4868
- backgroundColor: "transparent",
4869
- border: "none",
4870
- borderRadius: "4px",
4871
- cursor: "pointer",
4872
- display: "flex",
4873
- alignItems: "center",
4874
- justifyContent: "center"
4875
- },
4876
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 14, color: "var(--chatllm-primary)" })
4785
+ width: "8px",
4786
+ height: "8px",
4787
+ borderRadius: "50%",
4788
+ backgroundColor: "var(--chatllm-primary)"
4789
+ }
4877
4790
  }
4878
- )
4791
+ ),
4792
+ activeSkillExecution.skillName,
4793
+ " \uC2E4\uD589 \uC911..."
4879
4794
  ]
4880
4795
  }
4881
- )
4882
- ] }),
4883
- /* @__PURE__ */ jsx5(
4884
- "input",
4885
- {
4886
- ref: fileInputRef,
4887
- type: "file",
4888
- multiple: true,
4889
- accept: acceptedFileTypes?.join(",") || void 0,
4890
- onChange: handleFileSelect,
4891
- style: { display: "none" }
4892
- }
4893
- ),
4894
- /* @__PURE__ */ jsxs4(
4895
- "div",
4896
- {
4897
- className: "chatllm-input-container",
4898
- onDrop: handleDrop,
4899
- onDragOver: handleDragOver,
4900
- onDragLeave: handleDragLeave,
4901
- style: isDragOver ? { outline: "2px dashed var(--chatllm-primary)", outlineOffset: "-2px" } : void 0,
4902
- children: [
4903
- attachments.length > 0 && /* @__PURE__ */ jsx5(
4904
- "div",
4905
- {
4906
- style: {
4907
- display: "flex",
4908
- gap: "8px",
4909
- padding: "12px 24px 0 24px",
4910
- flexWrap: "wrap"
4911
- },
4912
- children: attachments.map((att) => /* @__PURE__ */ jsxs4(
4913
- "div",
4796
+ ),
4797
+ (quotedText || selectedAction) && /* @__PURE__ */ jsxs4("div", { style: { display: "flex", gap: "8px", marginBottom: "12px", flexWrap: "wrap" }, children: [
4798
+ quotedText && /* @__PURE__ */ jsxs4(
4799
+ "div",
4800
+ {
4801
+ style: {
4802
+ display: "flex",
4803
+ alignItems: "center",
4804
+ gap: "8px",
4805
+ padding: "8px 12px",
4806
+ backgroundColor: "var(--chatllm-content-bg)",
4807
+ borderRadius: "12px",
4808
+ border: "1px solid var(--chatllm-border)",
4809
+ maxWidth: "100%"
4810
+ },
4811
+ children: [
4812
+ /* @__PURE__ */ jsx5(IconSvg, { name: "double-quotes-l", size: 14, color: "var(--chatllm-primary)" }),
4813
+ /* @__PURE__ */ jsx5(
4814
+ "span",
4914
4815
  {
4915
4816
  style: {
4916
- position: "relative",
4817
+ fontSize: "13px",
4818
+ color: "var(--chatllm-text)",
4819
+ overflow: "hidden",
4820
+ textOverflow: "ellipsis",
4821
+ whiteSpace: "nowrap",
4822
+ maxWidth: "300px"
4823
+ },
4824
+ children: quotedText
4825
+ }
4826
+ ),
4827
+ /* @__PURE__ */ jsx5(
4828
+ "button",
4829
+ {
4830
+ onClick: onClearQuote,
4831
+ style: {
4832
+ padding: "2px",
4833
+ backgroundColor: "transparent",
4834
+ border: "none",
4835
+ borderRadius: "4px",
4836
+ cursor: "pointer",
4917
4837
  display: "flex",
4918
4838
  alignItems: "center",
4919
- gap: "8px",
4920
- padding: att.type === "image" ? "0" : "8px 12px",
4921
- backgroundColor: "var(--chatllm-content-bg)",
4922
- borderRadius: "12px",
4923
- border: "1px solid var(--chatllm-border)",
4924
- overflow: "hidden"
4839
+ justifyContent: "center"
4925
4840
  },
4926
- children: [
4927
- att.type === "image" && att.previewUrl ? /* @__PURE__ */ jsx5(
4928
- "img",
4929
- {
4930
- src: att.previewUrl,
4931
- alt: att.name,
4932
- style: {
4933
- width: "64px",
4934
- height: "64px",
4935
- objectFit: "cover",
4936
- borderRadius: "12px"
4937
- }
4938
- }
4939
- ) : /* @__PURE__ */ jsxs4(Fragment3, { children: [
4940
- /* @__PURE__ */ jsx5(IconSvg, { name: "file-text-line", size: 16, color: "var(--chatllm-text-muted)" }),
4941
- /* @__PURE__ */ jsx5("span", { style: { fontSize: "13px", color: "var(--chatllm-text)", maxWidth: "120px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: att.name })
4942
- ] }),
4943
- /* @__PURE__ */ jsx5(
4944
- "button",
4945
- {
4946
- onClick: () => onRemoveAttachment?.(att.id),
4947
- style: {
4948
- position: "absolute",
4949
- top: "2px",
4950
- right: "2px",
4951
- width: "20px",
4952
- height: "20px",
4953
- display: "flex",
4954
- alignItems: "center",
4955
- justifyContent: "center",
4956
- backgroundColor: "rgba(0,0,0,0.5)",
4957
- border: "none",
4958
- borderRadius: "50%",
4959
- cursor: "pointer",
4960
- padding: 0
4961
- },
4962
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 12, color: "#fff" })
4963
- }
4964
- )
4965
- ]
4841
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 14, color: "var(--chatllm-text-muted)" })
4842
+ }
4843
+ )
4844
+ ]
4845
+ }
4846
+ ),
4847
+ selectedAction && /* @__PURE__ */ jsxs4(
4848
+ "div",
4849
+ {
4850
+ style: {
4851
+ display: "flex",
4852
+ alignItems: "center",
4853
+ gap: "6px",
4854
+ padding: "8px 14px",
4855
+ backgroundColor: "var(--chatllm-primary-light)",
4856
+ borderRadius: "9999px",
4857
+ fontSize: "13px",
4858
+ fontWeight: 500,
4859
+ color: "var(--chatllm-primary)"
4860
+ },
4861
+ children: [
4862
+ /* @__PURE__ */ jsx5(IconSvg, { name: "sparkling-line", size: 14, color: "var(--chatllm-primary)" }),
4863
+ selectedAction.label,
4864
+ /* @__PURE__ */ jsx5(
4865
+ "button",
4866
+ {
4867
+ onClick: onClearAction,
4868
+ style: {
4869
+ padding: "2px",
4870
+ backgroundColor: "transparent",
4871
+ border: "none",
4872
+ borderRadius: "4px",
4873
+ cursor: "pointer",
4874
+ display: "flex",
4875
+ alignItems: "center",
4876
+ justifyContent: "center"
4877
+ },
4878
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 14, color: "var(--chatllm-primary)" })
4879
+ }
4880
+ )
4881
+ ]
4882
+ }
4883
+ )
4884
+ ] }),
4885
+ /* @__PURE__ */ jsx5(
4886
+ "input",
4887
+ {
4888
+ ref: fileInputRef,
4889
+ type: "file",
4890
+ multiple: true,
4891
+ accept: acceptedFileTypes?.join(",") || void 0,
4892
+ onChange: handleFileSelect,
4893
+ style: { display: "none" }
4894
+ }
4895
+ ),
4896
+ /* @__PURE__ */ jsxs4(
4897
+ "div",
4898
+ {
4899
+ className: "chatllm-input-container",
4900
+ onDrop: handleDrop,
4901
+ onDragOver: handleDragOver,
4902
+ onDragLeave: handleDragLeave,
4903
+ style: isDragOver ? { outline: "2px dashed var(--chatllm-primary)", outlineOffset: "-2px" } : void 0,
4904
+ children: [
4905
+ attachments.length > 0 && /* @__PURE__ */ jsx5(
4906
+ "div",
4907
+ {
4908
+ style: {
4909
+ display: "flex",
4910
+ gap: "8px",
4911
+ padding: "12px 24px 0 24px",
4912
+ flexWrap: "wrap"
4966
4913
  },
4967
- att.id
4968
- ))
4969
- }
4970
- ),
4971
- /* @__PURE__ */ jsx5(
4972
- "textarea",
4973
- {
4974
- ref: textareaRef,
4975
- value,
4976
- onChange: (e) => onChange(e.target.value),
4977
- onKeyDown: handleKeyDown,
4978
- onPaste: handlePaste,
4979
- placeholder,
4980
- rows: 1,
4981
- style: {
4982
- width: "100%",
4983
- minHeight: "60px",
4984
- maxHeight: "200px",
4985
- padding: "24px 32px 8px 32px",
4986
- backgroundColor: "transparent",
4987
- border: "none",
4988
- outline: "none",
4989
- fontSize: "16px",
4990
- lineHeight: "1.5",
4991
- resize: "none",
4992
- color: "var(--chatllm-text)"
4993
- }
4994
- }
4995
- ),
4996
- /* @__PURE__ */ jsxs4(
4997
- "div",
4998
- {
4999
- style: {
5000
- display: "flex",
5001
- alignItems: "center",
5002
- justifyContent: "space-between",
5003
- padding: "0 24px 20px 24px"
5004
- },
5005
- children: [
5006
- /* @__PURE__ */ jsxs4("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
5007
- actions.length > 0 && /* @__PURE__ */ jsxs4("div", { ref: actionMenuRef, style: { position: "relative" }, children: [
5008
- /* @__PURE__ */ jsx5(
5009
- "button",
5010
- {
5011
- onClick: () => setActionMenuOpen(!actionMenuOpen),
5012
- style: iconButtonStyle,
5013
- title: "\uAE30\uB2A5 \uCD94\uAC00",
5014
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "add-line", size: 22, color: "var(--chatllm-text-muted)" })
5015
- }
5016
- ),
5017
- actionMenuOpen && /* @__PURE__ */ jsx5(
5018
- "div",
5019
- {
5020
- style: {
5021
- position: "absolute",
5022
- bottom: "100%",
5023
- left: 0,
5024
- marginBottom: "8px",
5025
- backgroundColor: "var(--chatllm-content-bg)",
5026
- borderRadius: "16px",
5027
- boxShadow: "var(--chatllm-shadow-sheet)",
5028
- border: "1px solid var(--chatllm-border)",
5029
- padding: "8px",
5030
- minWidth: "220px",
5031
- zIndex: 100
5032
- },
5033
- children: actions.map((action) => /* @__PURE__ */ jsxs4(
5034
- "button",
5035
- {
5036
- onClick: () => handleActionSelect(action),
5037
- style: {
5038
- width: "100%",
5039
- display: "flex",
5040
- alignItems: "center",
5041
- gap: "12px",
5042
- padding: "12px",
5043
- backgroundColor: "transparent",
5044
- border: "none",
5045
- borderRadius: "12px",
5046
- cursor: "pointer",
5047
- textAlign: "left",
5048
- transition: "background-color 0.2s"
5049
- },
5050
- onMouseOver: (e) => {
5051
- e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5052
- },
5053
- onMouseOut: (e) => {
5054
- e.currentTarget.style.backgroundColor = "transparent";
5055
- },
5056
- children: [
5057
- /* @__PURE__ */ jsx5(
5058
- "div",
5059
- {
5060
- style: {
5061
- width: "36px",
5062
- height: "36px",
5063
- display: "flex",
5064
- alignItems: "center",
5065
- justifyContent: "center",
5066
- backgroundColor: "var(--chatllm-primary-light)",
5067
- borderRadius: "10px"
5068
- },
5069
- children: /* @__PURE__ */ jsx5(
5070
- IconSvg,
5071
- {
5072
- name: action.icon === "search" ? "search-line" : action.icon === "image" ? "image-line" : action.icon === "code" ? "code-s-slash-line" : "file-text-line",
5073
- size: 20,
5074
- color: "var(--chatllm-primary)"
5075
- }
5076
- )
5077
- }
5078
- ),
5079
- /* @__PURE__ */ jsxs4("div", { children: [
5080
- /* @__PURE__ */ jsx5("div", { style: { fontSize: "14px", fontWeight: 600, color: "var(--chatllm-text)" }, children: action.label }),
5081
- /* @__PURE__ */ jsx5("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted)" }, children: action.description })
5082
- ] })
5083
- ]
4914
+ children: attachments.map((att) => /* @__PURE__ */ jsxs4(
4915
+ "div",
4916
+ {
4917
+ style: {
4918
+ position: "relative",
4919
+ display: "flex",
4920
+ alignItems: "center",
4921
+ gap: "8px",
4922
+ padding: att.type === "image" ? "0" : "8px 12px",
4923
+ backgroundColor: "var(--chatllm-content-bg)",
4924
+ borderRadius: "12px",
4925
+ border: "1px solid var(--chatllm-border)",
4926
+ overflow: "hidden"
4927
+ },
4928
+ children: [
4929
+ att.type === "image" && att.previewUrl ? /* @__PURE__ */ jsx5(
4930
+ "img",
4931
+ {
4932
+ src: att.previewUrl,
4933
+ alt: att.name,
4934
+ style: {
4935
+ width: "64px",
4936
+ height: "64px",
4937
+ objectFit: "cover",
4938
+ borderRadius: "12px"
4939
+ }
4940
+ }
4941
+ ) : /* @__PURE__ */ jsxs4(Fragment3, { children: [
4942
+ /* @__PURE__ */ jsx5(IconSvg, { name: "file-text-line", size: 16, color: "var(--chatllm-text-muted)" }),
4943
+ /* @__PURE__ */ jsx5("span", { style: { fontSize: "13px", color: "var(--chatllm-text)", maxWidth: "120px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: att.name })
4944
+ ] }),
4945
+ /* @__PURE__ */ jsx5(
4946
+ "button",
4947
+ {
4948
+ onClick: () => onRemoveAttachment?.(att.id),
4949
+ style: {
4950
+ position: "absolute",
4951
+ top: "2px",
4952
+ right: "2px",
4953
+ width: "20px",
4954
+ height: "20px",
4955
+ display: "flex",
4956
+ alignItems: "center",
4957
+ justifyContent: "center",
4958
+ backgroundColor: "rgba(0,0,0,0.5)",
4959
+ border: "none",
4960
+ borderRadius: "50%",
4961
+ cursor: "pointer",
4962
+ padding: 0
5084
4963
  },
5085
- action.id
5086
- ))
5087
- }
5088
- )
5089
- ] }),
5090
- /* @__PURE__ */ jsx5(
5091
- "button",
5092
- {
5093
- onClick: () => fileInputRef.current?.click(),
5094
- style: iconButtonStyle,
5095
- title: "\uD30C\uC77C \uCCA8\uBD80",
5096
- "aria-label": "\uD30C\uC77C \uCCA8\uBD80",
5097
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "attachment-line", size: 22, color: "var(--chatllm-text-muted)" })
5098
- }
5099
- ),
5100
- /* @__PURE__ */ jsxs4("div", { ref: mainMenuRef, style: { position: "relative" }, children: [
5101
- /* @__PURE__ */ jsx5(
5102
- "button",
5103
- {
5104
- onClick: () => setMainMenuOpen(!mainMenuOpen),
5105
- style: {
5106
- ...iconButtonStyle,
5107
- backgroundColor: mainMenuOpen ? "var(--chatllm-bg-hover)" : "transparent"
5108
- },
5109
- title: "\uBA54\uB274",
5110
- children: /* @__PURE__ */ jsx5(IconSvg, { name: "add-line", size: 22, color: "var(--chatllm-text-muted)" })
5111
- }
5112
- ),
5113
- mainMenuOpen && /* @__PURE__ */ jsxs4(
5114
- "div",
5115
- {
5116
- style: {
5117
- position: "absolute",
5118
- bottom: "100%",
5119
- left: 0,
5120
- marginBottom: "8px",
5121
- backgroundColor: "var(--chatllm-content-bg)",
5122
- borderRadius: "16px",
5123
- boxShadow: "var(--chatllm-shadow-sheet)",
5124
- border: "1px solid var(--chatllm-border)",
5125
- padding: "8px",
5126
- minWidth: "240px",
5127
- zIndex: 100
5128
- },
5129
- children: [
5130
- /* @__PURE__ */ jsxs4(
5131
- "button",
5132
- {
5133
- style: {
5134
- width: "100%",
5135
- display: "flex",
5136
- alignItems: "center",
5137
- gap: "12px",
5138
- padding: "12px",
5139
- backgroundColor: "transparent",
5140
- border: "none",
5141
- borderRadius: "12px",
5142
- cursor: "pointer",
5143
- textAlign: "left",
5144
- transition: "background-color 0.2s"
5145
- },
5146
- onMouseOver: (e) => {
5147
- e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5148
- },
5149
- onMouseOut: (e) => {
5150
- e.currentTarget.style.backgroundColor = "transparent";
5151
- },
5152
- onClick: () => {
5153
- fileInputRef.current?.click();
5154
- setMainMenuOpen(false);
5155
- },
5156
- children: [
5157
- /* @__PURE__ */ jsx5(IconSvg, { name: "attachment-line", size: 20, color: "var(--chatllm-text-secondary)" }),
5158
- /* @__PURE__ */ jsx5("span", { style: { fontSize: "14px", color: "var(--chatllm-text)" }, children: "\uD30C\uC77C \uB610\uB294 \uC0AC\uC9C4 \uCD94\uAC00" })
5159
- ]
5160
- }
5161
- ),
5162
- deepResearchEnabled && /* @__PURE__ */ jsxs4(
4964
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "close-line", size: 12, color: "#fff" })
4965
+ }
4966
+ )
4967
+ ]
4968
+ },
4969
+ att.id
4970
+ ))
4971
+ }
4972
+ ),
4973
+ /* @__PURE__ */ jsx5(
4974
+ "textarea",
4975
+ {
4976
+ ref: textareaRef,
4977
+ value,
4978
+ onChange: (e) => onChange(e.target.value),
4979
+ onKeyDown: handleKeyDown,
4980
+ onPaste: handlePaste,
4981
+ placeholder,
4982
+ rows: 1,
4983
+ style: {
4984
+ width: "100%",
4985
+ minHeight: "60px",
4986
+ maxHeight: "200px",
4987
+ padding: "24px 32px 8px 32px",
4988
+ backgroundColor: "transparent",
4989
+ border: "none",
4990
+ outline: "none",
4991
+ fontSize: "16px",
4992
+ lineHeight: "1.5",
4993
+ resize: "none",
4994
+ color: "var(--chatllm-text)"
4995
+ }
4996
+ }
4997
+ ),
4998
+ /* @__PURE__ */ jsxs4(
4999
+ "div",
5000
+ {
5001
+ style: {
5002
+ display: "flex",
5003
+ alignItems: "center",
5004
+ justifyContent: "space-between",
5005
+ padding: "0 24px 20px 24px"
5006
+ },
5007
+ children: [
5008
+ /* @__PURE__ */ jsxs4("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
5009
+ actions.length > 0 && /* @__PURE__ */ jsxs4("div", { ref: actionMenuRef, style: { position: "relative" }, children: [
5010
+ /* @__PURE__ */ jsx5(
5011
+ "button",
5012
+ {
5013
+ onClick: () => setActionMenuOpen(!actionMenuOpen),
5014
+ style: iconButtonStyle,
5015
+ title: "\uAE30\uB2A5 \uCD94\uAC00",
5016
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "add-line", size: 22, color: "var(--chatllm-text-muted)" })
5017
+ }
5018
+ ),
5019
+ actionMenuOpen && /* @__PURE__ */ jsx5(
5020
+ "div",
5021
+ {
5022
+ style: {
5023
+ position: "absolute",
5024
+ bottom: "100%",
5025
+ left: 0,
5026
+ marginBottom: "8px",
5027
+ backgroundColor: "var(--chatllm-content-bg)",
5028
+ borderRadius: "16px",
5029
+ boxShadow: "var(--chatllm-shadow-sheet)",
5030
+ border: "1px solid var(--chatllm-border)",
5031
+ padding: "8px",
5032
+ minWidth: "220px",
5033
+ zIndex: 100
5034
+ },
5035
+ children: actions.map((action) => /* @__PURE__ */ jsxs4(
5163
5036
  "button",
5164
5037
  {
5165
- onClick: () => {
5166
- onDeepResearch?.();
5167
- setMainMenuOpen(false);
5168
- },
5038
+ onClick: () => handleActionSelect(action),
5169
5039
  style: {
5170
5040
  width: "100%",
5171
5041
  display: "flex",
@@ -5185,60 +5055,6 @@ var ChatInput = ({
5185
5055
  onMouseOut: (e) => {
5186
5056
  e.currentTarget.style.backgroundColor = "transparent";
5187
5057
  },
5188
- children: [
5189
- /* @__PURE__ */ jsx5(
5190
- IconSvg,
5191
- {
5192
- name: "search-eye-line",
5193
- size: 20,
5194
- color: isDeepResearchMode ? "var(--chatllm-primary)" : "var(--chatllm-text-secondary)"
5195
- }
5196
- ),
5197
- /* @__PURE__ */ jsx5(
5198
- "span",
5199
- {
5200
- style: {
5201
- flex: 1,
5202
- fontSize: "14px",
5203
- color: isDeepResearchMode ? "var(--chatllm-primary)" : "var(--chatllm-text)"
5204
- },
5205
- children: "\uC5F0\uAD6C"
5206
- }
5207
- ),
5208
- isDeepResearchMode && /* @__PURE__ */ jsx5(IconSvg, { name: "check-line", size: 16, color: "var(--chatllm-primary)" })
5209
- ]
5210
- }
5211
- ),
5212
- manualSkills.map((skill) => /* @__PURE__ */ jsxs4(
5213
- "button",
5214
- {
5215
- onClick: () => {
5216
- onSkillSelect?.(skill.name);
5217
- setMainMenuOpen(false);
5218
- },
5219
- disabled: skill.disabled,
5220
- style: {
5221
- width: "100%",
5222
- display: "flex",
5223
- alignItems: "center",
5224
- gap: "12px",
5225
- padding: "12px",
5226
- backgroundColor: "transparent",
5227
- border: "none",
5228
- borderRadius: "12px",
5229
- cursor: skill.disabled ? "not-allowed" : "pointer",
5230
- textAlign: "left",
5231
- transition: "background-color 0.2s",
5232
- opacity: skill.disabled ? 0.5 : 1
5233
- },
5234
- onMouseOver: (e) => {
5235
- if (!skill.disabled) {
5236
- e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5237
- }
5238
- },
5239
- onMouseOut: (e) => {
5240
- e.currentTarget.style.backgroundColor = "transparent";
5241
- },
5242
5058
  children: [
5243
5059
  /* @__PURE__ */ jsx5(
5244
5060
  "div",
@@ -5255,7 +5071,7 @@ var ChatInput = ({
5255
5071
  children: /* @__PURE__ */ jsx5(
5256
5072
  IconSvg,
5257
5073
  {
5258
- name: mapSkillIcon(skill.icon),
5074
+ name: action.icon === "search" ? "search-line" : action.icon === "image" ? "image-line" : action.icon === "code" ? "code-s-slash-line" : "file-text-line",
5259
5075
  size: 20,
5260
5076
  color: "var(--chatllm-primary)"
5261
5077
  }
@@ -5263,94 +5079,306 @@ var ChatInput = ({
5263
5079
  }
5264
5080
  ),
5265
5081
  /* @__PURE__ */ jsxs4("div", { children: [
5266
- /* @__PURE__ */ jsx5("div", { style: { fontSize: "14px", fontWeight: 600, color: "var(--chatllm-text)" }, children: skill.label }),
5267
- /* @__PURE__ */ jsx5("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted)", maxWidth: "180px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: skill.description })
5082
+ /* @__PURE__ */ jsx5("div", { style: { fontSize: "14px", fontWeight: 600, color: "var(--chatllm-text)" }, children: action.label }),
5083
+ /* @__PURE__ */ jsx5("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted)" }, children: action.description })
5268
5084
  ] })
5269
5085
  ]
5270
5086
  },
5271
- skill.name
5087
+ action.id
5272
5088
  ))
5273
- ]
5089
+ }
5090
+ )
5091
+ ] }),
5092
+ /* @__PURE__ */ jsx5(
5093
+ "button",
5094
+ {
5095
+ onClick: () => fileInputRef.current?.click(),
5096
+ style: iconButtonStyle,
5097
+ title: "\uD30C\uC77C \uCCA8\uBD80",
5098
+ "aria-label": "\uD30C\uC77C \uCCA8\uBD80",
5099
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "attachment-line", size: 22, color: "var(--chatllm-text-muted)" })
5274
5100
  }
5275
- )
5276
- ] })
5277
- ] }),
5278
- isLoading ? /* @__PURE__ */ jsxs4(
5279
- "button",
5280
- {
5281
- onClick: onStop,
5282
- style: {
5283
- display: "flex",
5284
- alignItems: "center",
5285
- justifyContent: "center",
5286
- height: "48px",
5287
- padding: "0 32px",
5288
- backgroundColor: "var(--chatllm-bg-tertiary)",
5289
- border: "1px solid var(--chatllm-border)",
5290
- borderRadius: "12px",
5291
- cursor: "pointer",
5292
- transition: "all 0.2s",
5293
- gap: "8px"
5294
- },
5295
- children: [
5101
+ ),
5102
+ /* @__PURE__ */ jsxs4("div", { ref: mainMenuRef, style: { position: "relative" }, children: [
5296
5103
  /* @__PURE__ */ jsx5(
5297
- "span",
5104
+ "button",
5298
5105
  {
5106
+ onClick: () => setMainMenuOpen(!mainMenuOpen),
5299
5107
  style: {
5300
- fontSize: "14px",
5301
- fontWeight: 700,
5302
- color: "var(--chatllm-text-secondary)",
5303
- textTransform: "uppercase",
5304
- letterSpacing: "0.02em"
5108
+ ...iconButtonStyle,
5109
+ backgroundColor: mainMenuOpen ? "var(--chatllm-bg-hover)" : "transparent"
5305
5110
  },
5306
- children: "\uC911\uC9C0"
5111
+ title: "\uBA54\uB274",
5112
+ children: /* @__PURE__ */ jsx5(IconSvg, { name: "add-line", size: 22, color: "var(--chatllm-text-muted)" })
5307
5113
  }
5308
5114
  ),
5309
- /* @__PURE__ */ jsx5(IconSvg, { name: "stop-circle-line", size: 18, color: "var(--chatllm-text-secondary)" })
5310
- ]
5311
- }
5312
- ) : /* @__PURE__ */ jsxs4(
5313
- "button",
5314
- {
5315
- onClick: onSubmit,
5316
- disabled: !value.trim() && attachments.length === 0,
5317
- className: "chatllm-btn-primary",
5318
- style: {
5319
- display: "flex",
5320
- alignItems: "center",
5321
- justifyContent: "center",
5322
- height: "48px",
5323
- padding: "0 32px",
5324
- borderRadius: "12px",
5325
- cursor: value.trim() || attachments.length > 0 ? "pointer" : "not-allowed",
5326
- opacity: value.trim() || attachments.length > 0 ? 1 : 0.5,
5327
- gap: "8px"
5328
- },
5329
- children: [
5330
- /* @__PURE__ */ jsx5(
5331
- "span",
5115
+ mainMenuOpen && /* @__PURE__ */ jsxs4(
5116
+ "div",
5332
5117
  {
5333
5118
  style: {
5334
- fontSize: "14px",
5335
- fontWeight: 700,
5336
- letterSpacing: "0.02em"
5119
+ position: "absolute",
5120
+ bottom: "100%",
5121
+ left: 0,
5122
+ marginBottom: "8px",
5123
+ backgroundColor: "var(--chatllm-content-bg)",
5124
+ borderRadius: "16px",
5125
+ boxShadow: "var(--chatllm-shadow-sheet)",
5126
+ border: "1px solid var(--chatllm-border)",
5127
+ padding: "8px",
5128
+ minWidth: "240px",
5129
+ zIndex: 100
5337
5130
  },
5338
- children: "\uBCF4\uB0B4\uAE30"
5131
+ children: [
5132
+ /* @__PURE__ */ jsxs4(
5133
+ "button",
5134
+ {
5135
+ style: {
5136
+ width: "100%",
5137
+ display: "flex",
5138
+ alignItems: "center",
5139
+ gap: "12px",
5140
+ padding: "12px",
5141
+ backgroundColor: "transparent",
5142
+ border: "none",
5143
+ borderRadius: "12px",
5144
+ cursor: "pointer",
5145
+ textAlign: "left",
5146
+ transition: "background-color 0.2s"
5147
+ },
5148
+ onMouseOver: (e) => {
5149
+ e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5150
+ },
5151
+ onMouseOut: (e) => {
5152
+ e.currentTarget.style.backgroundColor = "transparent";
5153
+ },
5154
+ onClick: () => {
5155
+ fileInputRef.current?.click();
5156
+ setMainMenuOpen(false);
5157
+ },
5158
+ children: [
5159
+ /* @__PURE__ */ jsx5(IconSvg, { name: "attachment-line", size: 20, color: "var(--chatllm-text-secondary)" }),
5160
+ /* @__PURE__ */ jsx5("span", { style: { fontSize: "14px", color: "var(--chatllm-text)" }, children: "\uD30C\uC77C \uB610\uB294 \uC0AC\uC9C4 \uCD94\uAC00" })
5161
+ ]
5162
+ }
5163
+ ),
5164
+ deepResearchEnabled && /* @__PURE__ */ jsxs4(
5165
+ "button",
5166
+ {
5167
+ onClick: () => {
5168
+ onDeepResearch?.();
5169
+ setMainMenuOpen(false);
5170
+ },
5171
+ style: {
5172
+ width: "100%",
5173
+ display: "flex",
5174
+ alignItems: "center",
5175
+ gap: "12px",
5176
+ padding: "12px",
5177
+ backgroundColor: "transparent",
5178
+ border: "none",
5179
+ borderRadius: "12px",
5180
+ cursor: "pointer",
5181
+ textAlign: "left",
5182
+ transition: "background-color 0.2s"
5183
+ },
5184
+ onMouseOver: (e) => {
5185
+ e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5186
+ },
5187
+ onMouseOut: (e) => {
5188
+ e.currentTarget.style.backgroundColor = "transparent";
5189
+ },
5190
+ children: [
5191
+ /* @__PURE__ */ jsx5(
5192
+ IconSvg,
5193
+ {
5194
+ name: "search-eye-line",
5195
+ size: 20,
5196
+ color: isDeepResearchMode ? "var(--chatllm-primary)" : "var(--chatllm-text-secondary)"
5197
+ }
5198
+ ),
5199
+ /* @__PURE__ */ jsx5(
5200
+ "span",
5201
+ {
5202
+ style: {
5203
+ flex: 1,
5204
+ fontSize: "14px",
5205
+ color: isDeepResearchMode ? "var(--chatllm-primary)" : "var(--chatllm-text)"
5206
+ },
5207
+ children: "\uC5F0\uAD6C"
5208
+ }
5209
+ ),
5210
+ isDeepResearchMode && /* @__PURE__ */ jsx5(IconSvg, { name: "check-line", size: 16, color: "var(--chatllm-primary)" })
5211
+ ]
5212
+ }
5213
+ ),
5214
+ manualSkills.map((skill) => /* @__PURE__ */ jsxs4(
5215
+ "button",
5216
+ {
5217
+ onClick: () => {
5218
+ onSkillSelect?.(skill.name);
5219
+ setMainMenuOpen(false);
5220
+ },
5221
+ disabled: skill.disabled,
5222
+ style: {
5223
+ width: "100%",
5224
+ display: "flex",
5225
+ alignItems: "center",
5226
+ gap: "12px",
5227
+ padding: "12px",
5228
+ backgroundColor: "transparent",
5229
+ border: "none",
5230
+ borderRadius: "12px",
5231
+ cursor: skill.disabled ? "not-allowed" : "pointer",
5232
+ textAlign: "left",
5233
+ transition: "background-color 0.2s",
5234
+ opacity: skill.disabled ? 0.5 : 1
5235
+ },
5236
+ onMouseOver: (e) => {
5237
+ if (!skill.disabled) {
5238
+ e.currentTarget.style.backgroundColor = "var(--chatllm-bg-hover)";
5239
+ }
5240
+ },
5241
+ onMouseOut: (e) => {
5242
+ e.currentTarget.style.backgroundColor = "transparent";
5243
+ },
5244
+ children: [
5245
+ /* @__PURE__ */ jsx5(
5246
+ "div",
5247
+ {
5248
+ style: {
5249
+ width: "36px",
5250
+ height: "36px",
5251
+ display: "flex",
5252
+ alignItems: "center",
5253
+ justifyContent: "center",
5254
+ backgroundColor: "var(--chatllm-primary-light)",
5255
+ borderRadius: "10px"
5256
+ },
5257
+ children: /* @__PURE__ */ jsx5(
5258
+ IconSvg,
5259
+ {
5260
+ name: mapSkillIcon(skill.icon),
5261
+ size: 20,
5262
+ color: "var(--chatllm-primary)"
5263
+ }
5264
+ )
5265
+ }
5266
+ ),
5267
+ /* @__PURE__ */ jsxs4("div", { children: [
5268
+ /* @__PURE__ */ jsx5("div", { style: { fontSize: "14px", fontWeight: 600, color: "var(--chatllm-text)" }, children: skill.label }),
5269
+ /* @__PURE__ */ jsx5("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted)", maxWidth: "180px", overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, children: skill.description })
5270
+ ] })
5271
+ ]
5272
+ },
5273
+ skill.name
5274
+ ))
5275
+ ]
5339
5276
  }
5340
- ),
5341
- /* @__PURE__ */ jsx5(IconSvg, { name: "arrow-up-s-line", size: 20, color: "#ffffff" })
5342
- ]
5343
- }
5344
- )
5345
- ]
5346
- }
5347
- )
5348
- ]
5277
+ )
5278
+ ] })
5279
+ ] }),
5280
+ isLoading ? /* @__PURE__ */ jsxs4(
5281
+ "button",
5282
+ {
5283
+ onClick: onStop,
5284
+ style: {
5285
+ display: "flex",
5286
+ alignItems: "center",
5287
+ justifyContent: "center",
5288
+ height: "48px",
5289
+ padding: "0 32px",
5290
+ backgroundColor: "var(--chatllm-bg-tertiary)",
5291
+ border: "1px solid var(--chatllm-border)",
5292
+ borderRadius: "12px",
5293
+ cursor: "pointer",
5294
+ transition: "all 0.2s",
5295
+ gap: "8px"
5296
+ },
5297
+ children: [
5298
+ /* @__PURE__ */ jsx5(
5299
+ "span",
5300
+ {
5301
+ style: {
5302
+ fontSize: "14px",
5303
+ fontWeight: 700,
5304
+ color: "var(--chatllm-text-secondary)",
5305
+ textTransform: "uppercase",
5306
+ letterSpacing: "0.02em"
5307
+ },
5308
+ children: "\uC911\uC9C0"
5309
+ }
5310
+ ),
5311
+ /* @__PURE__ */ jsx5(IconSvg, { name: "stop-circle-line", size: 18, color: "var(--chatllm-text-secondary)" })
5312
+ ]
5313
+ }
5314
+ ) : /* @__PURE__ */ jsxs4(
5315
+ "button",
5316
+ {
5317
+ onClick: onSubmit,
5318
+ disabled: !value.trim() && attachments.length === 0,
5319
+ className: "chatllm-btn-primary",
5320
+ style: {
5321
+ display: "flex",
5322
+ alignItems: "center",
5323
+ justifyContent: "center",
5324
+ height: "48px",
5325
+ padding: "0 32px",
5326
+ borderRadius: "12px",
5327
+ cursor: value.trim() || attachments.length > 0 ? "pointer" : "not-allowed",
5328
+ opacity: value.trim() || attachments.length > 0 ? 1 : 0.5,
5329
+ gap: "8px"
5330
+ },
5331
+ children: [
5332
+ /* @__PURE__ */ jsx5(
5333
+ "span",
5334
+ {
5335
+ style: {
5336
+ fontSize: "14px",
5337
+ fontWeight: 700,
5338
+ letterSpacing: "0.02em"
5339
+ },
5340
+ children: "\uBCF4\uB0B4\uAE30"
5341
+ }
5342
+ ),
5343
+ /* @__PURE__ */ jsx5(IconSvg, { name: "arrow-up-s-line", size: 20, color: "#ffffff" })
5344
+ ]
5345
+ }
5346
+ )
5347
+ ]
5348
+ }
5349
+ )
5350
+ ]
5351
+ }
5352
+ )
5353
+ ]
5354
+ }
5355
+ ),
5356
+ /* @__PURE__ */ jsx5(
5357
+ "div",
5358
+ {
5359
+ style: {
5360
+ textAlign: "center",
5361
+ marginTop: "8px",
5362
+ pointerEvents: "auto"
5363
+ },
5364
+ children: /* @__PURE__ */ jsx5(
5365
+ "button",
5366
+ {
5367
+ onClick: onDisclaimerClick,
5368
+ style: {
5369
+ background: "none",
5370
+ border: "none",
5371
+ cursor: onDisclaimerClick ? "pointer" : "default",
5372
+ fontSize: "12px",
5373
+ color: "var(--chatllm-text-muted, #94a3b8)",
5374
+ padding: "2px 8px"
5375
+ },
5376
+ children: "AI\uB294 \uC2E4\uC218\uB97C \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."
5349
5377
  }
5350
5378
  )
5351
- ]
5352
- }
5353
- )
5379
+ }
5380
+ )
5381
+ ]
5354
5382
  }
5355
5383
  );
5356
5384
  };
@@ -6425,6 +6453,7 @@ var MarkdownRenderer = ({
6425
6453
  } else {
6426
6454
  processedContent = processedContent.replace(UNCLOSED_THINKING_TAG_REGEX, "");
6427
6455
  }
6456
+ processedContent = processedContent.replace(/<poll[^>]*>[\s\S]*?<\/poll>/gi, "");
6428
6457
  processedContent = processedContent.replace(UNCLOSED_POLL_TAG_REGEX, "");
6429
6458
  processedContent = processedContent.replace(UNCLOSED_SKILL_TAG_REGEX, "");
6430
6459
  const codeBlocks = [];
@@ -10110,8 +10139,133 @@ var ProjectSettingsModal = ({
10110
10139
  );
10111
10140
  };
10112
10141
 
10113
- // src/react/ChatUI.tsx
10142
+ // src/react/components/DisclaimerModal.tsx
10114
10143
  import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
10144
+ var DisclaimerModal = ({ isOpen, onClose }) => {
10145
+ if (!isOpen) return null;
10146
+ return /* @__PURE__ */ jsx20(
10147
+ "div",
10148
+ {
10149
+ className: "chatllm-disclaimer-overlay",
10150
+ style: {
10151
+ position: "fixed",
10152
+ inset: 0,
10153
+ backgroundColor: "rgba(0, 0, 0, 0.3)",
10154
+ display: "flex",
10155
+ alignItems: "center",
10156
+ justifyContent: "center",
10157
+ zIndex: 1e3
10158
+ },
10159
+ onClick: onClose,
10160
+ children: /* @__PURE__ */ jsxs19(
10161
+ "div",
10162
+ {
10163
+ className: "chatllm-disclaimer-modal",
10164
+ style: {
10165
+ backgroundColor: "var(--chatllm-bg, #ffffff)",
10166
+ borderRadius: "16px",
10167
+ width: "100%",
10168
+ maxWidth: "560px",
10169
+ maxHeight: "80vh",
10170
+ margin: "16px",
10171
+ boxShadow: "0 20px 60px rgba(0, 0, 0, 0.15)",
10172
+ display: "flex",
10173
+ flexDirection: "column",
10174
+ overflow: "hidden"
10175
+ },
10176
+ onClick: (e) => e.stopPropagation(),
10177
+ children: [
10178
+ /* @__PURE__ */ jsxs19(
10179
+ "div",
10180
+ {
10181
+ style: {
10182
+ display: "flex",
10183
+ alignItems: "center",
10184
+ justifyContent: "space-between",
10185
+ padding: "20px 24px 16px",
10186
+ borderBottom: "1px solid var(--chatllm-border, #e5e7eb)"
10187
+ },
10188
+ children: [
10189
+ /* @__PURE__ */ jsxs19("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
10190
+ /* @__PURE__ */ jsx20(IconSvg, { name: "error-warning-line", size: 20, color: "var(--chatllm-text-muted, #64748b)" }),
10191
+ /* @__PURE__ */ jsx20(
10192
+ "h2",
10193
+ {
10194
+ style: {
10195
+ margin: 0,
10196
+ fontSize: "16px",
10197
+ fontWeight: 600,
10198
+ color: "var(--chatllm-text, #1e293b)"
10199
+ },
10200
+ children: "AI \uC751\uB2F5\uC5D0 \uB300\uD55C \uC548\uB0B4"
10201
+ }
10202
+ )
10203
+ ] }),
10204
+ /* @__PURE__ */ jsx20(
10205
+ "button",
10206
+ {
10207
+ onClick: onClose,
10208
+ "aria-label": "\uB2EB\uAE30",
10209
+ style: {
10210
+ background: "none",
10211
+ border: "none",
10212
+ cursor: "pointer",
10213
+ padding: "4px",
10214
+ borderRadius: "6px",
10215
+ display: "flex",
10216
+ alignItems: "center",
10217
+ justifyContent: "center"
10218
+ },
10219
+ children: /* @__PURE__ */ jsx20(IconSvg, { name: "close-line", size: 20, color: "var(--chatllm-text-muted, #64748b)" })
10220
+ }
10221
+ )
10222
+ ]
10223
+ }
10224
+ ),
10225
+ /* @__PURE__ */ jsxs19(
10226
+ "div",
10227
+ {
10228
+ className: "chatllm-scrollbar",
10229
+ style: {
10230
+ padding: "20px 24px 24px",
10231
+ overflow: "auto",
10232
+ fontSize: "14px",
10233
+ lineHeight: 1.7,
10234
+ color: "var(--chatllm-text-secondary, #475569)"
10235
+ },
10236
+ children: [
10237
+ /* @__PURE__ */ jsx20("p", { style: { margin: "0 0 14px" }, children: "AI \uCC44\uD305\uC740 \uC0AC\uC6A9\uC790\uB97C \uB3D5\uAE30 \uC704\uD574 \uC124\uACC4\uB418\uC5C8\uC9C0\uB9CC, \uACBD\uC6B0\uC5D0 \uB530\uB77C \uBD80\uC815\uD655\uD558\uAC70\uB098 \uC624\uD574\uC758 \uC18C\uC9C0\uAC00 \uC788\uB294 \uB2F5\uBCC0\uC744 \uC81C\uACF5\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4." }),
10238
+ /* @__PURE__ */ jsx20("p", { style: { margin: "0 0 14px" }, children: "\uC774\uB7EC\uD55C \uD604\uC0C1\uC740 \uD754\uD788 '\uD658\uAC01(hallucination)'\uC774\uB77C\uACE0 \uBD88\uB9AC\uBA70, AI \uCC44\uD305\uACFC \uAC19\uC740 \uCD5C\uC2E0 \uC0DD\uC131\uD615 AI \uAE30\uC220\uC774 \uC544\uC9C1 \uAC00\uC9C0\uACE0 \uC788\uB294 \uD55C\uACC4\uC5D0\uC11C \uBE44\uB86F\uB429\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uC77C\uBD80 \uC8FC\uC81C\uC5D0 \uB300\uD574\uC11C\uB294 \uCD5C\uC2E0 \uC815\uBCF4\uAE4C\uC9C0 \uD559\uC2B5\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC744 \uC218 \uC788\uC73C\uBA70, \uC2DC\uC0AC\uC801\uC778 \uC774\uC288\uB098 \uBE60\uB974\uAC8C \uBCC0\uD654\uD558\uB294 \uB0B4\uC6A9\uC5D0 \uB300\uD574\uC11C\uB294 \uD63C\uB780\uC2A4\uB7EC\uC6B4 \uB2F5\uBCC0\uC744 \uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB610\uD55C, \uC0AC\uC2E4\uC5D0 \uADFC\uAC70\uD558\uC9C0 \uC54A\uC558\uC74C\uC5D0\uB3C4 \uBD88\uAD6C\uD558\uACE0 \uAC89\uBCF4\uAE30\uC5D0\uB294 \uADF8\uB7F4\uB4EF\uD558\uAC70\uB098 \uAD8C\uC704 \uC788\uC5B4 \uBCF4\uC774\uB294 \uC124\uBA85\uC774\uB098 \uC778\uC6A9\uC744 \uC81C\uC2DC\uD558\uB294 \uACBD\uC6B0\uB3C4 \uC788\uC2B5\uB2C8\uB2E4. \uC989, \uB2F5\uBCC0\uC774 \uB9DE\uB294 \uAC83\uCC98\uB7FC \uBCF4\uC774\uB354\uB77C\uB3C4 \uC2E4\uC81C\uB85C\uB294 \uC815\uD655\uD558\uC9C0 \uC54A\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4." }),
10239
+ /* @__PURE__ */ jsx20("p", { style: { margin: "0 0 14px" }, children: "\uB530\uB77C\uC11C AI \uCC44\uD305\uC758 \uB2F5\uBCC0\uC744 \uC808\uB300\uC801\uC778 \uC0AC\uC2E4\uB85C \uBC1B\uC544\uB4E4\uC774\uAE30\uBCF4\uB2E4\uB294 \uCC38\uACE0 \uC790\uB8CC\uB85C \uD65C\uC6A9\uD558\uC2DC\uACE0, \uC911\uC694\uD55C \uD310\uB2E8\uC774\uB098 \uC758\uC0AC\uACB0\uC815\uC5D0 \uC55E\uC11C\uC11C\uB294 \uBC18\uB4DC\uC2DC \uCD94\uAC00\uC801\uC778 \uD655\uC778\uACFC \uAC80\uD1A0\uB97C \uAD8C\uC7A5\uB4DC\uB9BD\uB2C8\uB2E4." }),
10240
+ /* @__PURE__ */ jsx20("p", { style: { margin: "0 0 14px" }, children: "\uC6F9 \uAC80\uC0C9 \uACB0\uACFC\uB97C \uD65C\uC6A9\uD558\uB294 \uACBD\uC6B0\uC5D0\uB3C4, AI \uCC44\uD305\uC774 \uC81C\uC2DC\uD55C \uCD9C\uCC98\uB97C \uC9C1\uC811 \uD655\uC778\uD574 \uBCF4\uC2DC\uB294 \uAC83\uC774 \uC88B\uC2B5\uB2C8\uB2E4. \uC6D0\uBCF8 \uC6F9\uC0AC\uC774\uD2B8\uC5D0\uB294 AI\uC758 \uC694\uC57D\uC774\uB098 \uBD84\uC11D \uACFC\uC815\uC5D0\uC11C \uC0DD\uB7B5\uB41C \uC911\uC694\uD55C \uB9E5\uB77D\uC774\uB098 \uC138\uBD80 \uC815\uBCF4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC744 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uC6D0\uBB38\uC744 \uD568\uAED8 \uC0B4\uD3B4\uBCF4\uBA74 \uC815\uBCF4\uAC00 \uACFC\uB3C4\uD558\uAC8C \uB2E8\uC21C\uD654\uB418\uAC70\uB098 \uC624\uD574\uB420 \uAC00\uB2A5\uC131\uC744 \uC904\uC774\uB294 \uB370 \uB3C4\uC6C0\uC774 \uB429\uB2C8\uB2E4." }),
10241
+ /* @__PURE__ */ jsxs19("p", { style: { margin: 0 }, children: [
10242
+ "\uB9CC\uC57D \uD2B9\uC815 \uB2F5\uBCC0\uC774 \uCDA9\uBD84\uD788 \uB3C4\uC6C0\uC774 \uB418\uC9C0 \uC54A\uC558\uAC70\uB098 \uAC1C\uC120\uC774 \uD544\uC694\uD558\uB2E4\uACE0 \uB290\uB07C\uC2E0\uB2E4\uBA74, \uC5B8\uC81C\uB4E0\uC9C0 \uC758\uACAC\uC774\uB098 \uC81C\uC548 \uC0AC\uD56D\uC744",
10243
+ " ",
10244
+ /* @__PURE__ */ jsx20(
10245
+ "a",
10246
+ {
10247
+ href: "mailto:info@gendive.ai",
10248
+ style: {
10249
+ color: "var(--chatllm-primary, #4A90E2)",
10250
+ textDecoration: "none"
10251
+ },
10252
+ children: "info@gendive.ai"
10253
+ }
10254
+ ),
10255
+ "\uB85C \uBCF4\uB0B4\uC8FC\uC138\uC694. \uB354 \uB098\uC740 \uC11C\uBE44\uC2A4\uB97C \uC81C\uACF5\uD558\uB294 \uB370 \uD070 \uB3C4\uC6C0\uC774 \uB429\uB2C8\uB2E4."
10256
+ ] })
10257
+ ]
10258
+ }
10259
+ )
10260
+ ]
10261
+ }
10262
+ )
10263
+ }
10264
+ );
10265
+ };
10266
+
10267
+ // src/react/ChatUI.tsx
10268
+ import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
10115
10269
  var DEFAULT_ACTIONS = [];
10116
10270
  var DEFAULT_TEMPLATES = [];
10117
10271
  var DEFAULT_MODELS = [
@@ -10425,6 +10579,7 @@ var ChatUIView = ({
10425
10579
  projectMemory,
10426
10580
  isSessionsLoading
10427
10581
  } = state;
10582
+ const [disclaimerOpen, setDisclaimerOpen] = React15.useState(false);
10428
10583
  const greeting = currentPersonalization.userProfile.nickname ? `\uC548\uB155\uD558\uC138\uC694, ${currentPersonalization.userProfile.nickname}\uB2D8` : "\uC548\uB155\uD558\uC138\uC694";
10429
10584
  const handleTemplateClick = (template) => {
10430
10585
  setInput(template.prompt);
@@ -10467,7 +10622,7 @@ var ChatUIView = ({
10467
10622
  return items;
10468
10623
  }, [projectMemory?.state.entries]);
10469
10624
  const themeClass = theme?.mode === "dark" ? "chatllm-dark" : "";
10470
- return /* @__PURE__ */ jsxs19(
10625
+ return /* @__PURE__ */ jsxs20(
10471
10626
  "div",
10472
10627
  {
10473
10628
  className: `chatllm-root ${themeClass} ${className}`,
@@ -10480,7 +10635,7 @@ var ChatUIView = ({
10480
10635
  position: "relative"
10481
10636
  },
10482
10637
  children: [
10483
- showSidebar && /* @__PURE__ */ jsx20(
10638
+ showSidebar && /* @__PURE__ */ jsx21(
10484
10639
  ChatSidebar,
10485
10640
  {
10486
10641
  sessions,
@@ -10512,7 +10667,7 @@ var ChatUIView = ({
10512
10667
  isLoading: isSessionsLoading
10513
10668
  }
10514
10669
  ),
10515
- /* @__PURE__ */ jsxs19(
10670
+ /* @__PURE__ */ jsxs20(
10516
10671
  "main",
10517
10672
  {
10518
10673
  style: {
@@ -10524,7 +10679,7 @@ var ChatUIView = ({
10524
10679
  minWidth: 0
10525
10680
  },
10526
10681
  children: [
10527
- /* @__PURE__ */ jsx20(
10682
+ /* @__PURE__ */ jsx21(
10528
10683
  ChatHeader,
10529
10684
  {
10530
10685
  title: currentSession?.title || "\uC0C8 \uB300\uD654",
@@ -10538,7 +10693,7 @@ var ChatUIView = ({
10538
10693
  showSettings
10539
10694
  }
10540
10695
  ),
10541
- messages.length === 0 ? /* @__PURE__ */ jsx20(
10696
+ messages.length === 0 ? /* @__PURE__ */ jsx21(
10542
10697
  EmptyState,
10543
10698
  {
10544
10699
  greeting,
@@ -10547,7 +10702,7 @@ var ChatUIView = ({
10547
10702
  actions,
10548
10703
  onActionSelect: handleActionSelect
10549
10704
  }
10550
- ) : /* @__PURE__ */ jsx20(
10705
+ ) : /* @__PURE__ */ jsx21(
10551
10706
  MessageList,
10552
10707
  {
10553
10708
  messages,
@@ -10569,7 +10724,7 @@ var ChatUIView = ({
10569
10724
  onPollSubmit: handlePollSubmit
10570
10725
  }
10571
10726
  ),
10572
- /* @__PURE__ */ jsx20(
10727
+ /* @__PURE__ */ jsx21(
10573
10728
  ChatInput,
10574
10729
  {
10575
10730
  value: input,
@@ -10592,13 +10747,14 @@ var ChatUIView = ({
10592
10747
  activeSkillExecution,
10593
10748
  attachments,
10594
10749
  onFileAttach: addAttachments,
10595
- onRemoveAttachment: removeAttachment
10750
+ onRemoveAttachment: removeAttachment,
10751
+ onDisclaimerClick: () => setDisclaimerOpen(true)
10596
10752
  }
10597
10753
  )
10598
10754
  ]
10599
10755
  }
10600
10756
  ),
10601
- showSettings && /* @__PURE__ */ jsx20(
10757
+ showSettings && /* @__PURE__ */ jsx21(
10602
10758
  SettingsModal,
10603
10759
  {
10604
10760
  isOpen: settingsOpen,
@@ -10624,7 +10780,7 @@ var ChatUIView = ({
10624
10780
  currentProjectTitle: currentProject?.title
10625
10781
  }
10626
10782
  ),
10627
- /* @__PURE__ */ jsx20(
10783
+ /* @__PURE__ */ jsx21(
10628
10784
  ProjectSettingsModal,
10629
10785
  {
10630
10786
  isOpen: projectSettingsOpen,
@@ -10635,7 +10791,8 @@ var ChatUIView = ({
10635
10791
  onDeleteFile: deleteProjectFile,
10636
10792
  onDeleteProject: deleteProject
10637
10793
  }
10638
- )
10794
+ ),
10795
+ /* @__PURE__ */ jsx21(DisclaimerModal, { isOpen: disclaimerOpen, onClose: () => setDisclaimerOpen(false) })
10639
10796
  ]
10640
10797
  }
10641
10798
  );
@@ -10736,7 +10893,7 @@ var ChatUIWithHook = ({
10736
10893
  onDeleteProjectFile
10737
10894
  };
10738
10895
  const state = useChatUI(hookOptions);
10739
- return /* @__PURE__ */ jsx20(
10896
+ return /* @__PURE__ */ jsx21(
10740
10897
  ChatUIView,
10741
10898
  {
10742
10899
  state,
@@ -10780,7 +10937,7 @@ var ChatUI = (props) => {
10780
10937
  onApiKeyChange,
10781
10938
  deepResearch
10782
10939
  } = props;
10783
- return /* @__PURE__ */ jsx20(
10940
+ return /* @__PURE__ */ jsx21(
10784
10941
  ChatUIView,
10785
10942
  {
10786
10943
  state: props.chatState,
@@ -10803,7 +10960,7 @@ var ChatUI = (props) => {
10803
10960
  }
10804
10961
  );
10805
10962
  }
10806
- return /* @__PURE__ */ jsx20(ChatUIWithHook, { ...props });
10963
+ return /* @__PURE__ */ jsx21(ChatUIWithHook, { ...props });
10807
10964
  };
10808
10965
 
10809
10966
  // src/react/hooks/useDeepResearch.ts
@@ -11122,7 +11279,7 @@ var useDeepResearch = (options) => {
11122
11279
 
11123
11280
  // src/react/components/MemoryPanel.tsx
11124
11281
  import { useState as useState19 } from "react";
11125
- import { jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
11282
+ import { jsx as jsx22, jsxs as jsxs21 } from "react/jsx-runtime";
11126
11283
  var categoryLabels = {
11127
11284
  fact: "\uC0AC\uC6A9\uC790 \uC815\uBCF4",
11128
11285
  skill: "\uC804\uBB38 \uBD84\uC57C/\uAE30\uC220",
@@ -11154,7 +11311,7 @@ var MemoryPanel = ({
11154
11311
  });
11155
11312
  };
11156
11313
  if (!isOpen) {
11157
- return /* @__PURE__ */ jsx21(
11314
+ return /* @__PURE__ */ jsx22(
11158
11315
  "button",
11159
11316
  {
11160
11317
  onClick: onToggle,
@@ -11174,11 +11331,11 @@ var MemoryPanel = ({
11174
11331
  justifyContent: "center",
11175
11332
  zIndex: 100
11176
11333
  },
11177
- children: /* @__PURE__ */ jsx21(IconSvg, { name: "robot-line", size: 24, color: "#ffffff" })
11334
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "robot-line", size: 24, color: "#ffffff" })
11178
11335
  }
11179
11336
  );
11180
11337
  }
11181
- return /* @__PURE__ */ jsxs20(
11338
+ return /* @__PURE__ */ jsxs21(
11182
11339
  "div",
11183
11340
  {
11184
11341
  className: "chatllm-memory-panel",
@@ -11198,7 +11355,7 @@ var MemoryPanel = ({
11198
11355
  zIndex: 100
11199
11356
  },
11200
11357
  children: [
11201
- /* @__PURE__ */ jsxs20(
11358
+ /* @__PURE__ */ jsxs21(
11202
11359
  "div",
11203
11360
  {
11204
11361
  style: {
@@ -11209,8 +11366,8 @@ var MemoryPanel = ({
11209
11366
  borderBottom: "1px solid var(--chatllm-border, #e5e7eb)"
11210
11367
  },
11211
11368
  children: [
11212
- /* @__PURE__ */ jsxs20("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
11213
- /* @__PURE__ */ jsx21(
11369
+ /* @__PURE__ */ jsxs21("div", { style: { display: "flex", alignItems: "center", gap: "10px" }, children: [
11370
+ /* @__PURE__ */ jsx22(
11214
11371
  "div",
11215
11372
  {
11216
11373
  style: {
@@ -11222,19 +11379,19 @@ var MemoryPanel = ({
11222
11379
  alignItems: "center",
11223
11380
  justifyContent: "center"
11224
11381
  },
11225
- children: /* @__PURE__ */ jsx21(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3b82f6)" })
11382
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "robot-line", size: 18, color: "var(--chatllm-primary, #3b82f6)" })
11226
11383
  }
11227
11384
  ),
11228
- /* @__PURE__ */ jsxs20("div", { children: [
11229
- /* @__PURE__ */ jsx21("div", { style: { fontSize: "15px", fontWeight: 600, color: "var(--chatllm-text, #1f2937)" }, children: "AI \uBA54\uBAA8\uB9AC" }),
11230
- /* @__PURE__ */ jsxs20("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: [
11385
+ /* @__PURE__ */ jsxs21("div", { children: [
11386
+ /* @__PURE__ */ jsx22("div", { style: { fontSize: "15px", fontWeight: 600, color: "var(--chatllm-text, #1f2937)" }, children: "AI \uBA54\uBAA8\uB9AC" }),
11387
+ /* @__PURE__ */ jsxs21("div", { style: { fontSize: "12px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: [
11231
11388
  items.length,
11232
11389
  "\uAC1C \uD56D\uBAA9"
11233
11390
  ] })
11234
11391
  ] })
11235
11392
  ] }),
11236
- /* @__PURE__ */ jsxs20("div", { style: { display: "flex", gap: "4px" }, children: [
11237
- onClearAll && items.length > 0 && /* @__PURE__ */ jsx21(
11393
+ /* @__PURE__ */ jsxs21("div", { style: { display: "flex", gap: "4px" }, children: [
11394
+ onClearAll && items.length > 0 && /* @__PURE__ */ jsx22(
11238
11395
  "button",
11239
11396
  {
11240
11397
  onClick: onClearAll,
@@ -11246,10 +11403,10 @@ var MemoryPanel = ({
11246
11403
  cursor: "pointer"
11247
11404
  },
11248
11405
  title: "\uC804\uCCB4 \uC0AD\uC81C",
11249
- children: /* @__PURE__ */ jsx21(IconSvg, { name: "delete-bin-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
11406
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "delete-bin-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
11250
11407
  }
11251
11408
  ),
11252
- /* @__PURE__ */ jsx21(
11409
+ /* @__PURE__ */ jsx22(
11253
11410
  "button",
11254
11411
  {
11255
11412
  onClick: onToggle,
@@ -11260,14 +11417,14 @@ var MemoryPanel = ({
11260
11417
  borderRadius: "8px",
11261
11418
  cursor: "pointer"
11262
11419
  },
11263
- children: /* @__PURE__ */ jsx21(IconSvg, { name: "close-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
11420
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "close-line", size: 18, color: "var(--chatllm-text-muted, #9ca3af)" })
11264
11421
  }
11265
11422
  )
11266
11423
  ] })
11267
11424
  ]
11268
11425
  }
11269
11426
  ),
11270
- /* @__PURE__ */ jsx21(
11427
+ /* @__PURE__ */ jsx22(
11271
11428
  "div",
11272
11429
  {
11273
11430
  style: {
@@ -11277,7 +11434,7 @@ var MemoryPanel = ({
11277
11434
  borderBottom: "1px solid var(--chatllm-border-light, #f3f4f6)",
11278
11435
  overflowX: "auto"
11279
11436
  },
11280
- children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ jsx21(
11437
+ children: ["all", "fact", "skill", "preference"].map((tab) => /* @__PURE__ */ jsx22(
11281
11438
  "button",
11282
11439
  {
11283
11440
  onClick: () => setActiveTab(tab),
@@ -11298,8 +11455,8 @@ var MemoryPanel = ({
11298
11455
  ))
11299
11456
  }
11300
11457
  ),
11301
- /* @__PURE__ */ jsxs20("div", { style: { flex: 1, overflow: "auto", padding: "12px" }, children: [
11302
- contextSummary && activeTab === "all" && /* @__PURE__ */ jsxs20(
11458
+ /* @__PURE__ */ jsxs21("div", { style: { flex: 1, overflow: "auto", padding: "12px" }, children: [
11459
+ contextSummary && activeTab === "all" && /* @__PURE__ */ jsxs21(
11303
11460
  "div",
11304
11461
  {
11305
11462
  style: {
@@ -11310,7 +11467,7 @@ var MemoryPanel = ({
11310
11467
  borderLeft: "3px solid var(--chatllm-primary, #3b82f6)"
11311
11468
  },
11312
11469
  children: [
11313
- /* @__PURE__ */ jsxs20(
11470
+ /* @__PURE__ */ jsxs21(
11314
11471
  "div",
11315
11472
  {
11316
11473
  style: {
@@ -11320,12 +11477,12 @@ var MemoryPanel = ({
11320
11477
  marginBottom: "8px"
11321
11478
  },
11322
11479
  children: [
11323
- /* @__PURE__ */ jsx21(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3b82f6)" }),
11324
- /* @__PURE__ */ jsx21("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3b82f6)" }, children: "\uB300\uD654 \uC694\uC57D" })
11480
+ /* @__PURE__ */ jsx22(IconSvg, { name: "file-text-line", size: 14, color: "var(--chatllm-primary, #3b82f6)" }),
11481
+ /* @__PURE__ */ jsx22("span", { style: { fontSize: "12px", fontWeight: 500, color: "var(--chatllm-primary, #3b82f6)" }, children: "\uB300\uD654 \uC694\uC57D" })
11325
11482
  ]
11326
11483
  }
11327
11484
  ),
11328
- /* @__PURE__ */ jsx21(
11485
+ /* @__PURE__ */ jsx22(
11329
11486
  "p",
11330
11487
  {
11331
11488
  style: {
@@ -11340,7 +11497,7 @@ var MemoryPanel = ({
11340
11497
  ]
11341
11498
  }
11342
11499
  ),
11343
- filteredItems.length === 0 ? /* @__PURE__ */ jsxs20(
11500
+ filteredItems.length === 0 ? /* @__PURE__ */ jsxs21(
11344
11501
  "div",
11345
11502
  {
11346
11503
  style: {
@@ -11349,11 +11506,11 @@ var MemoryPanel = ({
11349
11506
  color: "var(--chatllm-text-muted, #9ca3af)"
11350
11507
  },
11351
11508
  children: [
11352
- /* @__PURE__ */ jsx21(IconSvg, { name: "robot-line", size: 32, color: "var(--chatllm-text-muted, #d1d5db)" }),
11353
- /* @__PURE__ */ jsx21("p", { style: { fontSize: "14px", marginTop: "12px" }, children: "\uC800\uC7A5\uB41C \uBA54\uBAA8\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" })
11509
+ /* @__PURE__ */ jsx22(IconSvg, { name: "robot-line", size: 32, color: "var(--chatllm-text-muted, #d1d5db)" }),
11510
+ /* @__PURE__ */ jsx22("p", { style: { fontSize: "14px", marginTop: "12px" }, children: "\uC800\uC7A5\uB41C \uBA54\uBAA8\uB9AC\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4" })
11354
11511
  ]
11355
11512
  }
11356
- ) : /* @__PURE__ */ jsx21("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: filteredItems.map((item) => /* @__PURE__ */ jsxs20(
11513
+ ) : /* @__PURE__ */ jsx22("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: filteredItems.map((item) => /* @__PURE__ */ jsxs21(
11357
11514
  "div",
11358
11515
  {
11359
11516
  style: {
@@ -11366,10 +11523,10 @@ var MemoryPanel = ({
11366
11523
  },
11367
11524
  onClick: () => setExpandedId(expandedId === item.id ? null : item.id),
11368
11525
  children: [
11369
- /* @__PURE__ */ jsxs20("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between" }, children: [
11370
- /* @__PURE__ */ jsxs20("div", { style: { flex: 1, minWidth: 0 }, children: [
11371
- /* @__PURE__ */ jsxs20("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "4px" }, children: [
11372
- item.category && /* @__PURE__ */ jsx21(
11526
+ /* @__PURE__ */ jsxs21("div", { style: { display: "flex", alignItems: "flex-start", justifyContent: "space-between" }, children: [
11527
+ /* @__PURE__ */ jsxs21("div", { style: { flex: 1, minWidth: 0 }, children: [
11528
+ /* @__PURE__ */ jsxs21("div", { style: { display: "flex", alignItems: "center", gap: "8px", marginBottom: "4px" }, children: [
11529
+ item.category && /* @__PURE__ */ jsx22(
11373
11530
  "span",
11374
11531
  {
11375
11532
  style: {
@@ -11383,9 +11540,9 @@ var MemoryPanel = ({
11383
11540
  children: categoryLabels[item.category]
11384
11541
  }
11385
11542
  ),
11386
- /* @__PURE__ */ jsx21("span", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: formatDate(item.timestamp) })
11543
+ /* @__PURE__ */ jsx22("span", { style: { fontSize: "11px", color: "var(--chatllm-text-muted, #9ca3af)" }, children: formatDate(item.timestamp) })
11387
11544
  ] }),
11388
- /* @__PURE__ */ jsx21(
11545
+ /* @__PURE__ */ jsx22(
11389
11546
  "div",
11390
11547
  {
11391
11548
  style: {
@@ -11397,8 +11554,8 @@ var MemoryPanel = ({
11397
11554
  }
11398
11555
  )
11399
11556
  ] }),
11400
- /* @__PURE__ */ jsxs20("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
11401
- onDelete && /* @__PURE__ */ jsx21(
11557
+ /* @__PURE__ */ jsxs21("div", { style: { display: "flex", alignItems: "center", gap: "4px" }, children: [
11558
+ onDelete && /* @__PURE__ */ jsx22(
11402
11559
  "button",
11403
11560
  {
11404
11561
  onClick: (e) => {
@@ -11413,10 +11570,10 @@ var MemoryPanel = ({
11413
11570
  cursor: "pointer",
11414
11571
  opacity: 0.5
11415
11572
  },
11416
- children: /* @__PURE__ */ jsx21(IconSvg, { name: "delete-bin-line", size: 14, color: "var(--chatllm-text-muted, #9ca3af)" })
11573
+ children: /* @__PURE__ */ jsx22(IconSvg, { name: "delete-bin-line", size: 14, color: "var(--chatllm-text-muted, #9ca3af)" })
11417
11574
  }
11418
11575
  ),
11419
- /* @__PURE__ */ jsx21(
11576
+ /* @__PURE__ */ jsx22(
11420
11577
  IconSvg,
11421
11578
  {
11422
11579
  name: expandedId === item.id ? "arrow-up-s-line" : "arrow-down-s-line",
@@ -11426,7 +11583,7 @@ var MemoryPanel = ({
11426
11583
  )
11427
11584
  ] })
11428
11585
  ] }),
11429
- expandedId === item.id && /* @__PURE__ */ jsx21(
11586
+ expandedId === item.id && /* @__PURE__ */ jsx22(
11430
11587
  "div",
11431
11588
  {
11432
11589
  style: {
@@ -11434,7 +11591,7 @@ var MemoryPanel = ({
11434
11591
  paddingTop: "12px",
11435
11592
  borderTop: "1px solid var(--chatllm-border-light, #f3f4f6)"
11436
11593
  },
11437
- children: /* @__PURE__ */ jsx21(
11594
+ children: /* @__PURE__ */ jsx22(
11438
11595
  "p",
11439
11596
  {
11440
11597
  style: {