@gendive/chatllm 0.17.29 → 0.17.30

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.
@@ -1003,6 +1003,11 @@ interface MessageListProps {
1003
1003
  * @Todo vibecode - pending 항목 스킵
1004
1004
  */
1005
1005
  onChecklistSkip?: (messageId: string, stepIndex: number) => void;
1006
+ /**
1007
+ * @description 현재 실행 중인 스킬 정보 (도구 실행 로딩 표시용)
1008
+ * @Todo vibecode - 메시지 리스트 하단에 도구 실행 상태 인디케이터
1009
+ */
1010
+ activeSkillExecution?: SkillExecution | null;
1006
1011
  }
1007
1012
  interface MessageBubbleProps {
1008
1013
  message: ChatMessage;
@@ -1003,6 +1003,11 @@ interface MessageListProps {
1003
1003
  * @Todo vibecode - pending 항목 스킵
1004
1004
  */
1005
1005
  onChecklistSkip?: (messageId: string, stepIndex: number) => void;
1006
+ /**
1007
+ * @description 현재 실행 중인 스킬 정보 (도구 실행 로딩 표시용)
1008
+ * @Todo vibecode - 메시지 리스트 하단에 도구 실행 상태 인디케이터
1009
+ */
1010
+ activeSkillExecution?: SkillExecution | null;
1006
1011
  }
1007
1012
  interface MessageBubbleProps {
1008
1013
  message: ChatMessage;
@@ -2125,32 +2125,52 @@ ${projectMemoryContext}`);
2125
2125
  parts.push("");
2126
2126
  parts.push(`## \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uC790\uB3D9 \uC2E4\uD589 \uAE30\uB2A5
2127
2127
 
2128
- \uBCF5\uD569 \uC791\uC5C5(\uC870\uC0AC, \uBE44\uAD50 \uBD84\uC11D, \uB2E4\uB2E8\uACC4 \uC791\uC5C5)\uC744 \uC694\uCCAD\uBC1B\uC73C\uBA74 <checklist> \uD0DC\uADF8\uB85C \uC2E4\uD589 \uACC4\uD68D\uC744 \uC791\uC131\uD558\uC138\uC694.
2129
- \uC2DC\uC2A4\uD15C\uC774 \uAC01 \uB2E8\uACC4\uB97C \uC790\uB3D9\uC73C\uB85C \uD558\uB098\uC529 \uC2E4\uD589\uD569\uB2C8\uB2E4.
2128
+ **\uC911\uC694: \uC544\uB798 \uC870\uAC74\uC5D0 \uD574\uB2F9\uD558\uBA74 \uBC18\uB4DC\uC2DC <checklist> \uD0DC\uADF8\uB97C \uC0AC\uC6A9\uD558\uC138\uC694.**
2129
+
2130
+ \uB2E4\uC74C \uC694\uCCAD\uC5D0\uB294 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8\uB97C \uC0AC\uC6A9\uD558\uC138\uC694:
2131
+ - \uC5EC\uB7EC \uB300\uC0C1\uC744 \uAC80\uC0C9/\uC870\uC0AC\uD558\uB294 \uC694\uCCAD (\uC608: "A\uC640 B \uAC80\uC0C9\uD574\uC918", "XX \uAD00\uB828 \uC11C\uBE44\uC2A4 \uCC3E\uC544\uC918")
2132
+ - \uBE44\uAD50 \uBD84\uC11D \uC694\uCCAD (\uC608: "A\uC0AC\uC640 B\uC0AC \uBE44\uAD50\uD574\uC918")
2133
+ - \uBCF4\uACE0\uC11C/\uB9AC\uD3EC\uD2B8 \uC791\uC131 \uC694\uCCAD
2134
+ - 3\uB2E8\uACC4 \uC774\uC0C1\uC758 \uBCF5\uD569 \uC791\uC5C5
2135
+
2136
+ \uC2DC\uC2A4\uD15C\uC774 \uAC01 \uB2E8\uACC4\uB97C \uC790\uB3D9\uC73C\uB85C \uD558\uB098\uC529 \uC2E4\uD589\uD569\uB2C8\uB2E4. \uB2F9\uC2E0\uC740 \uACC4\uD68D\uB9CC \uC138\uC6B0\uBA74 \uB429\uB2C8\uB2E4.
2130
2137
 
2131
2138
  **\uD615\uC2DD:**
2139
+ \uC9E7\uC740 \uC548\uB0B4 \uBA54\uC2DC\uC9C0
2140
+
2132
2141
  <checklist>
2133
2142
  <step>1\uB2E8\uACC4 \uC81C\uBAA9</step>
2134
2143
  <step>2\uB2E8\uACC4 \uC81C\uBAA9</step>
2135
2144
  <step>3\uB2E8\uACC4 \uC81C\uBAA9</step>
2136
2145
  </checklist>
2137
2146
 
2138
- **\uC608\uC2DC - "A\uC0AC\uC640 B\uC0AC \uBE44\uAD50 \uBD84\uC11D\uD574\uC918":**
2139
- \uB124, \uBE44\uAD50 \uBD84\uC11D\uC744 \uC9C4\uD589\uD558\uACA0\uC2B5\uB2C8\uB2E4.
2147
+ **\uC608\uC2DC 1 - "\uB370\uBE0C\uB2E4\uC774\uBE0C\uC640 \uC820\uB2E4\uC774\uBE0C \uAC80\uC0C9\uD558\uACE0 \uBCF4\uACE0\uC11C \uC791\uC131\uD574\uC918":**
2148
+ \uB124, \uC870\uC0AC\uB97C \uC9C4\uD589\uD558\uACA0\uC2B5\uB2C8\uB2E4.
2149
+
2150
+ <checklist>
2151
+ <step>\uB370\uBE0C\uB2E4\uC774\uBE0C \uC11C\uBE44\uC2A4 \uC815\uBCF4 \uC870\uC0AC</step>
2152
+ <step>\uC820\uB2E4\uC774\uBE0C \uC11C\uBE44\uC2A4 \uC815\uBCF4 \uC870\uC0AC</step>
2153
+ <step>\uC720\uC0AC \uC11C\uBE44\uC2A4 \uC870\uC0AC</step>
2154
+ <step>\uBE44\uAD50 \uBD84\uC11D\uD45C \uC791\uC131</step>
2155
+ <step>\uC885\uD569 \uBCF4\uACE0\uC11C \uC791\uC131</step>
2156
+ </checklist>
2157
+
2158
+ **\uC608\uC2DC 2 - "\uC6B0\uB9AC \uC11C\uBE44\uC2A4 \uB9C8\uCF00\uD305 \uC804\uB7B5 \uC138\uC6CC\uC918":**
2159
+ \uB9C8\uCF00\uD305 \uC804\uB7B5\uC744 \uB2E8\uACC4\uBCC4\uB85C \uC218\uB9BD\uD558\uACA0\uC2B5\uB2C8\uB2E4.
2140
2160
 
2141
2161
  <checklist>
2142
- <step>A\uC0AC \uC815\uBCF4 \uC870\uC0AC</step>
2143
- <step>B\uC0AC \uC815\uBCF4 \uC870\uC0AC</step>
2144
- <step>\uB450 \uD68C\uC0AC \uBE44\uAD50 \uBD84\uC11D\uD45C \uC791\uC131</step>
2145
- <step>\uC885\uD569 \uACB0\uB860 \uBC0F \uCD94\uCC9C</step>
2162
+ <step>\uD604\uC7AC \uC11C\uBE44\uC2A4 \uBD84\uC11D</step>
2163
+ <step>\uD0C0\uAC9F \uACE0\uAC1D \uC815\uC758</step>
2164
+ <step>\uACBD\uC7C1\uC0AC \uBCA4\uCE58\uB9C8\uD0B9</step>
2165
+ <step>\uB9C8\uCF00\uD305 \uC804\uB7B5 \uC218\uB9BD</step>
2146
2166
  </checklist>
2147
2167
 
2148
2168
  **\uADDC\uCE59:**
2149
- - 2~8\uB2E8\uACC4\uAC00 \uC801\uC808 (\uB108\uBB34 \uC801\uAC70\uB098 \uB9CE\uC73C\uBA74 \uC548 \uB428)
2169
+ - 2~8\uB2E8\uACC4\uAC00 \uC801\uC808
2150
2170
  - \uAC01 \uB2E8\uACC4\uB294 \uAD6C\uCCB4\uC801\uC774\uACE0 \uC2E4\uD589 \uAC00\uB2A5\uD55C \uC791\uC5C5
2151
2171
  - \uB2E8\uC21C \uC9C8\uBB38\uC774\uB098 \uD55C \uBC88\uC5D0 \uB2F5\uD560 \uC218 \uC788\uB294 \uC694\uCCAD\uC5D0\uB294 \uC0AC\uC6A9 \uAE08\uC9C0
2152
- - <checklist> \uD0DC\uADF8 \uC55E\uC5D0 \uC9E7\uC740 \uC548\uB0B4 \uBA54\uC2DC\uC9C0\uB97C \uD3EC\uD568
2153
- - \uAC80\uC0C9/\uC870\uC0AC, \uBE44\uAD50 \uBD84\uC11D, \uBCF4\uACE0\uC11C \uC791\uC131, \uB2E4\uB2E8\uACC4 \uC791\uC5C5\uC5D0 \uC801\uADF9 \uC0AC\uC6A9`);
2172
+ - <checklist> \uD0DC\uADF8 \uC55E\uC5D0 \uBC18\uB4DC\uC2DC \uC9E7\uC740 \uC548\uB0B4 \uBA54\uC2DC\uC9C0\uB97C \uD3EC\uD568\uD558\uC138\uC694
2173
+ - \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uD0DC\uADF8 \uB4A4\uC5D0 \uCD94\uAC00 \uD14D\uC2A4\uD2B8\uB97C \uC791\uC131\uD558\uC9C0 \uB9C8\uC138\uC694`);
2154
2174
  }
2155
2175
  return parts.length > 0 ? parts.join("\n") : "";
2156
2176
  }, [personalization, globalMemory, useGlobalMemoryEnabled, enablePoll, enableChecklist, buildSkillsPrompt, enableProjects, projectHook.currentProject, projectMemory]);
@@ -9730,7 +9750,8 @@ var MessageList = ({
9730
9750
  onPollSubmit,
9731
9751
  onChecklistAbort,
9732
9752
  onChecklistRetry,
9733
- onChecklistSkip
9753
+ onChecklistSkip,
9754
+ activeSkillExecution
9734
9755
  }) => {
9735
9756
  const messagesEndRef = (0, import_react18.useRef)(null);
9736
9757
  const containerRef = (0, import_react18.useRef)(null);
@@ -9852,6 +9873,61 @@ var MessageList = ({
9852
9873
  message.id
9853
9874
  );
9854
9875
  }),
9876
+ activeSkillExecution && activeSkillExecution.status === "executing" && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
9877
+ "div",
9878
+ {
9879
+ style: {
9880
+ display: "flex",
9881
+ alignItems: "center",
9882
+ gap: "10px",
9883
+ padding: "12px 20px",
9884
+ margin: "8px auto",
9885
+ maxWidth: "680px",
9886
+ width: "100%"
9887
+ },
9888
+ children: [
9889
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
9890
+ "div",
9891
+ {
9892
+ style: {
9893
+ width: "20px",
9894
+ height: "20px",
9895
+ borderRadius: "50%",
9896
+ border: "2px solid var(--chatllm-primary, #3584FA)",
9897
+ borderTopColor: "transparent",
9898
+ animation: "chatllm-spin 0.8s linear infinite",
9899
+ flexShrink: 0
9900
+ }
9901
+ }
9902
+ ),
9903
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
9904
+ "span",
9905
+ {
9906
+ style: {
9907
+ fontSize: "13px",
9908
+ fontWeight: 500,
9909
+ color: "var(--chatllm-text-muted, #94a3b8)"
9910
+ },
9911
+ children: activeSkillExecution.progress?.phaseLabel || `${activeSkillExecution.skillName} \uC2E4\uD589 \uC911...`
9912
+ }
9913
+ ),
9914
+ activeSkillExecution.progress?.percentage != null && /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
9915
+ "span",
9916
+ {
9917
+ style: {
9918
+ fontSize: "12px",
9919
+ color: "var(--chatllm-primary, #3584FA)",
9920
+ fontWeight: 600
9921
+ },
9922
+ children: [
9923
+ activeSkillExecution.progress.percentage,
9924
+ "%"
9925
+ ]
9926
+ }
9927
+ )
9928
+ ]
9929
+ }
9930
+ ),
9855
9931
  /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { ref: messagesEndRef })
9856
9932
  ]
9857
9933
  }
@@ -12011,7 +12087,8 @@ var ChatUIView = ({
12011
12087
  onPollSubmit: handlePollSubmit,
12012
12088
  onChecklistAbort: handleChecklistAbort,
12013
12089
  onChecklistRetry: handleChecklistRetry,
12014
- onChecklistSkip: handleChecklistSkip
12090
+ onChecklistSkip: handleChecklistSkip,
12091
+ activeSkillExecution
12015
12092
  }
12016
12093
  ),
12017
12094
  /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(