kingkont 0.10.8 → 0.10.9
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/package.json +1 -1
- package/renderer/chat.js +12 -1
- package/renderer/cloudProjects.js +6 -1
package/package.json
CHANGED
package/renderer/chat.js
CHANGED
|
@@ -219,6 +219,10 @@
|
|
|
219
219
|
lines.push('- Если нужен новый id для add_node — оставь поле пустым, вернётся в результате.');
|
|
220
220
|
lines.push('- Для генерации используй generate_node ПОСЛЕ add_node с promptом.');
|
|
221
221
|
lines.push('- Отвечай по-русски, кратко. Объясняй что делаешь, без лишней воды.');
|
|
222
|
+
lines.push('');
|
|
223
|
+
lines.push('ВАЖНО: НИКОГДА не пиши <tool_result>...</tool_result> сам — это формат который Я');
|
|
224
|
+
lines.push('пришлю тебе с результатами выполнения. В своих сообщениях ты только зовёшь tools');
|
|
225
|
+
lines.push('через <tool>...</tool> и пишешь обычный текст для пользователя.');
|
|
222
226
|
return lines.join('\n');
|
|
223
227
|
}
|
|
224
228
|
|
|
@@ -240,7 +244,14 @@
|
|
|
240
244
|
}
|
|
241
245
|
function stripToolCalls(text) {
|
|
242
246
|
if (typeof text !== 'string') return '';
|
|
243
|
-
|
|
247
|
+
// Убираем оба тэга:
|
|
248
|
+
// <tool>JSON</tool> — наш command-protocol (модель так зовёт tools)
|
|
249
|
+
// <tool_result>JSON</tool_result> — модель иногда его галюцинирует
|
|
250
|
+
// в outputе, копируя format из user-msg.
|
|
251
|
+
return text
|
|
252
|
+
.replace(/<tool>[\s\S]*?<\/tool>/g, '')
|
|
253
|
+
.replace(/<tool_result>[\s\S]*?<\/tool_result>/g, '')
|
|
254
|
+
.trim();
|
|
244
255
|
}
|
|
245
256
|
|
|
246
257
|
// ============== PERSISTENCE ==============
|
|
@@ -666,8 +666,13 @@
|
|
|
666
666
|
});
|
|
667
667
|
if (typeof positionFloatingMenu === 'function') {
|
|
668
668
|
positionFloatingMenu(menu, e.clientX, e.clientY);
|
|
669
|
+
} else {
|
|
670
|
+
menu.style.cssText = `position:fixed; left:${e.clientX}px; top:${e.clientY}px; z-index:9999;`;
|
|
669
671
|
}
|
|
670
|
-
|
|
672
|
+
// Используем глобальный closeNodeMenu — он умеет НЕ закрываться на клик
|
|
673
|
+
// по активной кнопке внутри меню (даёт click-обработчику сработать).
|
|
674
|
+
// Без этого mousedown на кнопке закрывал меню до click → нажатие тонуло.
|
|
675
|
+
setTimeout(() => document.addEventListener('mousedown', closeNodeMenu, { once: true }), 0);
|
|
671
676
|
});
|
|
672
677
|
setCloudButtonsVisibility();
|
|
673
678
|
// Переинициализируем видимость кнопок раз в 5 сек — для случая когда юзер
|