@gendive/chatllm 0.17.31 → 0.17.33
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.js +120 -74
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.mjs +120 -74
- package/dist/react/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react/index.js
CHANGED
|
@@ -1031,13 +1031,25 @@ ${config.description}`;
|
|
|
1031
1031
|
|
|
1032
1032
|
${skillDescriptions}
|
|
1033
1033
|
|
|
1034
|
-
**\uADDC\uCE59:**
|
|
1034
|
+
**\uD544\uC218 \uADDC\uCE59:**
|
|
1035
1035
|
- \uC774\uBBF8\uC9C0 \uC0DD\uC131/\uADF8\uB9BC/\uC77C\uB7EC\uC2A4\uD2B8 \uC694\uCCAD \u2192 \uBC18\uB4DC\uC2DC generate_image \uB3C4\uAD6C \uD638\uCD9C
|
|
1036
1036
|
- \uCD5C\uC2E0 \uC815\uBCF4/\uAC80\uC0C9/\uB274\uC2A4 \uC694\uCCAD \u2192 \uBC18\uB4DC\uC2DC web_search \uB3C4\uAD6C \uD638\uCD9C
|
|
1037
|
-
- \uB3C4\uAD6C \uD638\uCD9C \uC2DC \uC9E7\uC740 \uC548\uB0B4 \uBA54\uC2DC\uC9C0\uB97C \uBA3C\uC800 \uC791\uC131\uD558\uACE0, \uADF8 \uB4A4\uC5D0 skill_use \uD0DC\uADF8\uB97C \uD3EC\uD568\uD558\uC138\uC694
|
|
1038
1037
|
- \uD55C \uBC88\uC5D0 \uD558\uB098\uC758 \uB3C4\uAD6C\uB9CC \uD638\uCD9C\uD558\uC138\uC694
|
|
1039
|
-
- \uB3C4\uAD6C
|
|
1040
|
-
|
|
1038
|
+
- \uB3C4\uAD6C\uAC00 \uC2E4\uD589\uB418\uBA74 \uACB0\uACFC\uAC00 \uC790\uB3D9\uC73C\uB85C \uC804\uB2EC\uB429\uB2C8\uB2E4
|
|
1039
|
+
|
|
1040
|
+
**\u26A0\uFE0F \uC808\uB300 \uAE08\uC9C0 \u2014 \uB9D0\uB85C\uB9CC \uC124\uBA85\uD558\uACE0 \uD0DC\uADF8\uB97C \uC0DD\uB7B5\uD558\uB294 \uD589\uC704:**
|
|
1041
|
+
"\uAC80\uC0C9\uD558\uACA0\uC2B5\uB2C8\uB2E4", "\uCC3E\uC544\uBCF4\uACA0\uC2B5\uB2C8\uB2E4", "\uC870\uC0AC\uD574 \uBCF4\uACA0\uC2B5\uB2C8\uB2E4", "\uC774\uBBF8\uC9C0\uB97C \uC0DD\uC131\uD558\uACA0\uC2B5\uB2C8\uB2E4" \uB4F1
|
|
1042
|
+
**\uB9D0\uB85C\uB9CC \uC758\uB3C4\uB97C \uBC1D\uD788\uACE0 <skill_use> \uD0DC\uADF8\uB97C \uD3EC\uD568\uD558\uC9C0 \uC54A\uC73C\uBA74 \uB3C4\uAD6C\uAC00 \uC2E4\uD589\uB418\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.**
|
|
1043
|
+
\uBC18\uB4DC\uC2DC \uD14D\uC2A4\uD2B8 \uC548\uB0B4 \uC9C1\uD6C4\uC5D0 <skill_use> \uD0DC\uADF8\uB97C \uCD9C\uB825\uD574\uC57C \uD569\uB2C8\uB2E4.
|
|
1044
|
+
|
|
1045
|
+
\u274C \uC798\uBABB\uB41C \uC608 (\uD0DC\uADF8 \uC5C6\uC774 \uB9D0\uB9CC \uD568 \u2014 \uB3C4\uAD6C \uC2E4\uD589 \uC548 \uB428):
|
|
1046
|
+
"\uB124, \uB370\uBE0C\uB2E4\uC774\uBE0C\uC5D0 \uB300\uD574 \uAC80\uC0C9\uD574 \uBCF4\uACA0\uC2B5\uB2C8\uB2E4."
|
|
1047
|
+
|
|
1048
|
+
\u2705 \uC62C\uBC14\uB978 \uC608 (\uC548\uB0B4 + \uD0DC\uADF8 \uD3EC\uD568 \u2014 \uB3C4\uAD6C \uC2E4\uD589\uB428):
|
|
1049
|
+
"\uB370\uBE0C\uB2E4\uC774\uBE0C\uC5D0 \uB300\uD574 \uAC80\uC0C9\uD558\uACA0\uC2B5\uB2C8\uB2E4.
|
|
1050
|
+
<skill_use name="web_search">{"query": "\uB370\uBE0C\uB2E4\uC774\uBE0C"}</skill_use>"
|
|
1051
|
+
|
|
1052
|
+
**\uBC18\uBCF5: \uD574\uB2F9 \uB3C4\uAD6C\uAC00 \uC788\uB2E4\uBA74, <skill_use> \uD0DC\uADF8 \uC5C6\uC774 \uC808\uB300 \uC751\uB2F5\uD558\uC9C0 \uB9C8\uC138\uC694.**`;
|
|
1041
1053
|
}, [resolvedSkills]);
|
|
1042
1054
|
const handleSkillCall = (0, import_react3.useCallback)(
|
|
1043
1055
|
async (content, callbacks) => {
|
|
@@ -3178,42 +3190,14 @@ ${result.content}
|
|
|
3178
3190
|
if (activeChecklistRef.current) {
|
|
3179
3191
|
const checklist = activeChecklistRef.current;
|
|
3180
3192
|
const stepIndex = checklist.currentStep;
|
|
3181
|
-
|
|
3182
|
-
|
|
3183
|
-
|
|
3184
|
-
|
|
3185
|
-
|
|
3186
|
-
|
|
3187
|
-
|
|
3188
|
-
|
|
3189
|
-
const updatedItems = m.checklistBlock.items.map((it, idx) => ({
|
|
3190
|
-
...it,
|
|
3191
|
-
status: idx <= stepIndex ? "done" : it.status,
|
|
3192
|
-
result: idx === stepIndex ? accumulatedContent : it.result
|
|
3193
|
-
}));
|
|
3194
|
-
return {
|
|
3195
|
-
...m,
|
|
3196
|
-
checklistBlock: { ...m.checklistBlock, items: updatedItems, currentStep: stepIndex + 1 }
|
|
3197
|
-
};
|
|
3198
|
-
})
|
|
3199
|
-
};
|
|
3200
|
-
})
|
|
3201
|
-
);
|
|
3202
|
-
setSessions(
|
|
3203
|
-
(prev) => prev.map((s) => {
|
|
3204
|
-
if (s.id !== capturedSessionId) return s;
|
|
3205
|
-
return {
|
|
3206
|
-
...s,
|
|
3207
|
-
messages: s.messages.map((m) => {
|
|
3208
|
-
if (m.id !== assistantMessageId) return m;
|
|
3209
|
-
return { ...m, hidden: true };
|
|
3210
|
-
})
|
|
3211
|
-
};
|
|
3212
|
-
})
|
|
3213
|
-
);
|
|
3214
|
-
const nextStep = stepIndex + 1;
|
|
3215
|
-
if (nextStep < checklist.items.length) {
|
|
3216
|
-
checklist.currentStep = nextStep;
|
|
3193
|
+
const hasPollTag = /<poll[\s>]/i.test(accumulatedContent);
|
|
3194
|
+
if (hasPollTag && !checklist.waitingForPoll) {
|
|
3195
|
+
checklist.waitingForPoll = true;
|
|
3196
|
+
} else {
|
|
3197
|
+
if (checklist.waitingForPoll) {
|
|
3198
|
+
checklist.waitingForPoll = false;
|
|
3199
|
+
}
|
|
3200
|
+
checklist.stepResults.push(accumulatedContent);
|
|
3217
3201
|
setSessions(
|
|
3218
3202
|
(prev) => prev.map((s) => {
|
|
3219
3203
|
if (s.id !== checklist.sessionId) return s;
|
|
@@ -3223,21 +3207,87 @@ ${result.content}
|
|
|
3223
3207
|
if (m.id !== checklist.messageId || !m.checklistBlock) return m;
|
|
3224
3208
|
const updatedItems = m.checklistBlock.items.map((it, idx) => ({
|
|
3225
3209
|
...it,
|
|
3226
|
-
status: idx
|
|
3210
|
+
status: idx <= stepIndex ? "done" : it.status,
|
|
3211
|
+
result: idx === stepIndex ? accumulatedContent : it.result
|
|
3227
3212
|
}));
|
|
3228
3213
|
return {
|
|
3229
3214
|
...m,
|
|
3230
|
-
checklistBlock: { ...m.checklistBlock, items: updatedItems, currentStep:
|
|
3215
|
+
checklistBlock: { ...m.checklistBlock, items: updatedItems, currentStep: stepIndex + 1 }
|
|
3231
3216
|
};
|
|
3232
3217
|
})
|
|
3233
3218
|
};
|
|
3234
3219
|
})
|
|
3235
3220
|
);
|
|
3221
|
+
setSessions(
|
|
3222
|
+
(prev) => prev.map((s) => {
|
|
3223
|
+
if (s.id !== capturedSessionId) return s;
|
|
3224
|
+
return {
|
|
3225
|
+
...s,
|
|
3226
|
+
messages: s.messages.map((m) => {
|
|
3227
|
+
if (m.id !== assistantMessageId) return m;
|
|
3228
|
+
return { ...m, hidden: true };
|
|
3229
|
+
})
|
|
3230
|
+
};
|
|
3231
|
+
})
|
|
3232
|
+
);
|
|
3233
|
+
const nextStep = stepIndex + 1;
|
|
3234
|
+
if (nextStep < checklist.items.length) {
|
|
3235
|
+
checklist.currentStep = nextStep;
|
|
3236
|
+
setSessions(
|
|
3237
|
+
(prev) => prev.map((s) => {
|
|
3238
|
+
if (s.id !== checklist.sessionId) return s;
|
|
3239
|
+
return {
|
|
3240
|
+
...s,
|
|
3241
|
+
messages: s.messages.map((m) => {
|
|
3242
|
+
if (m.id !== checklist.messageId || !m.checklistBlock) return m;
|
|
3243
|
+
const updatedItems = m.checklistBlock.items.map((it, idx) => ({
|
|
3244
|
+
...it,
|
|
3245
|
+
status: idx === nextStep ? "in_progress" : it.status
|
|
3246
|
+
}));
|
|
3247
|
+
return {
|
|
3248
|
+
...m,
|
|
3249
|
+
checklistBlock: { ...m.checklistBlock, items: updatedItems, currentStep: nextStep }
|
|
3250
|
+
};
|
|
3251
|
+
})
|
|
3252
|
+
};
|
|
3253
|
+
})
|
|
3254
|
+
);
|
|
3255
|
+
skipNextChecklistParsingRef.current = true;
|
|
3256
|
+
setTimeout(() => {
|
|
3257
|
+
sendMessage(
|
|
3258
|
+
`\uCCB4\uD06C\uB9AC\uC2A4\uD2B8 ${nextStep + 1}/${checklist.items.length}\uB2E8\uACC4\uB97C \uC2E4\uD589\uD558\uC138\uC694: "${checklist.items[nextStep].title}".
|
|
3259
|
+
\uC774\uC804 \uB2E8\uACC4 \uACB0\uACFC\uB97C \uCC38\uACE0\uD558\uB418, \uC774 \uB2E8\uACC4\uC5D0\uB9CC \uC9D1\uC911\uD558\uC5EC \uACB0\uACFC\uB97C \uC791\uC131\uD558\uC138\uC694. checklist \uD0DC\uADF8\uB294 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.`,
|
|
3260
|
+
{ hiddenUserMessage: true }
|
|
3261
|
+
);
|
|
3262
|
+
}, 100);
|
|
3263
|
+
saveMessagesOnEarlyReturn();
|
|
3264
|
+
setIsLoading(false);
|
|
3265
|
+
abortControllerRef.current = null;
|
|
3266
|
+
return;
|
|
3267
|
+
}
|
|
3268
|
+
const stepSummary = checklist.stepResults.map((r, i) => `### ${i + 1}. ${checklist.items[i].title}
|
|
3269
|
+
${r}`).join("\n\n");
|
|
3270
|
+
setSessions(
|
|
3271
|
+
(prev) => prev.map((s) => {
|
|
3272
|
+
if (s.id !== checklist.sessionId) return s;
|
|
3273
|
+
return {
|
|
3274
|
+
...s,
|
|
3275
|
+
messages: s.messages.map((m) => {
|
|
3276
|
+
if (m.id !== checklist.messageId || !m.checklistBlock) return m;
|
|
3277
|
+
return { ...m, checklistBlock: { ...m.checklistBlock, completed: true } };
|
|
3278
|
+
})
|
|
3279
|
+
};
|
|
3280
|
+
})
|
|
3281
|
+
);
|
|
3282
|
+
activeChecklistRef.current = null;
|
|
3236
3283
|
skipNextChecklistParsingRef.current = true;
|
|
3237
3284
|
setTimeout(() => {
|
|
3238
3285
|
sendMessage(
|
|
3239
|
-
`\uCCB4\uD06C\uB9AC\uC2A4\uD2B8
|
|
3240
|
-
|
|
3286
|
+
`\uBAA8\uB4E0 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uB2E8\uACC4\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC544\uB798\uB294 \uAC01 \uB2E8\uACC4\uBCC4 \uACB0\uACFC\uC785\uB2C8\uB2E4:
|
|
3287
|
+
|
|
3288
|
+
${stepSummary}
|
|
3289
|
+
|
|
3290
|
+
\uC704 \uACB0\uACFC\uB97C \uC885\uD569\uD558\uC5EC \uCD5C\uC885 \uACB0\uACFC\uBB3C\uC744 \uC644\uC131\uD574\uC8FC\uC138\uC694. checklist \uD0DC\uADF8\uB294 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.`,
|
|
3241
3291
|
{ hiddenUserMessage: true }
|
|
3242
3292
|
);
|
|
3243
3293
|
}, 100);
|
|
@@ -3246,36 +3296,6 @@ ${result.content}
|
|
|
3246
3296
|
abortControllerRef.current = null;
|
|
3247
3297
|
return;
|
|
3248
3298
|
}
|
|
3249
|
-
const stepSummary = checklist.stepResults.map((r, i) => `### ${i + 1}. ${checklist.items[i].title}
|
|
3250
|
-
${r}`).join("\n\n");
|
|
3251
|
-
setSessions(
|
|
3252
|
-
(prev) => prev.map((s) => {
|
|
3253
|
-
if (s.id !== checklist.sessionId) return s;
|
|
3254
|
-
return {
|
|
3255
|
-
...s,
|
|
3256
|
-
messages: s.messages.map((m) => {
|
|
3257
|
-
if (m.id !== checklist.messageId || !m.checklistBlock) return m;
|
|
3258
|
-
return { ...m, checklistBlock: { ...m.checklistBlock, completed: true } };
|
|
3259
|
-
})
|
|
3260
|
-
};
|
|
3261
|
-
})
|
|
3262
|
-
);
|
|
3263
|
-
activeChecklistRef.current = null;
|
|
3264
|
-
skipNextChecklistParsingRef.current = true;
|
|
3265
|
-
setTimeout(() => {
|
|
3266
|
-
sendMessage(
|
|
3267
|
-
`\uBAA8\uB4E0 \uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uB2E8\uACC4\uAC00 \uC644\uB8CC\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC544\uB798\uB294 \uAC01 \uB2E8\uACC4\uBCC4 \uACB0\uACFC\uC785\uB2C8\uB2E4:
|
|
3268
|
-
|
|
3269
|
-
${stepSummary}
|
|
3270
|
-
|
|
3271
|
-
\uC704 \uACB0\uACFC\uB97C \uC885\uD569\uD558\uC5EC \uCD5C\uC885 \uACB0\uACFC\uBB3C\uC744 \uC644\uC131\uD574\uC8FC\uC138\uC694. checklist \uD0DC\uADF8\uB294 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.`,
|
|
3272
|
-
{ hiddenUserMessage: true }
|
|
3273
|
-
);
|
|
3274
|
-
}, 100);
|
|
3275
|
-
saveMessagesOnEarlyReturn();
|
|
3276
|
-
setIsLoading(false);
|
|
3277
|
-
abortControllerRef.current = null;
|
|
3278
|
-
return;
|
|
3279
3299
|
}
|
|
3280
3300
|
if (!skipNextChecklistParsingRef.current) {
|
|
3281
3301
|
const { checklistBlock, cleanContent: checklistCleanContent } = parseChecklistFromContent(accumulatedContent);
|
|
@@ -3630,6 +3650,32 @@ ${allResults}
|
|
|
3630
3650
|
});
|
|
3631
3651
|
const hasValidResponses = formattedParts.length > 0;
|
|
3632
3652
|
const isAutoGenerate = responses.every((r) => r.skipped);
|
|
3653
|
+
if (activeChecklistRef.current?.waitingForPoll) {
|
|
3654
|
+
const checklist = activeChecklistRef.current;
|
|
3655
|
+
const stepTitle = checklist.items[checklist.currentStep]?.title || "";
|
|
3656
|
+
setSessions(
|
|
3657
|
+
(prev) => prev.map((s) => {
|
|
3658
|
+
if (s.id !== currentSessionId) return s;
|
|
3659
|
+
return {
|
|
3660
|
+
...s,
|
|
3661
|
+
messages: s.messages.map((m) => {
|
|
3662
|
+
if (m.id !== messageId) return m;
|
|
3663
|
+
return { ...m, pollBlock: void 0, hidden: true };
|
|
3664
|
+
})
|
|
3665
|
+
};
|
|
3666
|
+
})
|
|
3667
|
+
);
|
|
3668
|
+
skipNextPollParsingRef.current = true;
|
|
3669
|
+
skipNextChecklistParsingRef.current = true;
|
|
3670
|
+
const hiddenPrompt2 = isAutoGenerate ? `\uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uB2E8\uACC4 "${stepTitle}"\uC744 \uC2E4\uD589\uD558\uC138\uC694. \uC0AC\uC6A9\uC790\uAC00 \uC790\uB3D9 \uC120\uD0DD\uC744 \uC694\uCCAD\uD588\uC73C\uBBC0\uB85C, \uCD5C\uC801\uC758 \uC635\uC158\uC744 \uC120\uD0DD\uD558\uC5EC \uC774 \uB2E8\uACC4\uB97C \uC644\uB8CC\uD574\uC8FC\uC138\uC694. poll \uD0DC\uADF8\uC640 checklist \uD0DC\uADF8\uB294 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.` : `\uCCB4\uD06C\uB9AC\uC2A4\uD2B8 \uB2E8\uACC4 "${stepTitle}"\uC744 \uACC4\uC18D\uD569\uB2C8\uB2E4. \uC0AC\uC6A9\uC790\uC758 \uC120\uD0DD:
|
|
3671
|
+
${formattedParts.join("\n")}
|
|
3672
|
+
|
|
3673
|
+
\uC704 \uC120\uD0DD\uC744 \uBC18\uC601\uD558\uC5EC \uC774 \uB2E8\uACC4\uC758 \uACB0\uACFC\uB97C \uC644\uC131\uD574\uC8FC\uC138\uC694. poll \uD0DC\uADF8\uC640 checklist \uD0DC\uADF8\uB294 \uC0AC\uC6A9\uD558\uC9C0 \uB9C8\uC138\uC694.`;
|
|
3674
|
+
setTimeout(() => {
|
|
3675
|
+
sendMessage(hiddenPrompt2, { hiddenUserMessage: true });
|
|
3676
|
+
}, 100);
|
|
3677
|
+
return;
|
|
3678
|
+
}
|
|
3633
3679
|
setSessions(
|
|
3634
3680
|
(prev) => prev.map((s) => {
|
|
3635
3681
|
if (s.id !== currentSessionId) return s;
|