@gendive/chatllm 0.17.28 → 0.17.29

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.
@@ -1465,6 +1465,11 @@ interface UseChatUIOptions {
1465
1465
  * @Todo vibecode - AI가 자동으로 선택지를 제공하도록 시스템 프롬프트에 가이드 추가
1466
1466
  */
1467
1467
  enablePoll?: boolean;
1468
+ /**
1469
+ * @description AI 자동 실행형 체크리스트 기능 활성화 (기본: true)
1470
+ * @Todo vibecode - 복합 작업 시 AI가 <checklist> 태그로 단계별 실행 계획 제시
1471
+ */
1472
+ enableChecklist?: boolean;
1468
1473
  /**
1469
1474
  * @description 커스텀 스킬 등록
1470
1475
  * @Todo vibecode - AI가 자동/수동으로 활용하는 스킬 시스템
@@ -1465,6 +1465,11 @@ interface UseChatUIOptions {
1465
1465
  * @Todo vibecode - AI가 자동으로 선택지를 제공하도록 시스템 프롬프트에 가이드 추가
1466
1466
  */
1467
1467
  enablePoll?: boolean;
1468
+ /**
1469
+ * @description AI 자동 실행형 체크리스트 기능 활성화 (기본: true)
1470
+ * @Todo vibecode - 복합 작업 시 AI가 <checklist> 태그로 단계별 실행 계획 제시
1471
+ */
1472
+ enableChecklist?: boolean;
1468
1473
  /**
1469
1474
  * @description 커스텀 스킬 등록
1470
1475
  * @Todo vibecode - AI가 자동/수동으로 활용하는 스킬 시스템
@@ -1753,6 +1753,8 @@ var useChatUI = (options) => {
1753
1753
  deepResearch,
1754
1754
  // Poll options
1755
1755
  enablePoll = true,
1756
+ // Checklist options
1757
+ enableChecklist = true,
1756
1758
  // Skills options
1757
1759
  skills,
1758
1760
  // Tool options
@@ -2118,9 +2120,40 @@ ${projectMemoryContext}`);
2118
2120
  - \uAC01 \uC9C8\uBB38\uC740 \uC11C\uB85C \uB2E4\uB978 \uB0B4\uC6A9
2119
2121
  - \uC635\uC158\uB9C8\uB2E4 \uC9E7\uC740 \uC124\uBA85 \uD3EC\uD568
2120
2122
  - \uC0AC\uC6A9\uC790\uAC00 \uBAA8\uB450 \uC120\uD0DD \uD6C4 \uC9C4\uD589`);
2123
+ }
2124
+ if (enableChecklist) {
2125
+ parts.push("");
2126
+ parts.push(`## \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uC790\uB3D9 \uC2E4\uD589 \uAE30\uB2A5
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.
2130
+
2131
+ **\uD615\uC2DD:**
2132
+ <checklist>
2133
+ <step>1\uB2E8\uACC4 \uC81C\uBAA9</step>
2134
+ <step>2\uB2E8\uACC4 \uC81C\uBAA9</step>
2135
+ <step>3\uB2E8\uACC4 \uC81C\uBAA9</step>
2136
+ </checklist>
2137
+
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.
2140
+
2141
+ <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>
2146
+ </checklist>
2147
+
2148
+ **\uADDC\uCE59:**
2149
+ - 2~8\uB2E8\uACC4\uAC00 \uC801\uC808 (\uB108\uBB34 \uC801\uAC70\uB098 \uB9CE\uC73C\uBA74 \uC548 \uB428)
2150
+ - \uAC01 \uB2E8\uACC4\uB294 \uAD6C\uCCB4\uC801\uC774\uACE0 \uC2E4\uD589 \uAC00\uB2A5\uD55C \uC791\uC5C5
2151
+ - \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`);
2121
2154
  }
2122
2155
  return parts.length > 0 ? parts.join("\n") : "";
2123
- }, [personalization, globalMemory, useGlobalMemoryEnabled, enablePoll, buildSkillsPrompt, enableProjects, projectHook.currentProject, projectMemory]);
2156
+ }, [personalization, globalMemory, useGlobalMemoryEnabled, enablePoll, enableChecklist, buildSkillsPrompt, enableProjects, projectHook.currentProject, projectMemory]);
2124
2157
  const compressContext = (0, import_react5.useCallback)(async (messagesToCompress, model) => {
2125
2158
  const conversationText = messagesToCompress.map((m) => `${m.role === "user" ? "\uC0AC\uC6A9\uC790" : "AI"}: ${m.content}`).join("\n\n");
2126
2159
  const summaryPrompt = `\uB2E4\uC74C \uB300\uD654 \uB0B4\uC6A9\uC744 \uD575\uC2EC \uC815\uBCF4\uB9CC \uC720\uC9C0\uD558\uBA74\uC11C \uAC04\uACB0\uD558\uAC8C \uC694\uC57D\uD574\uC8FC\uC138\uC694.