Jelajahi Sumber

Merge pull request #3075 from Kilo-Org/christiaan/toolcalling

Native tool calling translations + analytics
Christiaan Arnoldus 4 bulan lalu
induk
melakukan
981b594b2a

+ 2 - 0
packages/types/src/telemetry.ts

@@ -2,6 +2,7 @@ import { z } from "zod"
 
 import { providerNames } from "./provider-settings.js"
 import { clineMessageSchema } from "./message.js"
+import { toolUseStylesSchema } from "./kilocode/native-function-calling.js"
 
 /**
  * TelemetrySetting
@@ -149,6 +150,7 @@ export const taskPropertiesSchema = z.object({
 	// kilocode_change start
 	currentTaskSize: z.number().optional(),
 	taskHistorySize: z.number().optional(),
+	toolStyle: toolUseStylesSchema.optional(),
 	// kilocode_change end
 })
 

+ 2 - 0
src/core/webview/ClineProvider.ts

@@ -41,6 +41,7 @@ import {
 	DEFAULT_WRITE_DELAY_MS,
 	ORGANIZATION_ALLOW_ALL,
 	DEFAULT_MODES,
+	getActiveToolUseStyle, // kilocode_change
 } from "@roo-code/types"
 import { TelemetryService } from "@roo-code/telemetry"
 import { CloudService, BridgeOrchestrator, getRooCodeApiUrl } from "@roo-code/cloud"
@@ -2969,6 +2970,7 @@ ${prompt}
 			// kilocode_change start
 			currentTaskSize: task?.clineMessages.length,
 			taskHistorySize: this.kiloCodeTaskHistorySizeForTelemetryOnly || undefined,
+			toolStyle: getActiveToolUseStyle(apiConfiguration),
 			// kilocode_change end
 		}
 	}

+ 4 - 3
webview-ui/src/components/settings/kilocode/ToolUseControl.tsx

@@ -1,6 +1,7 @@
 import React, { useCallback } from "react"
 import { VSCodeDropdown, VSCodeOption } from "@vscode/webview-ui-toolkit/react"
 import { ToolUseStyle, toolUseStylesSchema } from "@roo-code/types"
+import { useAppTranslation } from "@/i18n/TranslationContext"
 
 interface ToolUseControlProps {
 	toolStyle?: ToolUseStyle
@@ -15,19 +16,19 @@ export const ToolUseControl: React.FC<ToolUseControlProps> = ({ toolStyle, onCha
 		},
 		[onChange],
 	)
+	const { t } = useAppTranslation()
 
 	return (
 		<div className="flex flex-col gap-1">
 			<div>
-				<label className="block font-medium mb-1">Tool Call Style</label>
+				<label className="block font-medium mb-1">{t("kilocode:toolCallStyle.title")}</label>
 				<VSCodeDropdown value={toolStyle} onChange={handleToolStyleChange} className="w-full">
 					<VSCodeOption value="">(default)</VSCodeOption>
 					<VSCodeOption value={toolUseStylesSchema.Enum.xml}>XML</VSCodeOption>
 					<VSCodeOption value={toolUseStylesSchema.Enum.json}>JSON (experimental)</VSCodeOption>
 				</VSCodeDropdown>
 				<div className="text-vscode-descriptionForeground text-sm mt-1">
-					Choose how tool calls are formatted in the system prompt. JSON is currently experimental and mostly
-					intended for users interested in contributing to its development.
+					{t("kilocode:toolCallStyle.description")}
 				</div>
 			</div>
 		</div>

+ 4 - 0
webview-ui/src/i18n/locales/ar/kilocode.json

@@ -97,6 +97,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "نمط استدعاء الأداة",
+		"description": "اختر كيفية تنسيق استدعاءات الأدوات في موجه النظام. JSON حالياً تجريبي ومخصص بشكل أساسي للمستخدمين المهتمين بالمساهمة في تطويره."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code يقترح تلخيص المحادثة",

+ 4 - 0
webview-ui/src/i18n/locales/ca/kilocode.json

@@ -251,6 +251,10 @@
 	"memoryWarning": {
 		"message": "L'ús de memòria està al {{percentage}}%. Si us plau, reinicia el teu IDE per evitar fallades."
 	},
+	"toolCallStyle": {
+		"title": "Estil de Crida d'Eina",
+		"description": "Tria com es formaten les crides d'eina al prompt del sistema. JSON és actualment experimental i està principalment destinat a usuaris interessats a contribuir al seu desenvolupament."
+	},
 	"invalidModel": {
 		"alphaPeriodEnded": "🎉 El període alfa per a {{model}} ha finalitzat! Canvia a un model diferent per continuar.",
 		"notAllowedForTeam": "⚠️ La teva organització no permet l'ús del model {{model}}. Canvia a un model diferent per continuar.",

+ 4 - 0
webview-ui/src/i18n/locales/cs/kilocode.json

@@ -204,6 +204,10 @@
 			"idea7": "Vytvoř uklidňující interaktivní hvězdné pole, které se pohybuje s gesty myši"
 		}
 	},
+	"toolCallStyle": {
+		"title": "Styl volání nástrojů",
+		"description": "Vyber, jak jsou volání nástrojů formátována v systémovém promptu. JSON je momentálně experimentální a je určen především pro uživatele, kteří mají zájem přispět k jeho vývoji."
+	},
 	"ghost": {
 		"title": "Autocomplete",
 		"settings": {

+ 4 - 0
webview-ui/src/i18n/locales/de/kilocode.json

@@ -249,6 +249,10 @@
 		"requestsLabel": "Anfragen",
 		"perDay": "Pro Tag"
 	},
+	"toolCallStyle": {
+		"title": "Tool-Call-Stil",
+		"description": "Wähle aus, wie Tool-Calls im System-Prompt formatiert werden. JSON ist derzeit experimentell und hauptsächlich für Nutzer gedacht, die an der Weiterentwicklung interessiert sind."
+	},
 	"imageWarnings": {
 		"modelNoImageSupport": "Bilder werden vom aktuellen Modell nicht unterstützt.",
 		"maxImagesReached": "Maximal 20 Bilder pro Nachricht. Entfernen Sie einige Bilder, um weitere hinzuzufügen.",

+ 4 - 0
webview-ui/src/i18n/locales/en/kilocode.json

@@ -211,6 +211,10 @@
 			"idea7": "Create a calming interactive starfield that moves with mouse gestures"
 		}
 	},
+	"toolCallStyle": {
+		"title": "Tool Call Style",
+		"description": "Choose how tool calls are formatted in the system prompt. JSON is currently experimental and mostly intended for users interested in contributing to its development."
+	},
 	"ghost": {
 		"title": "Autocomplete",
 		"settings": {

+ 4 - 0
webview-ui/src/i18n/locales/es/kilocode.json

@@ -95,6 +95,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Estilo de Llamada de Herramientas",
+		"description": "Elige cómo se formatean las llamadas de herramientas en el prompt del sistema. JSON es actualmente experimental y está destinado principalmente a usuarios interesados en contribuir a su desarrollo."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code quiere condensar tu conversación",

+ 4 - 0
webview-ui/src/i18n/locales/fr/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Style d'Appel d'Outil",
+		"description": "Choisissez comment les appels d'outils sont formatés dans le prompt système. JSON est actuellement expérimental et principalement destiné aux utilisateurs intéressés à contribuer à son développement."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code souhaite condenser votre conversation",

+ 4 - 0
webview-ui/src/i18n/locales/hi/kilocode.json

@@ -243,6 +243,10 @@
 		"perDay": "प्रति दिन",
 		"requestsLabel": "अनुरोध"
 	},
+	"toolCallStyle": {
+		"title": "टूल कॉल स्टाइल",
+		"description": "चुनें कि सिस्टम प्रॉम्प्ट में टूल कॉल को कैसे फॉर्मेट किया जाए। JSON वर्तमान में प्रायोगिक है और मुख्य रूप से उन उपयोगकर्ताओं के लिए है जो इसके विकास में योगदान करने में रुचि रखते हैं।"
+	},
 	"imageWarnings": {
 		"modelNoImageSupport": "वर्तमान मॉडल द्वारा छवियों का समर्थन नहीं किया जाता है।",
 		"maxImagesReached": "प्रति संदेश अधिकतम 20 छवियां। अधिक जोड़ने के लिए कुछ छवियां हटाएं।",

+ 4 - 0
webview-ui/src/i18n/locales/id/kilocode.json

@@ -257,5 +257,9 @@
 	},
 	"memoryWarning": {
 		"message": "Penggunaan memori mencapai {{percentage}}%. Silakan restart IDE Anda untuk mencegah crash."
+	},
+	"toolCallStyle": {
+		"title": "Gaya Panggilan Tool",
+		"description": "Pilih bagaimana panggilan tool diformat dalam prompt sistem. JSON saat ini bersifat eksperimental dan sebagian besar ditujukan untuk pengguna yang tertarik berkontribusi pada pengembangannya."
 	}
 }

+ 4 - 0
webview-ui/src/i18n/locales/it/kilocode.json

@@ -257,5 +257,9 @@
 	},
 	"memoryWarning": {
 		"message": "L'utilizzo della memoria è al {{percentage}}%. Riavvia il tuo IDE per evitare crash."
+	},
+	"toolCallStyle": {
+		"title": "Stile Chiamata Strumenti",
+		"description": "Scegli come formattare le chiamate agli strumenti nel prompt di sistema. JSON è attualmente sperimentale e destinato principalmente agli utenti interessati a contribuire al suo sviluppo."
 	}
 }

+ 4 - 0
webview-ui/src/i18n/locales/ja/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "ツール呼び出しスタイル",
+		"description": "システムプロンプトでツール呼び出しをどのようにフォーマットするかを選択します。JSONは現在実験的であり、主にその開発に貢献することに興味のあるユーザーを対象としています。"
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Codeは会話を要約したいと思っています",

+ 4 - 0
webview-ui/src/i18n/locales/ko/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "도구 호출 스타일",
+		"description": "시스템 프롬프트에서 도구 호출의 형식을 선택하세요. JSON은 현재 실험적이며 주로 개발에 기여하는 데 관심이 있는 사용자를 위한 것입니다."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code가 대화를 요약하고자 합니다",

+ 4 - 0
webview-ui/src/i18n/locales/nl/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Tool Call Stijl",
+		"description": "Kies hoe tool calls worden geformatteerd in de systeemprompt. JSON is momenteel experimenteel en voornamelijk bedoeld voor gebruikers die geïnteresseerd zijn in het bijdragen aan de ontwikkeling ervan."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code wil je gesprek samenvatten",

+ 4 - 0
webview-ui/src/i18n/locales/pl/kilocode.json

@@ -95,6 +95,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Styl Wywołań Narzędzi",
+		"description": "Wybierz sposób formatowania wywołań narzędzi w prompcie systemowym. JSON jest obecnie eksperymentalny i przeznaczony głównie dla użytkowników zainteresowanych wkładem w jego rozwój."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code chce skondensować Twoją rozmowę",

+ 4 - 0
webview-ui/src/i18n/locales/pt-BR/kilocode.json

@@ -250,6 +250,10 @@
 		"perMinute": "Por Minuto",
 		"perHour": "Por Hora"
 	},
+	"toolCallStyle": {
+		"title": "Estilo de Chamada de Ferramenta",
+		"description": "Escolha como as chamadas de ferramentas são formatadas no prompt do sistema. JSON é atualmente experimental e destinado principalmente a usuários interessados em contribuir para seu desenvolvimento."
+	},
 	"imageWarnings": {
 		"modelNoImageSupport": "Imagens não são suportadas pelo modelo atual.",
 		"maxImagesReached": "Máximo de 20 imagens por mensagem. Remova algumas imagens para adicionar mais.",

+ 4 - 0
webview-ui/src/i18n/locales/ru/kilocode.json

@@ -250,6 +250,10 @@
 		"requestsLabel": "Запросы",
 		"perDay": "В день"
 	},
+	"toolCallStyle": {
+		"title": "Стиль вызова инструментов",
+		"description": "Выберите, как вызовы инструментов форматируются в системном промпте. JSON в настоящее время является экспериментальным и в основном предназначен для пользователей, заинтересованных в участии в его разработке."
+	},
 	"imageWarnings": {
 		"modelNoImageSupport": "Текущая модель не поддерживает изображения.",
 		"maxImagesReached": "Максимум 20 изображений на сообщение. Удалите некоторые изображения, чтобы добавить больше.",

+ 4 - 0
webview-ui/src/i18n/locales/th/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "รูปแบบการเรียกใช้เครื่องมือ",
+		"description": "เลือกวิธีการจัดรูปแบบการเรียกใช้เครื่องมือใน system prompt JSON เป็นฟีเจอร์ทดลองและมีไว้สำหรับผู้ใช้ที่สนใจมีส่วนร่วมในการพัฒนา"
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code ต้องการย่อการสนทนาของคุณ",

+ 4 - 0
webview-ui/src/i18n/locales/tr/kilocode.json

@@ -95,6 +95,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Araç Çağrısı Stili",
+		"description": "Sistem isteminde araç çağrılarının nasıl biçimlendirileceğini seçin. JSON şu anda deneyseldir ve çoğunlukla geliştirilmesine katkıda bulunmak isteyen kullanıcılar için tasarlanmıştır."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code konuşmanı özetlemek istiyor",

+ 4 - 0
webview-ui/src/i18n/locales/uk/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "Стиль виклику інструментів",
+		"description": "Виберіть, як виклики інструментів форматуються в системному промпті. JSON наразі є експериментальним і призначений переважно для користувачів, зацікавлених у внеску в його розробку."
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code хоче стиснути твою розмову",

+ 4 - 0
webview-ui/src/i18n/locales/vi/kilocode.json

@@ -250,6 +250,10 @@
 		"perHour": "Một Giờ",
 		"requestsLabel": "Yêu cầu"
 	},
+	"toolCallStyle": {
+		"title": "Kiểu Gọi Công Cụ",
+		"description": "Chọn cách định dạng các lệnh gọi công cụ trong system prompt. JSON hiện đang ở giai đoạn thử nghiệm và chủ yếu dành cho người dùng quan tâm đến việc đóng góp vào phát triển của nó."
+	},
 	"imageWarnings": {
 		"modelNoImageSupport": "Hình ảnh không được hỗ trợ bởi mô hình hiện tại.",
 		"maxImagesReached": "Tối đa 20 hình ảnh cho mỗi tin nhắn. Hãy xóa một số hình ảnh để thêm được nhiều hơn.",

+ 4 - 0
webview-ui/src/i18n/locales/zh-CN/kilocode.json

@@ -102,6 +102,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "工具调用样式",
+		"description": "选择系统提示中工具调用的格式。JSON 格式目前处于实验阶段,主要面向有兴趣参与开发的用户。"
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code 想要压缩你的对话",

+ 4 - 0
webview-ui/src/i18n/locales/zh-TW/kilocode.json

@@ -97,6 +97,10 @@
 			}
 		}
 	},
+	"toolCallStyle": {
+		"title": "工具呼叫樣式",
+		"description": "選擇系統提示中工具呼叫的格式化方式。JSON 目前為實驗性功能,主要供有興趣參與開發的使用者使用。"
+	},
 	"chat": {
 		"condense": {
 			"wantsToCondense": "Kilo Code 想要壓縮你的對話",