mirror of
https://github.com/Kilo-Org/kilocode.git
synced 2026-08-29 03:44:06 +08:00
feat: Add support for native agents from marketplace instead of modes (#10634)
* feat: Add support for native agents from marketplace instead of modes * chore: update kilo-vscode visual regression baselines * fix: add guard for case when user has pre-existing agent with same name * chore: Clean up unused code * chore: continue clean up of old code related to modes * chore: add notification message informing users about migration from modes to agents * fix: fix broken layout of remove dialog and update leftover mode string * fix: adjust strings with mode string instead of agent --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
17e0b2d6b5
commit
be9a7c9ccd
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7338febdf802b5ce501773be164e9da152fb7903e9b16807bd8751fa38f208ed
|
||||
size 10310
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f7e075b4961d3a62c8deda6b481f64cb8777d05183a9c10d0dd2373b7972d3ab
|
||||
size 53678
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b0dd1dc26b28d354ecd14c53dd1b9e6158a161f47152f30299ba4c0827ce1674
|
||||
size 50904
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2c925148c349c6ab1f14190a2a379aa24869de35e5b77455fa15d8868eb08343
|
||||
size 5943
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5094e214a52bac4627f8fe280f4818c986753c49f160bf5295f21122054ea72f
|
||||
size 53684
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83a70ef1260f77c3017db90a918ee77c332c065bfc047e0f206948bb5dde83b9
|
||||
size 50888
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "المهارات",
|
||||
"marketplace.tab.mcpServers": "خوادم MCP",
|
||||
"marketplace.tab.modes": "الأوضاع",
|
||||
"marketplace.category.all": "الكل",
|
||||
"marketplace.placeholder": "سيتم تنفيذه لاحقاً",
|
||||
"marketplace.card.installed": "مثبت",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "إلغاء",
|
||||
"marketplace.remove.confirm.button": "إزالة",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "وكلاء",
|
||||
"marketplace.search": "بحث...",
|
||||
"marketplace.filter.all": "جميع العناصر",
|
||||
"marketplace.filter.notInstalled": "غير مثبت",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "عام",
|
||||
"marketplace.remove.type.mcp": "خادم MCP",
|
||||
"marketplace.remove.type.skill": "مهارة",
|
||||
"marketplace.remove.type.mode": "وضع",
|
||||
"marketplace.remove.type.agent": "وكيل",
|
||||
"marketplace.remove.failed": "فشلت إزالة {{name}}",
|
||||
"marketplace.install": "تثبيت",
|
||||
"marketplace.filter.installed": "مثبت",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "عدة جلسات تعمل وستتوقف",
|
||||
"marketplace.warning.installAnyway": "تثبيت على أي حال",
|
||||
"marketplace.warning.cancel": "إلغاء",
|
||||
"marketplace.contribute.prompt": "هل تفتقد مهارة أو وضعًا أو خادم MCP؟",
|
||||
"marketplace.contribute.prompt": "هل تفتقد مهارة أو وكيلاً أو خادم MCP؟",
|
||||
"marketplace.contribute.cta": "ساهم على GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"تم استبدال الأوضاع بالوكلاء. إذا كنت قد قمت بتثبيت أوضاع السوق سابقاً، يرجى إزالتها وإعادة تثبيتها كوكلاء للانتقال إلى التنسيق الجديد.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "نفّذ",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "Servidores MCP",
|
||||
"marketplace.tab.modes": "Modos",
|
||||
"marketplace.category.all": "Todos",
|
||||
"marketplace.placeholder": "A ser implementado",
|
||||
"marketplace.card.installed": "Instalado",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Cancelar",
|
||||
"marketplace.remove.confirm.button": "Remover",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agentes",
|
||||
"marketplace.search": "Pesquisar...",
|
||||
"marketplace.filter.all": "Todos os Itens",
|
||||
"marketplace.filter.notInstalled": "Não Instalado",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "servidor MCP",
|
||||
"marketplace.remove.type.skill": "habilidade",
|
||||
"marketplace.remove.type.mode": "modo",
|
||||
"marketplace.remove.type.agent": "agente",
|
||||
"marketplace.remove.failed": "Falha ao remover {{name}}",
|
||||
"marketplace.install": "Instalar",
|
||||
"marketplace.filter.installed": "Instalado",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Várias sessões estão em execução e serão interrompidas",
|
||||
"marketplace.warning.installAnyway": "Instalar mesmo assim",
|
||||
"marketplace.warning.cancel": "Cancelar",
|
||||
"marketplace.contribute.prompt": "Está faltando uma skill, modo ou servidor MCP?",
|
||||
"marketplace.contribute.prompt": "Está faltando uma skill, agente ou servidor MCP?",
|
||||
"marketplace.contribute.cta": "Contribuir no GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Os modos foram substituídos por agentes. Se você instalou modos do marketplace anteriormente, remova-os e reinstale-os como agentes para migrar para o novo formato.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementar",
|
||||
|
||||
Generated
+5
-3
@@ -24,7 +24,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Vještine",
|
||||
"marketplace.tab.mcpServers": "MCP Serveri",
|
||||
"marketplace.tab.modes": "Modovi",
|
||||
"marketplace.category.all": "Sve",
|
||||
"marketplace.placeholder": "Biće implementirano",
|
||||
"marketplace.card.installed": "Instalirano",
|
||||
@@ -50,6 +49,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Otkaži",
|
||||
"marketplace.remove.confirm.button": "Ukloni",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenti",
|
||||
"marketplace.search": "Pretraži...",
|
||||
"marketplace.filter.all": "Sve stavke",
|
||||
"marketplace.filter.notInstalled": "Nije instalirano",
|
||||
@@ -65,7 +65,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "globalno",
|
||||
"marketplace.remove.type.mcp": "MCP server",
|
||||
"marketplace.remove.type.skill": "vještina",
|
||||
"marketplace.remove.type.mode": "režim",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Uklanjanje {{name}} nije uspjelo",
|
||||
"marketplace.install": "Instaliraj",
|
||||
"marketplace.filter.installed": "Instalirano",
|
||||
@@ -74,8 +74,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Nekoliko sesija je pokrenuto i bit će prekinuto",
|
||||
"marketplace.warning.installAnyway": "Instaliraj svejedno",
|
||||
"marketplace.warning.cancel": "Otkaži",
|
||||
"marketplace.contribute.prompt": "Nedostaje vještina, način rada ili MCP server?",
|
||||
"marketplace.contribute.prompt": "Nedostaje vještina, agent ili MCP server?",
|
||||
"marketplace.contribute.cta": "Doprinesi na GitHub-u",
|
||||
"marketplace.migration.notice":
|
||||
"Modovi su zamijenjeni agentima. Ako ste prethodno instalirali marketplace modove, uklonite ih i ponovo instalirajte kao agente da biste prešli na novi format.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementiraj",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "MCP-servere",
|
||||
"marketplace.tab.modes": "Tilstande",
|
||||
"marketplace.category.all": "Alle",
|
||||
"marketplace.placeholder": "Skal implementeres",
|
||||
"marketplace.card.installed": "Installeret",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Annuller",
|
||||
"marketplace.remove.confirm.button": "Fjern",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenter",
|
||||
"marketplace.search": "Søg...",
|
||||
"marketplace.filter.all": "Alle elementer",
|
||||
"marketplace.filter.notInstalled": "Ikke installeret",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "MCP-server",
|
||||
"marketplace.remove.type.skill": "færdighed",
|
||||
"marketplace.remove.type.mode": "tilstand",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Kunne ikke fjerne {{name}}",
|
||||
"marketplace.install": "Installer",
|
||||
"marketplace.filter.installed": "Installeret",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Flere sessioner kører og vil blive afbrudt",
|
||||
"marketplace.warning.installAnyway": "Installer alligevel",
|
||||
"marketplace.warning.cancel": "Annuller",
|
||||
"marketplace.contribute.prompt": "Mangler du en skill, tilstand eller MCP-server?",
|
||||
"marketplace.contribute.prompt": "Mangler du en skill, agent eller MCP-server?",
|
||||
"marketplace.contribute.cta": "Bidrag på GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Tilstande er blevet erstattet af agenter. Hvis du tidligere har installeret marketplace-tilstande, skal du fjerne dem og geninstallere dem som agenter for at migrere til det nye format.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementér",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "MCP-Server",
|
||||
"marketplace.tab.modes": "Modi",
|
||||
"marketplace.category.all": "Alle",
|
||||
"marketplace.placeholder": "Noch nicht implementiert",
|
||||
"marketplace.card.installed": "Installiert",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Abbrechen",
|
||||
"marketplace.remove.confirm.button": "Entfernen",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenten",
|
||||
"marketplace.search": "Suchen...",
|
||||
"marketplace.filter.all": "Alle Elemente",
|
||||
"marketplace.filter.notInstalled": "Nicht installiert",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "Global",
|
||||
"marketplace.remove.type.mcp": "MCP-Server",
|
||||
"marketplace.remove.type.skill": "Skill",
|
||||
"marketplace.remove.type.mode": "Modus",
|
||||
"marketplace.remove.type.agent": "Agent",
|
||||
"marketplace.remove.failed": "Fehler beim Entfernen von {{name}}",
|
||||
"marketplace.install": "Installieren",
|
||||
"marketplace.filter.installed": "Installiert",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Mehrere Sitzungen laufen und werden unterbrochen",
|
||||
"marketplace.warning.installAnyway": "Trotzdem installieren",
|
||||
"marketplace.warning.cancel": "Abbrechen",
|
||||
"marketplace.contribute.prompt": "Fehlt ein Skill, Modus oder MCP-Server?",
|
||||
"marketplace.contribute.prompt": "Fehlt ein Skill, Agent oder MCP-Server?",
|
||||
"marketplace.contribute.cta": "Auf GitHub beitragen",
|
||||
"marketplace.migration.notice":
|
||||
"Modi wurden durch Agenten ersetzt. Wenn Sie zuvor Marketplace-Modi installiert haben, entfernen Sie diese bitte und installieren Sie sie als Agenten neu, um zum neuen Format zu migrieren.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Umsetzen",
|
||||
|
||||
@@ -21,7 +21,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "MCP Servers",
|
||||
"marketplace.tab.modes": "Modes",
|
||||
"marketplace.category.all": "All",
|
||||
"marketplace.placeholder": "To be implemented",
|
||||
"marketplace.card.installed": "Installed",
|
||||
@@ -47,6 +46,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Cancel",
|
||||
"marketplace.remove.confirm.button": "Remove",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agents",
|
||||
"marketplace.search": "Search...",
|
||||
"marketplace.filter.all": "All Items",
|
||||
"marketplace.filter.notInstalled": "Not Installed",
|
||||
@@ -62,7 +62,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "MCP server",
|
||||
"marketplace.remove.type.skill": "skill",
|
||||
"marketplace.remove.type.mode": "mode",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Failed to remove {{name}}",
|
||||
"marketplace.install": "Install",
|
||||
"marketplace.filter.installed": "Installed",
|
||||
@@ -71,8 +71,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Several sessions are running and will be interrupted",
|
||||
"marketplace.warning.installAnyway": "Install anyway",
|
||||
"marketplace.warning.cancel": "Cancel",
|
||||
"marketplace.contribute.prompt": "Missing a skill, mode, or MCP server?",
|
||||
"marketplace.contribute.prompt": "Missing a skill, agent, or MCP server?",
|
||||
"marketplace.contribute.cta": "Contribute on GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Modes have been replaced by agents. If you previously installed marketplace modes, please remove and reinstall them as agents to migrate to the new format.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit. The English strings here must match
|
||||
// the canonical `label`/`header`/`question` sent by the backend — those canonical labels
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "Servidores MCP",
|
||||
"marketplace.tab.modes": "Modos",
|
||||
"marketplace.category.all": "Todos",
|
||||
"marketplace.placeholder": "Por implementar",
|
||||
"marketplace.card.installed": "Instalado",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Cancelar",
|
||||
"marketplace.remove.confirm.button": "Eliminar",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agentes",
|
||||
"marketplace.search": "Buscar...",
|
||||
"marketplace.filter.all": "Todos los elementos",
|
||||
"marketplace.filter.notInstalled": "No instalado",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "servidor MCP",
|
||||
"marketplace.remove.type.skill": "habilidad",
|
||||
"marketplace.remove.type.mode": "modo",
|
||||
"marketplace.remove.type.agent": "agente",
|
||||
"marketplace.remove.failed": "Error al eliminar {{name}}",
|
||||
"marketplace.install": "Instalar",
|
||||
"marketplace.filter.installed": "Instalado",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Varias sesiones están en ejecución y se interrumpirán",
|
||||
"marketplace.warning.installAnyway": "Instalar de todas formas",
|
||||
"marketplace.warning.cancel": "Cancelar",
|
||||
"marketplace.contribute.prompt": "¿Falta una skill, modo o servidor MCP?",
|
||||
"marketplace.contribute.prompt": "¿Falta una skill, agente o servidor MCP?",
|
||||
"marketplace.contribute.cta": "Contribuir en GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Los modos han sido reemplazados por agentes. Si anteriormente instalaste modos del marketplace, elimínalos y reinstálalos como agentes para migrar al nuevo formato.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementar",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "Serveurs MCP",
|
||||
"marketplace.tab.modes": "Modes",
|
||||
"marketplace.category.all": "Tout",
|
||||
"marketplace.placeholder": "À implémenter",
|
||||
"marketplace.card.installed": "Installé",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Annuler",
|
||||
"marketplace.remove.confirm.button": "Supprimer",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agents",
|
||||
"marketplace.search": "Rechercher...",
|
||||
"marketplace.filter.all": "Tous les éléments",
|
||||
"marketplace.filter.notInstalled": "Non installé",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "serveur MCP",
|
||||
"marketplace.remove.type.skill": "compétence",
|
||||
"marketplace.remove.type.mode": "mode",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Échec de la suppression de {{name}}",
|
||||
"marketplace.install": "Installer",
|
||||
"marketplace.filter.installed": "Installé",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Plusieurs sessions sont en cours et seront interrompues",
|
||||
"marketplace.warning.installAnyway": "Installer quand même",
|
||||
"marketplace.warning.cancel": "Annuler",
|
||||
"marketplace.contribute.prompt": "Il manque une skill, un mode ou un serveur MCP ?",
|
||||
"marketplace.contribute.prompt": "Il manque une compétence, un agent ou un serveur MCP ?",
|
||||
"marketplace.contribute.cta": "Contribuer sur GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Les modes ont été remplacés par des agents. Si vous avez précédemment installé des modes depuis le marketplace, veuillez les supprimer et les réinstaller en tant qu'agents pour migrer vers le nouveau format.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implémenter",
|
||||
|
||||
Generated
+5
-3
@@ -18,7 +18,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "スキル",
|
||||
"marketplace.tab.mcpServers": "MCPサーバー",
|
||||
"marketplace.tab.modes": "モード",
|
||||
"marketplace.category.all": "すべて",
|
||||
"marketplace.placeholder": "未実装",
|
||||
"marketplace.card.installed": "インストール済み",
|
||||
@@ -43,6 +42,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "キャンセル",
|
||||
"marketplace.remove.confirm.button": "削除",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "エージェント",
|
||||
"marketplace.search": "検索...",
|
||||
"marketplace.filter.all": "すべてのアイテム",
|
||||
"marketplace.filter.notInstalled": "未インストール",
|
||||
@@ -58,7 +58,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "グローバル",
|
||||
"marketplace.remove.type.mcp": "MCPサーバー",
|
||||
"marketplace.remove.type.skill": "スキル",
|
||||
"marketplace.remove.type.mode": "モード",
|
||||
"marketplace.remove.type.agent": "エージェント",
|
||||
"marketplace.remove.failed": "{{name}} の削除に失敗しました",
|
||||
"marketplace.install": "インストール",
|
||||
"marketplace.filter.installed": "インストール済み",
|
||||
@@ -67,8 +67,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "複数のセッションが実行中で中断されます",
|
||||
"marketplace.warning.installAnyway": "それでもインストール",
|
||||
"marketplace.warning.cancel": "キャンセル",
|
||||
"marketplace.contribute.prompt": "スキル、モード、MCP サーバーが見つかりませんか?",
|
||||
"marketplace.contribute.prompt": "スキル、エージェント、またはMCPサーバーが見つかりませんか?",
|
||||
"marketplace.contribute.cta": "GitHub で貢献する",
|
||||
"marketplace.migration.notice":
|
||||
"モードはエージェントに置き換えられました。以前にマーケットプレイスのモードをインストールしていた場合は、新しい形式に移行するためにそれらを削除してエージェントとして再インストールしてください。",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "実装",
|
||||
|
||||
Generated
+5
-3
@@ -18,7 +18,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "스킬",
|
||||
"marketplace.tab.mcpServers": "MCP 서버",
|
||||
"marketplace.tab.modes": "모드",
|
||||
"marketplace.category.all": "전체",
|
||||
"marketplace.placeholder": "구현 예정",
|
||||
"marketplace.card.installed": "설치됨",
|
||||
@@ -43,6 +42,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "취소",
|
||||
"marketplace.remove.confirm.button": "제거",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "에이전트",
|
||||
"marketplace.search": "검색...",
|
||||
"marketplace.filter.all": "모든 항목",
|
||||
"marketplace.filter.notInstalled": "설치되지 않음",
|
||||
@@ -58,7 +58,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "글로벌",
|
||||
"marketplace.remove.type.mcp": "MCP 서버",
|
||||
"marketplace.remove.type.skill": "스킬",
|
||||
"marketplace.remove.type.mode": "모드",
|
||||
"marketplace.remove.type.agent": "에이전트",
|
||||
"marketplace.remove.failed": "{{name}} 제거 실패",
|
||||
"marketplace.install": "설치",
|
||||
"marketplace.filter.installed": "설치됨",
|
||||
@@ -67,8 +67,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "여러 세션이 실행 중이며 중단됩니다",
|
||||
"marketplace.warning.installAnyway": "그래도 설치",
|
||||
"marketplace.warning.cancel": "취소",
|
||||
"marketplace.contribute.prompt": "스킬, 모드 또는 MCP 서버가 없나요?",
|
||||
"marketplace.contribute.prompt": "스킬, 에이전트 또는 MCP 서버가 없나요?",
|
||||
"marketplace.contribute.cta": "GitHub에서 기여하기",
|
||||
"marketplace.migration.notice":
|
||||
"모드가 에이전트로 대체되었습니다. 이전에 마켓플레이스 모드를 설치한 경우 새 형식으로 마이그레이션하려면 해당 모드를 제거하고 에이전트로 다시 설치하세요.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "구현",
|
||||
|
||||
Generated
+5
-3
@@ -21,7 +21,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "MCP Servers",
|
||||
"marketplace.tab.modes": "Modi",
|
||||
"marketplace.category.all": "Alle",
|
||||
"marketplace.placeholder": "Nog te implementeren",
|
||||
"marketplace.card.installed": "Geïnstalleerd",
|
||||
@@ -47,6 +46,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Annuleren",
|
||||
"marketplace.remove.confirm.button": "Verwijderen",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenten",
|
||||
"marketplace.search": "Zoeken...",
|
||||
"marketplace.filter.all": "Alle items",
|
||||
"marketplace.filter.notInstalled": "Niet geïnstalleerd",
|
||||
@@ -62,7 +62,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "globaal",
|
||||
"marketplace.remove.type.mcp": "MCP server",
|
||||
"marketplace.remove.type.skill": "skill",
|
||||
"marketplace.remove.type.mode": "modus",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Verwijderen van {{name}} mislukt",
|
||||
"marketplace.install": "Installeren",
|
||||
"marketplace.filter.installed": "Geïnstalleerd",
|
||||
@@ -71,8 +71,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Er zijn meerdere sessies actief en deze zullen worden onderbroken",
|
||||
"marketplace.warning.installAnyway": "Toch installeren",
|
||||
"marketplace.warning.cancel": "Annuleren",
|
||||
"marketplace.contribute.prompt": "Mist er een skill, modus of MCP-server?",
|
||||
"marketplace.contribute.prompt": "Mist u een skill, agent of MCP-server?",
|
||||
"marketplace.contribute.cta": "Bijdragen op GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Modi zijn vervangen door agenten. Als u eerder marketplace-modi hebt geïnstalleerd, verwijder ze dan en installeer ze opnieuw als agenten om naar het nieuwe formaat te migreren.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementeren",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "MCP-servere",
|
||||
"marketplace.tab.modes": "Moduser",
|
||||
"marketplace.category.all": "Alle",
|
||||
"marketplace.placeholder": "Skal implementeres",
|
||||
"marketplace.card.installed": "Installert",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Avbryt",
|
||||
"marketplace.remove.confirm.button": "Fjern",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenter",
|
||||
"marketplace.search": "Søk...",
|
||||
"marketplace.filter.all": "Alle elementer",
|
||||
"marketplace.filter.notInstalled": "Ikke installert",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "global",
|
||||
"marketplace.remove.type.mcp": "MCP-server",
|
||||
"marketplace.remove.type.skill": "ferdighet",
|
||||
"marketplace.remove.type.mode": "modus",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Kunne ikke fjerne {{name}}",
|
||||
"marketplace.install": "Installer",
|
||||
"marketplace.filter.installed": "Installert",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Flere økter kjører og vil bli avbrutt",
|
||||
"marketplace.warning.installAnyway": "Installer uansett",
|
||||
"marketplace.warning.cancel": "Avbryt",
|
||||
"marketplace.contribute.prompt": "Mangler du en skill, modus eller MCP-server?",
|
||||
"marketplace.contribute.prompt": "Mangler du en skill, agent eller MCP-server?",
|
||||
"marketplace.contribute.cta": "Bidra på GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Modi er erstattet av agenter. Hvis du tidligere har installert marketplace-modi, fjern dem og installer dem på nytt som agenter for å migrere til det nye formatet.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Implementer",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Skills",
|
||||
"marketplace.tab.mcpServers": "Serwery MCP",
|
||||
"marketplace.tab.modes": "Tryby",
|
||||
"marketplace.category.all": "Wszystkie",
|
||||
"marketplace.placeholder": "Do zaimplementowania",
|
||||
"marketplace.card.installed": "Zainstalowano",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Anuluj",
|
||||
"marketplace.remove.confirm.button": "Usuń",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Agenci",
|
||||
"marketplace.search": "Szukaj...",
|
||||
"marketplace.filter.all": "Wszystkie elementy",
|
||||
"marketplace.filter.notInstalled": "Nie zainstalowano",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "globalny",
|
||||
"marketplace.remove.type.mcp": "serwer MCP",
|
||||
"marketplace.remove.type.skill": "umiejętność",
|
||||
"marketplace.remove.type.mode": "tryb",
|
||||
"marketplace.remove.type.agent": "agent",
|
||||
"marketplace.remove.failed": "Nie udało się usunąć {{name}}",
|
||||
"marketplace.install": "Zainstaluj",
|
||||
"marketplace.filter.installed": "Zainstalowano",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Kilka sesji jest uruchomionych i zostanie przerwanych",
|
||||
"marketplace.warning.installAnyway": "Zainstaluj mimo to",
|
||||
"marketplace.warning.cancel": "Anuluj",
|
||||
"marketplace.contribute.prompt": "Brakuje skilla, trybu lub serwera MCP?",
|
||||
"marketplace.contribute.prompt": "Brakuje umiejętności, agenta lub serwera MCP?",
|
||||
"marketplace.contribute.cta": "Wnieś wkład na GitHubie",
|
||||
"marketplace.migration.notice":
|
||||
"Tryby zostały zastąpione przez agentów. Jeśli wcześniej instalowałeś tryby z marketplace, usuń je i zainstaluj ponownie jako agenty, aby przejść na nowy format.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Wdróż",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Навыки",
|
||||
"marketplace.tab.mcpServers": "MCP-серверы",
|
||||
"marketplace.tab.modes": "Режимы",
|
||||
"marketplace.category.all": "Все",
|
||||
"marketplace.placeholder": "Будет реализовано",
|
||||
"marketplace.card.installed": "Установлено",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Отмена",
|
||||
"marketplace.remove.confirm.button": "Удалить",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Агенты",
|
||||
"marketplace.search": "Поиск...",
|
||||
"marketplace.filter.all": "Все элементы",
|
||||
"marketplace.filter.notInstalled": "Не установлено",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "глобально",
|
||||
"marketplace.remove.type.mcp": "MCP-сервер",
|
||||
"marketplace.remove.type.skill": "навык",
|
||||
"marketplace.remove.type.mode": "режим",
|
||||
"marketplace.remove.type.agent": "агент",
|
||||
"marketplace.remove.failed": "Не удалось удалить {{name}}",
|
||||
"marketplace.install": "Установить",
|
||||
"marketplace.filter.installed": "Установлено",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Несколько сеансов выполняются и будут прерваны",
|
||||
"marketplace.warning.installAnyway": "Установить в любом случае",
|
||||
"marketplace.warning.cancel": "Отмена",
|
||||
"marketplace.contribute.prompt": "Не хватает навыка, режима или MCP-сервера?",
|
||||
"marketplace.contribute.prompt": "Не хватает навыка, агента или MCP-сервера?",
|
||||
"marketplace.contribute.cta": "Внести вклад на GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Режимы заменены агентами. Если вы ранее устанавливали режимы из магазина, удалите их и переустановите как агенты, чтобы перейти на новый формат.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Реализовать",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "ทักษะ",
|
||||
"marketplace.tab.mcpServers": "เซิร์ฟเวอร์ MCP",
|
||||
"marketplace.tab.modes": "โหมด",
|
||||
"marketplace.category.all": "ทั้งหมด",
|
||||
"marketplace.placeholder": "ยังไม่ได้ดำเนินการ",
|
||||
"marketplace.card.installed": "ติดตั้งแล้ว",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "ยกเลิก",
|
||||
"marketplace.remove.confirm.button": "ลบ",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "เอเจนต์",
|
||||
"marketplace.search": "ค้นหา...",
|
||||
"marketplace.filter.all": "รายการทั้งหมด",
|
||||
"marketplace.filter.notInstalled": "ยังไม่ได้ติดตั้ง",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "โกลบอล",
|
||||
"marketplace.remove.type.mcp": "เซิร์ฟเวอร์ MCP",
|
||||
"marketplace.remove.type.skill": "ทักษะ",
|
||||
"marketplace.remove.type.mode": "โหมด",
|
||||
"marketplace.remove.type.agent": "เอเจนต์",
|
||||
"marketplace.remove.failed": "ไม่สามารถลบ {{name}} ได้",
|
||||
"marketplace.install": "ติดตั้ง",
|
||||
"marketplace.filter.installed": "ติดตั้งแล้ว",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "มีหลายเซสชันกำลังทำงานและจะถูกขัดจังหวะ",
|
||||
"marketplace.warning.installAnyway": "ติดตั้งต่อไป",
|
||||
"marketplace.warning.cancel": "ยกเลิก",
|
||||
"marketplace.contribute.prompt": "ไม่พบทักษะ โหมด หรือเซิร์ฟเวอร์ MCP ที่ต้องการ?",
|
||||
"marketplace.contribute.prompt": "ขาดสกิล เอเจนต์ หรือเซิร์ฟเวอร์ MCP?",
|
||||
"marketplace.contribute.cta": "ร่วมสมทบบน GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"โหมดถูกแทนที่ด้วยเอเจนต์แล้ว หากคุณเคยติดตั้งโหมดจาก marketplace กรุณาลบและติดตั้งใหม่เป็นเอเจนต์เพื่อย้ายไปยังรูปแบบใหม่",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "ดำเนินการ",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Yetenekler",
|
||||
"marketplace.tab.mcpServers": "MCP Sunucuları",
|
||||
"marketplace.tab.modes": "Modlar",
|
||||
"marketplace.category.all": "Tümü",
|
||||
"marketplace.placeholder": "Uygulanacak",
|
||||
"marketplace.card.installed": "Yüklendi",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "İptal",
|
||||
"marketplace.remove.confirm.button": "Kaldır",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Ajanlar",
|
||||
"marketplace.search": "Ara...",
|
||||
"marketplace.filter.all": "Tüm Öğeler",
|
||||
"marketplace.filter.notInstalled": "Yüklü Değil",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "genel",
|
||||
"marketplace.remove.type.mcp": "MCP sunucusu",
|
||||
"marketplace.remove.type.skill": "yetenek",
|
||||
"marketplace.remove.type.mode": "mod",
|
||||
"marketplace.remove.type.agent": "ajan",
|
||||
"marketplace.remove.failed": "{{name}} kaldırılamadı",
|
||||
"marketplace.install": "Yükle",
|
||||
"marketplace.filter.installed": "Yüklendi",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Birden fazla oturum çalışıyor ve kesintiye uğrayacak",
|
||||
"marketplace.warning.installAnyway": "Yine de yükle",
|
||||
"marketplace.warning.cancel": "İptal",
|
||||
"marketplace.contribute.prompt": "Bir yetenek, mod veya MCP sunucusu mu eksik?",
|
||||
"marketplace.contribute.prompt": "Bir yetenek, ajan veya MCP sunucusu mu eksik?",
|
||||
"marketplace.contribute.cta": "GitHub'da katkıda bulun",
|
||||
"marketplace.migration.notice":
|
||||
"Modlar agentlarla değiştirildi. Daha önce marketplace modları yüklediyseniz, yeni formata geçiş yapmak için bunları kaldırın ve agent olarak yeniden yükleyin.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Uygula",
|
||||
|
||||
Generated
+5
-3
@@ -19,7 +19,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "Навички",
|
||||
"marketplace.tab.mcpServers": "MCP-сервери",
|
||||
"marketplace.tab.modes": "Режими",
|
||||
"marketplace.category.all": "Усі",
|
||||
"marketplace.placeholder": "Буде реалізовано",
|
||||
"marketplace.card.installed": "Встановлено",
|
||||
@@ -45,6 +44,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "Скасувати",
|
||||
"marketplace.remove.confirm.button": "Видалити",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "Агенти",
|
||||
"marketplace.search": "Пошук...",
|
||||
"marketplace.filter.all": "Усі елементи",
|
||||
"marketplace.filter.notInstalled": "Не встановлено",
|
||||
@@ -60,7 +60,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "глобально",
|
||||
"marketplace.remove.type.mcp": "MCP-сервер",
|
||||
"marketplace.remove.type.skill": "навичка",
|
||||
"marketplace.remove.type.mode": "режим",
|
||||
"marketplace.remove.type.agent": "агент",
|
||||
"marketplace.remove.failed": "Не вдалося видалити {{name}}",
|
||||
"marketplace.install": "Встановити",
|
||||
"marketplace.filter.installed": "Встановлено",
|
||||
@@ -69,8 +69,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "Виконується кілька сесій, їх буде перервано",
|
||||
"marketplace.warning.installAnyway": "Встановити все одно",
|
||||
"marketplace.warning.cancel": "Скасувати",
|
||||
"marketplace.contribute.prompt": "Бракує навички, режиму або MCP-сервера?",
|
||||
"marketplace.contribute.prompt": "Бракує навички, агента або MCP-сервера?",
|
||||
"marketplace.contribute.cta": "Зробити внесок на GitHub",
|
||||
"marketplace.migration.notice":
|
||||
"Режими замінено агентами. Якщо ви раніше встановлювали режими з маркетплейсу, видаліть їх та перевстановіть як агенти для переходу на новий формат.",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "Реалізувати",
|
||||
|
||||
Generated
+5
-3
@@ -17,7 +17,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "技能",
|
||||
"marketplace.tab.mcpServers": "MCP 服务器",
|
||||
"marketplace.tab.modes": "模式",
|
||||
"marketplace.category.all": "全部",
|
||||
"marketplace.placeholder": "待实现",
|
||||
"marketplace.card.installed": "已安装",
|
||||
@@ -42,6 +41,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "取消",
|
||||
"marketplace.remove.confirm.button": "移除",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "智能体",
|
||||
"marketplace.search": "搜索...",
|
||||
"marketplace.filter.all": "所有项目",
|
||||
"marketplace.filter.notInstalled": "未安装",
|
||||
@@ -57,7 +57,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "全局",
|
||||
"marketplace.remove.type.mcp": "MCP 服务器",
|
||||
"marketplace.remove.type.skill": "技能",
|
||||
"marketplace.remove.type.mode": "模式",
|
||||
"marketplace.remove.type.agent": "智能体",
|
||||
"marketplace.remove.failed": "移除 {{name}} 失败",
|
||||
"marketplace.install": "安装",
|
||||
"marketplace.filter.installed": "已安装",
|
||||
@@ -66,8 +66,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "多个会话正在运行,将被中断",
|
||||
"marketplace.warning.installAnyway": "仍然安装",
|
||||
"marketplace.warning.cancel": "取消",
|
||||
"marketplace.contribute.prompt": "缺少技能、模式或 MCP 服务器?",
|
||||
"marketplace.contribute.prompt": "缺少技能、智能体或 MCP 服务器?",
|
||||
"marketplace.contribute.cta": "在 GitHub 上贡献",
|
||||
"marketplace.migration.notice":
|
||||
"模式已被智能体取代。如果您之前安装了市场中的模式,请将其删除并重新安装为智能体,以迁移到新格式。",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "实现",
|
||||
|
||||
Generated
+5
-3
@@ -17,7 +17,6 @@ export const dict = {
|
||||
// Marketplace
|
||||
"marketplace.tab.skills": "技能",
|
||||
"marketplace.tab.mcpServers": "MCP 伺服器",
|
||||
"marketplace.tab.modes": "模式",
|
||||
"marketplace.category.all": "全部",
|
||||
"marketplace.placeholder": "待實作",
|
||||
"marketplace.card.installed": "已安裝",
|
||||
@@ -42,6 +41,7 @@ export const dict = {
|
||||
"marketplace.remove.cancel": "取消",
|
||||
"marketplace.remove.confirm.button": "移除",
|
||||
"marketplace.tab.mcp": "MCP",
|
||||
"marketplace.tab.agents": "智能體",
|
||||
"marketplace.search": "搜尋...",
|
||||
"marketplace.filter.all": "所有項目",
|
||||
"marketplace.filter.notInstalled": "未安裝",
|
||||
@@ -57,7 +57,7 @@ export const dict = {
|
||||
"marketplace.scope.global": "全域",
|
||||
"marketplace.remove.type.mcp": "MCP 伺服器",
|
||||
"marketplace.remove.type.skill": "技能",
|
||||
"marketplace.remove.type.mode": "模式",
|
||||
"marketplace.remove.type.agent": "智能體",
|
||||
"marketplace.remove.failed": "移除 {{name}} 失敗",
|
||||
"marketplace.install": "安裝",
|
||||
"marketplace.filter.installed": "已安裝",
|
||||
@@ -66,8 +66,10 @@ export const dict = {
|
||||
"marketplace.warning.busyMany": "多個工作階段正在執行,將被中斷",
|
||||
"marketplace.warning.installAnyway": "仍然安裝",
|
||||
"marketplace.warning.cancel": "取消",
|
||||
"marketplace.contribute.prompt": "缺少技能、模式或 MCP 伺服器?",
|
||||
"marketplace.contribute.prompt": "缺少技能、智能體或 MCP 伺服器?",
|
||||
"marketplace.contribute.cta": "在 GitHub 上貢獻",
|
||||
"marketplace.migration.notice":
|
||||
"模式已被智能體取代。如果您之前安裝了市場中的模式,請將其刪除並重新安裝為智能體,以遷移到新格式。",
|
||||
|
||||
// Plan follow-up question shown after plan_exit
|
||||
"plan.followup.header": "實作",
|
||||
|
||||
@@ -48,7 +48,12 @@ import { GitOps } from "./agent-manager/GitOps"
|
||||
import { GitStatsPoller, type LocalStats } from "./agent-manager/GitStatsPoller"
|
||||
import { diffSummary as localDiffSummary } from "./agent-manager/local-diff"
|
||||
import { getWorkspaceRoot } from "./review-utils"
|
||||
import { MarketplaceService, type MarketplaceItem, type RemoveResult } from "./services/marketplace"
|
||||
import {
|
||||
MarketplaceService,
|
||||
type MarketplaceItem,
|
||||
type AgentMarketplaceItem,
|
||||
type RemoveResult,
|
||||
} from "./services/marketplace"
|
||||
import type { RemoteStatusService } from "./services/RemoteStatusService"
|
||||
import { resolveProjectDirectory } from "./project-directory"
|
||||
import { getBusySessionCount, seedSessionStatuses } from "./session-status"
|
||||
@@ -832,8 +837,8 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
console.error("[Kilo New] removeSkill failed:", e),
|
||||
)
|
||||
break
|
||||
case "removeMode":
|
||||
this.handleRemoveMode(message.name).catch((e) => console.error("[Kilo New] handleRemoveMode failed:", e))
|
||||
case "removeAgent":
|
||||
this.handleRemoveAgent(message.name).catch((e) => console.error("[Kilo New] handleRemoveAgent failed:", e))
|
||||
break
|
||||
case "removeMcp":
|
||||
this.handleRemoveMcp(message.name).catch((e) => console.error("[Kilo New] handleRemoveMcp failed:", e))
|
||||
@@ -1129,6 +1134,10 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
})
|
||||
break
|
||||
}
|
||||
case "dismissAgentMigrationBanner": {
|
||||
await this.extensionContext?.globalState.update("kilo.agentMigrationBannerDismissed", true)
|
||||
break
|
||||
}
|
||||
}
|
||||
})
|
||||
this.webviewMessageDisposable = watchFontSizeConfig((msg) => this.postMessage(msg), this.webviewMessageDisposable)
|
||||
@@ -1151,7 +1160,8 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
const mp = this.getMarketplace()
|
||||
const skills = await this.fetchCliSkills()
|
||||
const data = await mp.fetchData(workspace, skills)
|
||||
this.postMessage({ type: "marketplaceData", ...data })
|
||||
const dismissed = this.extensionContext?.globalState.get<boolean>("kilo.agentMigrationBannerDismissed") ?? false
|
||||
this.postMessage({ type: "marketplaceData", ...data, showAgentMigrationBanner: !dismissed })
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1945,32 +1955,28 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a custom mode via the CLI backend (deletes from disk + refreshes state).
|
||||
* The webview optimistically removes the mode from its list before this runs.
|
||||
* On failure, re-fetches agents so the webview reverts to the authoritative state.
|
||||
*/
|
||||
private async handleRemoveMode(name: string): Promise<void> {
|
||||
/** Remove an agent via CLI, falling back to kilo.json removal. */
|
||||
private async handleRemoveAgent(name: string): Promise<void> {
|
||||
if (!this.client) return
|
||||
|
||||
// 1. Try CLI removal (handles .md files and legacy .kilocodemodes)
|
||||
try {
|
||||
const dir = this.getWorkspaceDirectory()
|
||||
const result = await this.client.kilocode.removeAgent({ name, directory: dir })
|
||||
const result = await this.client.kilocode.removeAgent({ name, directory: this.getWorkspaceDirectory() })
|
||||
if (!result.error) {
|
||||
this.cachedAgentsMessage = null
|
||||
await this.fetchAndSendAgents()
|
||||
return
|
||||
}
|
||||
} catch {
|
||||
// CLI removal failed — agent may be in kilo.json instead
|
||||
// fall through to kilo.json removal
|
||||
}
|
||||
|
||||
// 2. Try removing from kilo.json (handles marketplace-installed modes)
|
||||
const stub = { id: name, type: "mode" as const, name, description: "", content: "" }
|
||||
const removed = await this.removeMarketplaceItemFromAllScopes(stub)
|
||||
if (!removed) {
|
||||
console.error("[Kilo New] KiloProvider: Failed to remove mode:", name)
|
||||
const stub: AgentMarketplaceItem = {
|
||||
id: name,
|
||||
type: "agent",
|
||||
name,
|
||||
description: "",
|
||||
content: { mode: "primary", description: "", prompt: "" },
|
||||
}
|
||||
if (!(await this.removeMarketplaceItemFromAllScopes(stub))) {
|
||||
console.error("[Kilo New] KiloProvider: Failed to remove agent:", name)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3066,6 +3072,7 @@ export class KiloProvider implements vscode.WebviewViewProvider, TelemetryProper
|
||||
await this.extensionContext?.globalState.update("variantSelections", undefined)
|
||||
await this.extensionContext?.globalState.update("recentModels", undefined)
|
||||
await this.extensionContext?.globalState.update("kilo.dismissedNotificationIds", undefined)
|
||||
await this.extensionContext?.globalState.update("kilo.agentMigrationBannerDismissed", undefined)
|
||||
|
||||
// Re-send all settings to the webview so the UI reflects the reset
|
||||
this.postMessage(buildAutocompleteSettingsMessage())
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { parse as parseYaml } from "yaml"
|
||||
import type { MarketplaceItem, McpMarketplaceItem, ModeMarketplaceItem, SkillMarketplaceItem, RawSkill } from "./types"
|
||||
import type { MarketplaceItem, McpMarketplaceItem, AgentMarketplaceItem, SkillMarketplaceItem, RawSkill } from "./types"
|
||||
|
||||
const BASE_URL = "https://api.kilo.ai/api/marketplace"
|
||||
const CACHE_TTL = 300_000
|
||||
@@ -76,18 +76,6 @@ export class MarketplaceApiClient {
|
||||
this.cache.set(key, { data, timestamp: Date.now() })
|
||||
}
|
||||
|
||||
private async fetchModes(): Promise<ModeMarketplaceItem[]> {
|
||||
const cached = this.getCached("modes")
|
||||
if (cached) return cached as ModeMarketplaceItem[]
|
||||
|
||||
const text = await fetchWithRetry(`${BASE_URL}/modes`)
|
||||
const parsed = parseResponse(text) as { items?: unknown[] }
|
||||
const items = (parsed.items ?? []) as Array<Record<string, unknown>>
|
||||
const result = items.map((item) => ({ ...item, type: "mode" as const }) as ModeMarketplaceItem)
|
||||
this.setCache("modes", result)
|
||||
return result
|
||||
}
|
||||
|
||||
private async fetchMcps(): Promise<McpMarketplaceItem[]> {
|
||||
const cached = this.getCached("mcps")
|
||||
if (cached) return cached as McpMarketplaceItem[]
|
||||
@@ -100,6 +88,18 @@ export class MarketplaceApiClient {
|
||||
return result
|
||||
}
|
||||
|
||||
private async fetchAgents(): Promise<AgentMarketplaceItem[]> {
|
||||
const cached = this.getCached("agents")
|
||||
if (cached) return cached as AgentMarketplaceItem[]
|
||||
|
||||
const text = await fetchWithRetry(`${BASE_URL}/agents`)
|
||||
const parsed = parseResponse(text) as { items?: unknown[] }
|
||||
const items = (parsed.items ?? []) as Array<Record<string, unknown>>
|
||||
const result = items.map((item) => ({ ...item, type: "agent" as const }) as AgentMarketplaceItem)
|
||||
this.setCache("agents", result)
|
||||
return result
|
||||
}
|
||||
|
||||
private async fetchSkills(): Promise<SkillMarketplaceItem[]> {
|
||||
const cached = this.getCached("skills")
|
||||
if (cached) return cached as SkillMarketplaceItem[]
|
||||
@@ -116,9 +116,9 @@ export class MarketplaceApiClient {
|
||||
const errors: string[] = []
|
||||
|
||||
const settled = await Promise.all([
|
||||
this.fetchModes().catch((err: unknown) => {
|
||||
errors.push(`Failed to fetch modes: ${err instanceof Error ? err.message : String(err)}`)
|
||||
return [] as ModeMarketplaceItem[]
|
||||
this.fetchAgents().catch((err: unknown) => {
|
||||
errors.push(`Failed to fetch agents: ${err instanceof Error ? err.message : String(err)}`)
|
||||
return [] as AgentMarketplaceItem[]
|
||||
}),
|
||||
this.fetchMcps().catch((err: unknown) => {
|
||||
errors.push(`Failed to fetch mcps: ${err instanceof Error ? err.message : String(err)}`)
|
||||
|
||||
@@ -16,6 +16,7 @@ export class InstallationDetector {
|
||||
/**
|
||||
* Detect installed marketplace items.
|
||||
*
|
||||
* Agents are detected from .kilo/agents/*.md files.
|
||||
* MCP servers and modes are detected from kilo.json config files.
|
||||
* Skills come from the CLI backend (via GET /skill), which is the
|
||||
* authoritative source — it scans all skill directories.
|
||||
@@ -23,12 +24,14 @@ export class InstallationDetector {
|
||||
async detect(workspace?: string, skills?: CliSkill[]): Promise<MarketplaceInstalledMetadata> {
|
||||
const project = workspace
|
||||
? Object.fromEntries([
|
||||
...(await this.detectAgentFiles("project", workspace)),
|
||||
...(await this.detectFromConfig(this.paths.configPath("project", workspace))),
|
||||
...this.skillEntries(skills, workspace, true),
|
||||
])
|
||||
: {}
|
||||
|
||||
const global = Object.fromEntries([
|
||||
...(await this.detectAgentFiles("global")),
|
||||
...(await this.detectFromConfig(this.paths.configPath("global"))),
|
||||
...this.skillEntries(skills, workspace, false),
|
||||
])
|
||||
@@ -52,6 +55,20 @@ export class InstallationDetector {
|
||||
.map((s) => [s.name, { type: "skill" }])
|
||||
}
|
||||
|
||||
/** Scan .kilo/agents/*.md files to detect installed marketplace agents. */
|
||||
private async detectAgentFiles(scope: "project" | "global", workspace?: string): Promise<Entry[]> {
|
||||
const dir = this.paths.agentsDir(scope, workspace)
|
||||
try {
|
||||
const files = await fs.readdir(dir)
|
||||
return files.filter((f) => f.endsWith(".md")).map((f) => [path.basename(f, ".md"), { type: "agent" }] as Entry)
|
||||
} catch (err) {
|
||||
if ((err as NodeJS.ErrnoException).code !== "ENOENT") {
|
||||
console.warn(`Failed to detect agent files from ${dir}:`, err)
|
||||
}
|
||||
return []
|
||||
}
|
||||
}
|
||||
|
||||
/** Read mcp and agent entries from a kilo.json config file. */
|
||||
private async detectFromConfig(filepath: string): Promise<Entry[]> {
|
||||
try {
|
||||
@@ -67,7 +84,7 @@ export class InstallationDetector {
|
||||
|
||||
if (parsed?.agent && typeof parsed.agent === "object") {
|
||||
for (const key of Object.keys(parsed.agent)) {
|
||||
entries.push([key, { type: "mode" }])
|
||||
entries.push([key, { type: "agent" }])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ export class MarketplaceService {
|
||||
|
||||
export type {
|
||||
MarketplaceItem,
|
||||
AgentMarketplaceItem,
|
||||
InstallMarketplaceItemOptions,
|
||||
MarketplaceDataResponse,
|
||||
InstallResult,
|
||||
|
||||
@@ -7,7 +7,7 @@ import type {
|
||||
MarketplaceItem,
|
||||
SkillMarketplaceItem,
|
||||
McpMarketplaceItem,
|
||||
ModeMarketplaceItem,
|
||||
AgentMarketplaceItem,
|
||||
McpInstallationMethod,
|
||||
InstallMarketplaceItemOptions,
|
||||
InstallResult,
|
||||
@@ -26,7 +26,7 @@ export class MarketplaceInstaller {
|
||||
const scope = options.target ?? "project"
|
||||
if (item.type === "skill") return this.installSkill(item, scope, workspace)
|
||||
if (item.type === "mcp") return this.installMcp(item, options, scope, workspace)
|
||||
return this.installMode(item, scope, workspace)
|
||||
return this.installAgent(item, scope, workspace)
|
||||
}
|
||||
|
||||
// ── MCP ─────────────────────────────────────────────────────────────
|
||||
@@ -81,10 +81,10 @@ export class MarketplaceInstaller {
|
||||
return normalizeMcpEntry(raw)
|
||||
}
|
||||
|
||||
// ── Mode ────────────────────────────────────────────────────────────
|
||||
// ── Agent ───────────────────────────────────────────────────────────
|
||||
|
||||
async installMode(
|
||||
item: ModeMarketplaceItem,
|
||||
async installAgent(
|
||||
item: AgentMarketplaceItem,
|
||||
scope: "project" | "global",
|
||||
workspace?: string,
|
||||
): Promise<InstallResult> {
|
||||
@@ -92,16 +92,72 @@ export class MarketplaceInstaller {
|
||||
return { success: false, slug: item.id, error: "No workspace directory for project-scope install" }
|
||||
}
|
||||
|
||||
const config = await this.readConfig(scope, workspace)
|
||||
if (!config.agent) config.agent = {}
|
||||
|
||||
if (config.agent[item.id]) {
|
||||
return { success: false, slug: item.id, error: "Mode already installed. Remove it first." }
|
||||
if (!isSafeId(item.id)) {
|
||||
return { success: false, slug: item.id, error: "Invalid agent id" }
|
||||
}
|
||||
|
||||
config.agent[item.id] = convertModeToAgent(item.content)
|
||||
const dir = this.paths.agentsDir(scope, workspace)
|
||||
await fs.mkdir(dir, { recursive: true })
|
||||
|
||||
const filepath = path.join(dir, `${item.id}.md`)
|
||||
if (!path.resolve(filepath).startsWith(path.resolve(dir))) {
|
||||
return { success: false, slug: item.id, error: "Invalid agent id" }
|
||||
}
|
||||
|
||||
try {
|
||||
await fs.access(filepath)
|
||||
return { success: false, slug: item.id, error: "Agent already installed. Remove it first." }
|
||||
} catch (err) {
|
||||
if ((err as NodeJS.ErrnoException).code !== "ENOENT") throw err
|
||||
}
|
||||
|
||||
const { prompt, ...front } = item.content
|
||||
const frontmatter = yaml.stringify(front).trimEnd()
|
||||
const content = `---\n${frontmatter}\n---\n\n${prompt}\n`
|
||||
await fs.writeFile(filepath, content, "utf-8")
|
||||
|
||||
// Migration: remove stale kilo.json agent entry with same id if present
|
||||
const config = await this.readConfig(scope, workspace)
|
||||
if (config.agent?.[item.id]) {
|
||||
delete (config.agent as Record<string, unknown>)[item.id]
|
||||
if (Object.keys(config.agent as object).length === 0) delete config.agent
|
||||
await this.writeConfig(scope, workspace, config)
|
||||
}
|
||||
|
||||
return { success: true, slug: item.id, filePath: filepath, line: 1 }
|
||||
}
|
||||
|
||||
async removeAgent(
|
||||
item: AgentMarketplaceItem,
|
||||
scope: "project" | "global",
|
||||
workspace?: string,
|
||||
): Promise<RemoveResult> {
|
||||
if (!isSafeId(item.id)) {
|
||||
return { success: false, slug: item.id, error: "Invalid agent id" }
|
||||
}
|
||||
|
||||
const dir = this.paths.agentsDir(scope, workspace)
|
||||
const filepath = path.join(dir, `${item.id}.md`)
|
||||
if (!path.resolve(filepath).startsWith(path.resolve(dir))) {
|
||||
return { success: false, slug: item.id, error: "Invalid agent id" }
|
||||
}
|
||||
|
||||
try {
|
||||
await fs.unlink(filepath)
|
||||
} catch (err) {
|
||||
if ((err as NodeJS.ErrnoException).code !== "ENOENT") {
|
||||
return { success: false, slug: item.id, error: String(err) }
|
||||
}
|
||||
}
|
||||
|
||||
// Also clean up any stale kilo.json agent entry
|
||||
const config = await this.readConfig(scope, workspace)
|
||||
if (config.agent?.[item.id]) {
|
||||
delete (config.agent as Record<string, unknown>)[item.id]
|
||||
if (Object.keys(config.agent as object).length === 0) delete config.agent
|
||||
await this.writeConfig(scope, workspace, config)
|
||||
}
|
||||
|
||||
await this.writeConfig(scope, workspace, config)
|
||||
return { success: true, slug: item.id }
|
||||
}
|
||||
|
||||
@@ -191,7 +247,7 @@ export class MarketplaceInstaller {
|
||||
async remove(item: MarketplaceItem, scope: "project" | "global", workspace?: string): Promise<RemoveResult> {
|
||||
if (item.type === "skill") return this.removeSkill(item, scope, workspace)
|
||||
if (item.type === "mcp") return this.removeMcp(item, scope, workspace)
|
||||
return this.removeMode(item, scope, workspace)
|
||||
return this.removeAgent(item, scope, workspace)
|
||||
}
|
||||
|
||||
async removeMcp(item: McpMarketplaceItem, scope: "project" | "global", workspace?: string): Promise<RemoveResult> {
|
||||
@@ -205,17 +261,6 @@ export class MarketplaceInstaller {
|
||||
return { success: true, slug: item.id }
|
||||
}
|
||||
|
||||
async removeMode(item: ModeMarketplaceItem, scope: "project" | "global", workspace?: string): Promise<RemoveResult> {
|
||||
const config = await this.readConfig(scope, workspace)
|
||||
if (!config.agent?.[item.id]) {
|
||||
return { success: true, slug: item.id }
|
||||
}
|
||||
delete config.agent[item.id]
|
||||
if (Object.keys(config.agent).length === 0) delete config.agent
|
||||
await this.writeConfig(scope, workspace, config)
|
||||
return { success: true, slug: item.id }
|
||||
}
|
||||
|
||||
async removeSkill(
|
||||
item: SkillMarketplaceItem,
|
||||
scope: "project" | "global",
|
||||
@@ -318,47 +363,6 @@ function isSafeId(id: string): boolean {
|
||||
return /^[\w\-@.]+$/.test(id)
|
||||
}
|
||||
|
||||
// Group name → opencode permission key mapping (mirrors ModesMigrator)
|
||||
const GROUP_PERMISSIONS: Record<string, string> = {
|
||||
read: "read",
|
||||
edit: "edit",
|
||||
browser: "bash",
|
||||
command: "bash",
|
||||
mcp: "mcp",
|
||||
}
|
||||
const ALL_PERMISSIONS = ["read", "edit", "bash", "mcp"]
|
||||
|
||||
function convertModeToAgent(content: string): Record<string, unknown> {
|
||||
const mode = yaml.parse(content) as Record<string, unknown>
|
||||
const groups = (mode.groups ?? []) as Array<string | [string, Record<string, unknown>]>
|
||||
|
||||
const permission: Record<string, unknown> = {}
|
||||
const allowed = new Set<string>()
|
||||
for (const group of groups) {
|
||||
if (typeof group === "string") {
|
||||
const key = GROUP_PERMISSIONS[group] ?? group
|
||||
allowed.add(key)
|
||||
permission[key] = "allow"
|
||||
} else if (Array.isArray(group)) {
|
||||
const [name, cfg] = group
|
||||
const key = GROUP_PERMISSIONS[name] ?? name
|
||||
allowed.add(key)
|
||||
permission[key] = cfg?.fileRegex ? { [String(cfg.fileRegex)]: "allow", "*": "deny" } : "allow"
|
||||
}
|
||||
}
|
||||
for (const perm of ALL_PERMISSIONS) {
|
||||
if (!allowed.has(perm)) permission[perm] = "deny"
|
||||
}
|
||||
|
||||
const prompt = [mode.roleDefinition, mode.customInstructions].filter(Boolean).join("\n\n")
|
||||
return {
|
||||
mode: "primary",
|
||||
description: mode.description ?? mode.whenToUse ?? mode.name,
|
||||
prompt,
|
||||
permission,
|
||||
}
|
||||
}
|
||||
|
||||
function escapeJsonValue(raw: string): string {
|
||||
return raw
|
||||
.replace(/\\/g, "\\\\")
|
||||
|
||||
@@ -17,6 +17,12 @@ export class MarketplacePaths {
|
||||
return path.join(globalConfigDir(), "kilo.json")
|
||||
}
|
||||
|
||||
/** Agent install directory (where marketplace agents are written as .md files). */
|
||||
agentsDir(scope: "project" | "global", workspace?: string): string {
|
||||
if (scope === "project") return path.join(workspace!, ".kilo", "agents")
|
||||
return path.join(globalConfigDir(), "agents")
|
||||
}
|
||||
|
||||
/** Skill install directory (where the marketplace installer writes to). */
|
||||
skillsDir(scope: "project" | "global", workspace?: string): string {
|
||||
if (scope === "project") return path.join(workspace!, ".kilo", "skills")
|
||||
|
||||
@@ -29,9 +29,17 @@ export interface McpMarketplaceItem extends MarketplaceItemBase {
|
||||
parameters?: McpParameter[]
|
||||
}
|
||||
|
||||
export interface ModeMarketplaceItem extends MarketplaceItemBase {
|
||||
type: "mode"
|
||||
content: string
|
||||
export interface AgentContent {
|
||||
mode: "primary" | "subagent" | "all"
|
||||
description: string
|
||||
prompt: string
|
||||
options?: Record<string, unknown>
|
||||
permission?: Record<string, unknown>
|
||||
}
|
||||
|
||||
export interface AgentMarketplaceItem extends MarketplaceItemBase {
|
||||
type: "agent"
|
||||
content: AgentContent
|
||||
}
|
||||
|
||||
export interface RawSkill {
|
||||
@@ -51,7 +59,7 @@ export interface SkillMarketplaceItem extends MarketplaceItemBase {
|
||||
displayCategory: string
|
||||
}
|
||||
|
||||
export type MarketplaceItem = McpMarketplaceItem | ModeMarketplaceItem | SkillMarketplaceItem
|
||||
export type MarketplaceItem = McpMarketplaceItem | AgentMarketplaceItem | SkillMarketplaceItem
|
||||
|
||||
export interface InstallMarketplaceItemOptions {
|
||||
target?: "global" | "project"
|
||||
|
||||
@@ -23,7 +23,7 @@ interface Props {
|
||||
items: MarketplaceItem[]
|
||||
metadata: MarketplaceInstalledMetadata
|
||||
fetching: boolean
|
||||
type: "mcp" | "mode" | "skill"
|
||||
type: "mcp" | "agent" | "skill"
|
||||
searchPlaceholder: string
|
||||
emptyMessage: string
|
||||
onInstall: (item: MarketplaceItem) => void
|
||||
|
||||
@@ -9,7 +9,7 @@ import { useDialog } from "@kilocode/kilo-ui/context/dialog"
|
||||
import type {
|
||||
MarketplaceItem,
|
||||
McpMarketplaceItem,
|
||||
ModeMarketplaceItem,
|
||||
AgentMarketplaceItem,
|
||||
SkillMarketplaceItem,
|
||||
MarketplaceInstalledMetadata,
|
||||
} from "../../types/marketplace"
|
||||
@@ -31,12 +31,13 @@ export const MarketplaceView = () => {
|
||||
const [metadata, setMetadata] = createSignal<MarketplaceInstalledMetadata>(EMPTY_METADATA)
|
||||
const [fetching, setFetching] = createSignal(true)
|
||||
const [errors, setErrors] = createSignal<string[]>([])
|
||||
const [tab, setTab] = createSignal("mcp")
|
||||
const [tab, setTab] = createSignal("agent")
|
||||
const [pending, setPending] = createSignal<{ item: MarketplaceItem; scope: "project" | "global" } | null>(null)
|
||||
const [showMigrationBanner, setShowMigrationBanner] = createSignal(false)
|
||||
|
||||
const skills = createMemo(() => items().filter((i): i is SkillMarketplaceItem => i.type === "skill"))
|
||||
const mcps = createMemo(() => items().filter((i): i is McpMarketplaceItem => i.type === "mcp"))
|
||||
const modes = createMemo(() => items().filter((i): i is ModeMarketplaceItem => i.type === "mode"))
|
||||
const agents = createMemo(() => items().filter((i): i is AgentMarketplaceItem => i.type === "agent"))
|
||||
|
||||
const fetchData = () => {
|
||||
setFetching(true)
|
||||
@@ -51,6 +52,7 @@ export const MarketplaceView = () => {
|
||||
setMetadata(msg.marketplaceInstalledMetadata ?? EMPTY_METADATA)
|
||||
setErrors(msg.errors ?? [])
|
||||
setFetching(false)
|
||||
setShowMigrationBanner(msg.showAgentMigrationBanner ?? false)
|
||||
}
|
||||
if (msg.type === "marketplaceRemoveResult") {
|
||||
const removed = pending()
|
||||
@@ -138,6 +140,11 @@ export const MarketplaceView = () => {
|
||||
setErrors((prev) => prev.filter((_, i) => i !== idx))
|
||||
}
|
||||
|
||||
const dismissMigrationBanner = () => {
|
||||
setShowMigrationBanner(false)
|
||||
vscode.postMessage({ type: "dismissAgentMigrationBanner" })
|
||||
}
|
||||
|
||||
return (
|
||||
<div class="marketplace-view">
|
||||
<Show when={errors().length > 0}>
|
||||
@@ -153,18 +160,26 @@ export const MarketplaceView = () => {
|
||||
|
||||
<Tabs value={tab()} onChange={setTab} class="marketplace-tabs-root">
|
||||
<Tabs.List>
|
||||
<Tabs.Trigger value="agent">{t("marketplace.tab.agents")}</Tabs.Trigger>
|
||||
<Tabs.Trigger value="mcp">{t("marketplace.tab.mcp")}</Tabs.Trigger>
|
||||
<Tabs.Trigger value="mode">{t("marketplace.tab.modes")}</Tabs.Trigger>
|
||||
<Tabs.Trigger value="skill">{t("marketplace.tab.skills")}</Tabs.Trigger>
|
||||
</Tabs.List>
|
||||
|
||||
<div class="marketplace-content">
|
||||
<Tabs.Content value="mcp">
|
||||
<Tabs.Content value="agent">
|
||||
<Show when={showMigrationBanner()}>
|
||||
<Card variant="info" class="marketplace-error-banner">
|
||||
<span>{t("marketplace.migration.notice")}</span>
|
||||
<Button variant="ghost" size="small" onClick={dismissMigrationBanner}>
|
||||
{t("marketplace.error.dismiss")}
|
||||
</Button>
|
||||
</Card>
|
||||
</Show>
|
||||
<MarketplaceListView
|
||||
items={mcps()}
|
||||
items={agents()}
|
||||
metadata={metadata()}
|
||||
fetching={fetching()}
|
||||
type="mcp"
|
||||
type="agent"
|
||||
searchPlaceholder={t("marketplace.search")}
|
||||
emptyMessage={t("marketplace.empty")}
|
||||
onInstall={handleInstall}
|
||||
@@ -172,12 +187,12 @@ export const MarketplaceView = () => {
|
||||
/>
|
||||
</Tabs.Content>
|
||||
|
||||
<Tabs.Content value="mode">
|
||||
<Tabs.Content value="mcp">
|
||||
<MarketplaceListView
|
||||
items={modes()}
|
||||
items={mcps()}
|
||||
metadata={metadata()}
|
||||
fetching={fetching()}
|
||||
type="mode"
|
||||
type="mcp"
|
||||
searchPlaceholder={t("marketplace.search")}
|
||||
emptyMessage={t("marketplace.empty")}
|
||||
onInstall={handleInstall}
|
||||
|
||||
@@ -15,20 +15,24 @@ export const RemoveDialog = (props: Props) => {
|
||||
|
||||
const typeName = () => {
|
||||
if (props.item.type === "mcp") return t("marketplace.remove.type.mcp")
|
||||
if (props.item.type === "mode") return t("marketplace.remove.type.mode")
|
||||
if (props.item.type === "agent") return t("marketplace.remove.type.agent")
|
||||
return t("marketplace.remove.type.skill")
|
||||
}
|
||||
|
||||
return (
|
||||
<Dialog title={t("marketplace.remove.title", { name: props.item.name })} fit>
|
||||
<p>{t("marketplace.remove.confirm", { type: typeName(), scope: t(`marketplace.scope.${props.scope}`) })}</p>
|
||||
<div class="marketplace-remove-actions">
|
||||
<Button variant="secondary" onClick={props.onClose}>
|
||||
{t("marketplace.remove.cancel")}
|
||||
</Button>
|
||||
<Button variant="primary" class="danger-btn" onClick={props.onConfirm}>
|
||||
{t("marketplace.remove.confirm.button")}
|
||||
</Button>
|
||||
<div class="dialog-confirm-body">
|
||||
<span>
|
||||
{t("marketplace.remove.confirm", { type: typeName(), scope: t(`marketplace.scope.${props.scope}`) })}
|
||||
</span>
|
||||
<div class="dialog-confirm-actions">
|
||||
<Button variant="secondary" onClick={props.onClose}>
|
||||
{t("marketplace.remove.cancel")}
|
||||
</Button>
|
||||
<Button variant="primary" class="danger-btn" onClick={props.onConfirm}>
|
||||
{t("marketplace.remove.confirm.button")}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
</Dialog>
|
||||
)
|
||||
|
||||
@@ -200,9 +200,9 @@ const AgentBehaviourTab: Component = () => {
|
||||
|
||||
const confirmRemoveMode = (agent: AgentInfo) => {
|
||||
dialog.show(() => (
|
||||
<Dialog title={language.t("settings.agentBehaviour.removeMode.title")} fit>
|
||||
<Dialog title={language.t("settings.agentBehaviour.removeAgent.title")} fit>
|
||||
<div class="dialog-confirm-body">
|
||||
<span>{language.t("settings.agentBehaviour.removeMode.confirm", { name: agent.name })}</span>
|
||||
<span>{language.t("settings.agentBehaviour.removeAgent.confirm", { name: agent.name })}</span>
|
||||
<div class="dialog-confirm-actions">
|
||||
<Button variant="ghost" size="large" onClick={() => dialog.close()}>
|
||||
{language.t("common.cancel")}
|
||||
@@ -216,7 +216,7 @@ const AgentBehaviourTab: Component = () => {
|
||||
// to prevent the reactive list re-render from firing click handlers
|
||||
// on shifted list items while the dialog overlay is still present.
|
||||
setTimeout(() => {
|
||||
session.removeMode(agent.name)
|
||||
session.removeAgent(agent.name)
|
||||
// If we were editing this mode, go back to list
|
||||
if (editingAgent() === agent.name) {
|
||||
setAgentView("list")
|
||||
@@ -225,7 +225,7 @@ const AgentBehaviourTab: Component = () => {
|
||||
}, 150)
|
||||
}}
|
||||
>
|
||||
{language.t("settings.agentBehaviour.removeMode.button")}
|
||||
{language.t("settings.agentBehaviour.removeAgent.button")}
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -357,7 +357,7 @@ const AgentBehaviourTab: Component = () => {
|
||||
color: "var(--text-weak-base, var(--vscode-descriptionForeground))",
|
||||
}}
|
||||
>
|
||||
{language.t("settings.agentBehaviour.noModesFound")}
|
||||
{language.t("settings.agentBehaviour.noAgentsFound")}
|
||||
</div>
|
||||
</Card>
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ interface SessionContextValue {
|
||||
// Agent/mode selection (per-session)
|
||||
agents: Accessor<AgentInfo[]>
|
||||
allAgents: Accessor<AgentInfo[]>
|
||||
removeMode: (name: string) => void
|
||||
removeAgent: (name: string) => void
|
||||
removeMcp: (name: string) => void
|
||||
|
||||
// MCP server status (runtime connect/disconnect)
|
||||
@@ -349,7 +349,7 @@ export const SessionProvider: ParentComponent = (props) => {
|
||||
// Skills loaded from the CLI backend
|
||||
const [skills, setSkills] = createSignal<SkillInfo[]>([])
|
||||
|
||||
const removeMode = (name: string) => {
|
||||
const removeAgent = (name: string) => {
|
||||
setAgents((prev) => prev.filter((a) => a.name !== name))
|
||||
|
||||
// Clear stale selections so selectedAgentName() falls back to the default
|
||||
@@ -365,7 +365,7 @@ export const SessionProvider: ParentComponent = (props) => {
|
||||
}),
|
||||
)
|
||||
|
||||
vscode.postMessage({ type: "removeMode", name })
|
||||
vscode.postMessage({ type: "removeAgent", name })
|
||||
}
|
||||
|
||||
const removeMcp = (name: string) => {
|
||||
@@ -2487,7 +2487,7 @@ export const SessionProvider: ParentComponent = (props) => {
|
||||
skills,
|
||||
refreshSkills,
|
||||
removeSkill,
|
||||
removeMode,
|
||||
removeAgent,
|
||||
removeMcp,
|
||||
mcpStatus,
|
||||
mcpLoading,
|
||||
|
||||
+5
-6
@@ -1176,7 +1176,6 @@ export const dict = {
|
||||
'يتم التحكم في Telemetry بواسطة إعداد Telemetry المدمج في VS Code. لتعطيله، انتقل إلى الإعدادات > Telemetry > Telemetry Level واضبطه على "off". أعد تشغيل VS Code لتطبيق التغيير.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "فتح إعدادات Telemetry",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "الأوضاع",
|
||||
"settings.agentBehaviour.subtab.agents": "الوكلاء",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "خوادم MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "القواعد",
|
||||
@@ -1288,7 +1287,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"لم يتم العثور على مهارات. أضف مسارات مجلدات أو عناوين URL أدناه لإتاحة المهارات.",
|
||||
"settings.agentBehaviour.availableModes": "الأوضاع المخصصة المتاحة",
|
||||
"settings.agentBehaviour.noModesFound": "لم يتم العثور على أوضاع.",
|
||||
"settings.agentBehaviour.noAgentsFound": "لم يتم العثور على وكلاء.",
|
||||
"settings.agentBehaviour.createMode": "إنشاء وضع جديد",
|
||||
"settings.agentBehaviour.createMode.name": "الاسم",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "مثال: reviewer",
|
||||
@@ -1331,10 +1330,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "نسخ الأذونات كـ JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"يتم تقييم القواعد بالترتيب — القاعدة المطابقة الأخيرة هي التي تُطبق. هذه هي مجموعة القواعد المحلولة من خلفية CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "إزالة الوضع",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'هل تريد إزالة الوضع "{{name}}"؟ سيؤدي هذا إلى تعطيل الوضع عن طريق تحديث الإعدادات.',
|
||||
"settings.agentBehaviour.removeMode.button": "إزالة",
|
||||
"settings.agentBehaviour.removeAgent.title": "إزالة الوكيل",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'هل تريد إزالة الوكيل "{{name}}"؟ سيؤدي هذا إلى تعطيله عن طريق تحديث الإعدادات.',
|
||||
"settings.agentBehaviour.removeAgent.button": "إزالة",
|
||||
"settings.agentBehaviour.removeMcp.title": "إزالة خادم MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm": 'هل تريد إزالة خادم MCP "{{name}}"؟ سيؤدي هذا إلى إزالته من الإعدادات.',
|
||||
"settings.agentBehaviour.removeMcp.button": "إزالة",
|
||||
|
||||
+5
-6
@@ -1200,7 +1200,6 @@ export const dict = {
|
||||
'A telemetria é controlada pela configuração de telemetria integrada do VS Code. Para desativá-la, vá para Configurações > Telemetria > Nível de Telemetria e defina como "off". Reinicie o VS Code para aplicar a alteração.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Abrir Configurações de Telemetria",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modos",
|
||||
"settings.agentBehaviour.subtab.agents": "Agentes",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "Servidores MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "Regras",
|
||||
@@ -1319,7 +1318,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nenhuma habilidade encontrada. Adicione caminhos de pastas ou URLs abaixo para disponibilizar habilidades.",
|
||||
"settings.agentBehaviour.availableModes": "Modos personalizados disponíveis",
|
||||
"settings.agentBehaviour.noModesFound": "Nenhum modo encontrado.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Nenhum agente encontrado.",
|
||||
"settings.agentBehaviour.createMode": "Criar Novo Modo",
|
||||
"settings.agentBehaviour.createMode.name": "Nome",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "ex: reviewer",
|
||||
@@ -1363,10 +1362,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Copiar permissões como JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"As regras são avaliadas em ordem — a última regra correspondente vence. Este é o conjunto de regras resolvido do backend da CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "Remover modo",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Remover o modo "{{name}}"? Isso desativará o modo atualizando sua configuração.',
|
||||
"settings.agentBehaviour.removeMode.button": "Remover",
|
||||
"settings.agentBehaviour.removeAgent.title": "Remover agente",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Remover agente "{{name}}"? Isso irá desativá-lo atualizando sua configuração.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Remover",
|
||||
"settings.agentBehaviour.removeMcp.title": "Remover servidor MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Remover o servidor MCP "{{name}}"? Isso o removerá da sua configuração.',
|
||||
|
||||
+5
-6
@@ -1203,7 +1203,6 @@ export const dict = {
|
||||
'Telemetrija je kontrolisana ugrađenom postavkom za telemetriju u VS Code-u. Da biste je onemogućili, idite na Postavke > Telemetrija > Nivo telemetrije i postavite na "off". Ponovo pokrenite VS Code da biste primijenili promjenu.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Otvori postavke telemetrije",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modovi",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenti",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP serveri",
|
||||
"settings.agentBehaviour.subtab.rules": "Pravila",
|
||||
@@ -1318,7 +1317,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nisu pronađene vještine. Dodajte putanje mapa ili URL-ove ispod kako biste učinili vještine dostupnim.",
|
||||
"settings.agentBehaviour.availableModes": "Dostupni prilagođeni modovi",
|
||||
"settings.agentBehaviour.noModesFound": "Nisu pronađeni modovi.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Nisu pronađeni agenti.",
|
||||
"settings.agentBehaviour.createMode": "Kreiraj novi mod",
|
||||
"settings.agentBehaviour.createMode.name": "Naziv",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "npr. reviewer",
|
||||
@@ -1362,10 +1361,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Kopiraj dozvole kao JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Pravila se evaluiraju po redoslijedu — zadnje pravilo koje se podudara pobjeđuje. Ovo je riješeni skup pravila iz CLI backenda.",
|
||||
"settings.agentBehaviour.removeMode.title": "Ukloni mod",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Ukloniti mod "{{name}}"? Ovo će onemogućiti mod ažuriranjem vaše konfiguracije.',
|
||||
"settings.agentBehaviour.removeMode.button": "Ukloni",
|
||||
"settings.agentBehaviour.removeAgent.title": "Ukloni agenta",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Ukloniti agenta "{{name}}"? Ovo će ga onemogućiti ažuriranjem konfiguracije.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Ukloni",
|
||||
"settings.agentBehaviour.removeMcp.title": "Ukloni MCP server",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Ukloniti MCP server "{{name}}"? Ovo će ga ukloniti iz vaše konfiguracije.',
|
||||
|
||||
+5
-6
@@ -1196,7 +1196,6 @@ export const dict = {
|
||||
'Telemetri styres af VS Codes indbyggede telemetriindstilling. For at deaktivere den, gå til Indstillinger > Telemetry > Telemetry Level og sæt den til "off". Genstart VS Code for at anvende ændringen.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Åbn telemetriindstillinger",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Tilstande",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenter",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP-servere",
|
||||
"settings.agentBehaviour.subtab.rules": "Regler",
|
||||
@@ -1310,7 +1309,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Ingen skills fundet. Tilføj skill-mappestier eller URL'er nedenfor for at gøre skills tilgængelige.",
|
||||
"settings.agentBehaviour.availableModes": "Tilgængelige brugerdefinerede tilstande",
|
||||
"settings.agentBehaviour.noModesFound": "Ingen tilstande fundet.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Ingen agenter fundet.",
|
||||
"settings.agentBehaviour.createMode": "Opret ny tilstand",
|
||||
"settings.agentBehaviour.createMode.name": "Navn",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "f.eks. reviewer",
|
||||
@@ -1353,10 +1352,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Kopiér tilladelser som JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Reglerne evalueres i rækkefølge — den sidst matchende regel vinder. Dette er det endelige regelsæt fra CLI-backenden.",
|
||||
"settings.agentBehaviour.removeMode.title": "Fjern tilstand",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Vil du fjerne tilstanden "{{name}}"? Dette vil deaktivere tilstanden ved at opdatere din konfiguration.',
|
||||
"settings.agentBehaviour.removeMode.button": "Fjern",
|
||||
"settings.agentBehaviour.removeAgent.title": "Fjern agent",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Fjern agent "{{name}}"? Dette deaktiverer agenten ved at opdatere din konfiguration.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Fjern",
|
||||
"settings.agentBehaviour.removeMcp.title": "Fjern MCP-server",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Vil du fjerne MCP-serveren "{{name}}"? Dette vil fjerne den fra din konfiguration.',
|
||||
|
||||
+5
-6
@@ -1214,7 +1214,6 @@ export const dict = {
|
||||
'Die Telemetrie wird durch die integrierte Telemetrie-Einstellung von VS Code gesteuert. Um sie zu deaktivieren, gehen Sie zu Einstellungen > Telemetrie > Telemetrie-Stufe und setzen Sie diese auf "off". Starten Sie VS Code neu, um die Änderung zu übernehmen.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Telemetrie-Einstellungen öffnen",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modi",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenten",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP-Server",
|
||||
"settings.agentBehaviour.subtab.rules": "Regeln",
|
||||
@@ -1334,7 +1333,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Keine Skills gefunden. Fügen Sie unten Skill-Ordnerpfade oder URLs hinzu, um Skills verfügbar zu machen.",
|
||||
"settings.agentBehaviour.availableModes": "Verfügbare benutzerdefinierte Modi",
|
||||
"settings.agentBehaviour.noModesFound": "Keine Modi gefunden.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Keine Agenten gefunden.",
|
||||
"settings.agentBehaviour.createMode": "Neuen Modus erstellen",
|
||||
"settings.agentBehaviour.createMode.name": "Name",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "z.B. reviewer",
|
||||
@@ -1379,10 +1378,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Berechtigungen als JSON kopieren",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Regeln werden der Reihe nach ausgewertet — die letzte übereinstimmende Regel gewinnt. Dies ist das aufgelöste Regelwerk vom CLI-Backend.",
|
||||
"settings.agentBehaviour.removeMode.title": "Modus entfernen",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Modus "{{name}}" entfernen? Dadurch wird der Modus durch Aktualisierung Ihrer Konfiguration deaktiviert.',
|
||||
"settings.agentBehaviour.removeMode.button": "Entfernen",
|
||||
"settings.agentBehaviour.removeAgent.title": "Agent entfernen",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Agent "{{name}}" entfernen? Dies deaktiviert den Agenten durch Aktualisierung der Konfiguration.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Entfernen",
|
||||
"settings.agentBehaviour.removeMcp.title": "MCP-Server entfernen",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'MCP-Server "{{name}}" entfernen? Dadurch wird er aus Ihrer Konfiguration entfernt.',
|
||||
|
||||
@@ -1179,7 +1179,6 @@ export const dict = {
|
||||
'Telemetry is controlled by VS Code\'s built-in telemetry setting. To disable it, go to Settings > Telemetry > Telemetry Level and set it to "off". Restart VS Code to apply the change.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Open Telemetry Settings",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modes",
|
||||
"settings.agentBehaviour.subtab.agents": "Agents",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP Servers",
|
||||
"settings.agentBehaviour.subtab.rules": "Rules",
|
||||
@@ -1298,11 +1297,11 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"No skills discovered. Add skill folder paths or URLs below to make skills available.",
|
||||
"settings.agentBehaviour.availableModes": "Available Custom Modes",
|
||||
"settings.agentBehaviour.noModesFound": "No modes found.",
|
||||
"settings.agentBehaviour.removeMode.title": "Remove mode",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Remove mode "{{name}}"? This will disable the mode by updating your config.',
|
||||
"settings.agentBehaviour.removeMode.button": "Remove",
|
||||
"settings.agentBehaviour.noAgentsFound": "No agents found.",
|
||||
"settings.agentBehaviour.removeAgent.title": "Remove agent",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Remove agent "{{name}}"? This will disable the agent by updating your config.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Remove",
|
||||
"settings.agentBehaviour.skillPaths": "Skill Folder Paths",
|
||||
"settings.agentBehaviour.skillUrls": "Skill URLs",
|
||||
"settings.agentBehaviour.removeSkill.title": "Remove skill",
|
||||
|
||||
+5
-6
@@ -1208,7 +1208,6 @@ export const dict = {
|
||||
'La telemetría está controlada por la configuración de telemetría integrada de VS Code. Para desactivarla, ve a Configuración > Telemetría > Nivel de telemetría y establécelo en "off". Reinicia VS Code para aplicar el cambio.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Abrir configuración de telemetría",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modos",
|
||||
"settings.agentBehaviour.subtab.agents": "Agentes",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "Servidores MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "Reglas",
|
||||
@@ -1325,7 +1324,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"No se encontraron habilidades. Agregue rutas de carpetas o URLs abajo para hacer disponibles las habilidades.",
|
||||
"settings.agentBehaviour.availableModes": "Modos personalizados disponibles",
|
||||
"settings.agentBehaviour.noModesFound": "No se encontraron modos.",
|
||||
"settings.agentBehaviour.noAgentsFound": "No se encontraron agentes.",
|
||||
"settings.agentBehaviour.createMode": "Crear nuevo modo",
|
||||
"settings.agentBehaviour.createMode.name": "Nombre",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "ej. reviewer",
|
||||
@@ -1371,10 +1370,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Copiar permisos como JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Las reglas se evalúan en orden — gana la última regla coincidente. Este es el conjunto de reglas resuelto desde el backend de la CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "Eliminar modo",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'¿Eliminar el modo "{{name}}"? Esto desactivará el modo actualizando su configuración.',
|
||||
"settings.agentBehaviour.removeMode.button": "Eliminar",
|
||||
"settings.agentBehaviour.removeAgent.title": "Eliminar agente",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'¿Eliminar agente "{{name}}"? Esto lo desactivará actualizando tu configuración.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Eliminar",
|
||||
"settings.agentBehaviour.removeMcp.title": "Eliminar servidor MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'¿Eliminar el servidor MCP "{{name}}"? Esto lo eliminará de su configuración.',
|
||||
|
||||
+5
-6
@@ -1218,7 +1218,6 @@ export const dict = {
|
||||
'La télémétrie est contrôlée par le paramètre de télémétrie intégré de VS Code. Pour la désactiver, allez dans Paramètres > Télémétrie > Niveau de télémétrie et réglez-le sur "off". Redémarrez VS Code pour appliquer la modification.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Ouvrir les paramètres de télémétrie",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modes",
|
||||
"settings.agentBehaviour.subtab.agents": "Agents",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "Serveurs MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "Règles",
|
||||
@@ -1338,7 +1337,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Aucune compétence découverte. Ajoutez des chemins de dossiers ou des URLs ci-dessous pour rendre les compétences disponibles.",
|
||||
"settings.agentBehaviour.availableModes": "Modes personnalisés disponibles",
|
||||
"settings.agentBehaviour.noModesFound": "Aucun mode trouvé.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Aucun agent trouvé.",
|
||||
"settings.agentBehaviour.createMode": "Créer un nouveau mode",
|
||||
"settings.agentBehaviour.createMode.name": "Nom",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "ex : reviewer",
|
||||
@@ -1385,10 +1384,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Copier les permissions en JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Les règles sont évaluées dans l'ordre — la dernière règle correspondante l'emporte. Il s'agit de l'ensemble de règles résolu depuis le backend CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "Supprimer le mode",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Supprimer le mode "{{name}}" ? Cela désactivera le mode en mettant à jour votre configuration.',
|
||||
"settings.agentBehaviour.removeMode.button": "Supprimer",
|
||||
"settings.agentBehaviour.removeAgent.title": "Supprimer l'agent",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
"Supprimer l'agent \"{{name}}\" ? Cela désactivera l'agent en mettant à jour votre configuration.",
|
||||
"settings.agentBehaviour.removeAgent.button": "Supprimer",
|
||||
"settings.agentBehaviour.removeMcp.title": "Supprimer le serveur MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Supprimer le serveur MCP "{{name}}" ? Cela le supprimera de votre configuration.',
|
||||
|
||||
+5
-6
@@ -1192,7 +1192,6 @@ export const dict = {
|
||||
"テレメトリは VS Code の組み込みテレメトリ設定によって制御されます。無効にするには、設定 > テレメトリ > Telemetry Level に移動して「off」に設定してください。変更を適用するには、VS Code を再起動してください。",
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "テレメトリ設定を開く",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "モード",
|
||||
"settings.agentBehaviour.subtab.agents": "エージェント",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCPサーバー",
|
||||
"settings.agentBehaviour.subtab.rules": "ルール",
|
||||
@@ -1305,7 +1304,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"スキルが見つかりません。スキルを利用可能にするには、以下にスキルフォルダパスまたはURLを追加してください。",
|
||||
"settings.agentBehaviour.availableModes": "利用可能なカスタムモード",
|
||||
"settings.agentBehaviour.noModesFound": "モードが見つかりません。",
|
||||
"settings.agentBehaviour.noAgentsFound": "エージェントが見つかりません。",
|
||||
"settings.agentBehaviour.createMode": "新しいモードを作成",
|
||||
"settings.agentBehaviour.createMode.name": "名前",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "例: reviewer",
|
||||
@@ -1350,10 +1349,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "権限をJSONとしてコピー",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"ルールは順番に評価され、最後に一致したルールが適用されます。これはCLIバックエンドから解決されたルールセットです。",
|
||||
"settings.agentBehaviour.removeMode.title": "モードを削除",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'モード "{{name}}" を削除しますか?設定を更新してモードを無効にします。',
|
||||
"settings.agentBehaviour.removeMode.button": "削除",
|
||||
"settings.agentBehaviour.removeAgent.title": "エージェントを削除",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'エージェント "{{name}}" を削除しますか?設定を更新してエージェントを無効にします。',
|
||||
"settings.agentBehaviour.removeAgent.button": "削除",
|
||||
"settings.agentBehaviour.removeMcp.title": "MCPサーバーを削除",
|
||||
"settings.agentBehaviour.removeMcp.confirm": 'MCPサーバー "{{name}}" を削除しますか?設定から削除されます。',
|
||||
"settings.agentBehaviour.removeMcp.button": "削除",
|
||||
|
||||
+5
-6
@@ -1187,7 +1187,6 @@ export const dict = {
|
||||
'원격 측정은 VS Code에 내장된 원격 측정 설정으로 제어됩니다. 비활성화하려면 설정 > 원격 측정 > 원격 측정 수준으로 이동하여 "off"로 설정하세요. 변경 사항을 적용하려면 VS Code를 다시 시작하세요.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "원격 측정 설정 열기",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "모드",
|
||||
"settings.agentBehaviour.subtab.agents": "에이전트",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP 서버",
|
||||
"settings.agentBehaviour.subtab.rules": "규칙",
|
||||
@@ -1299,7 +1298,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"스킬을 찾을 수 없습니다. 스킬을 사용하려면 아래에 스킬 폴더 경로 또는 URL을 추가하세요.",
|
||||
"settings.agentBehaviour.availableModes": "사용 가능한 사용자 정의 모드",
|
||||
"settings.agentBehaviour.noModesFound": "모드를 찾을 수 없습니다.",
|
||||
"settings.agentBehaviour.noAgentsFound": "에이전트를 찾을 수 없습니다.",
|
||||
"settings.agentBehaviour.createMode": "새 모드 만들기",
|
||||
"settings.agentBehaviour.createMode.name": "이름",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "예: reviewer",
|
||||
@@ -1341,10 +1340,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "권한을 JSON으로 복사",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"규칙은 순서대로 평가되며, 마지막에 일치하는 규칙이 적용됩니다. 이것은 CLI 백엔드에서 확인된 규칙 세트입니다.",
|
||||
"settings.agentBehaviour.removeMode.title": "모드 제거",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'모드 "{{name}}"을(를) 제거하시겠습니까? 구성을 업데이트하여 모드를 비활성화합니다.',
|
||||
"settings.agentBehaviour.removeMode.button": "제거",
|
||||
"settings.agentBehaviour.removeAgent.title": "에이전트 제거",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'에이전트 "{{name}}"을(를) 제거하시겠습니까? 구성을 업데이트하여 에이전트를 비활성화합니다.',
|
||||
"settings.agentBehaviour.removeAgent.button": "제거",
|
||||
"settings.agentBehaviour.removeMcp.title": "MCP 서버 제거",
|
||||
"settings.agentBehaviour.removeMcp.confirm": 'MCP 서버 "{{name}}"을(를) 제거하시겠습니까? 구성에서 제거됩니다.',
|
||||
"settings.agentBehaviour.removeMcp.button": "제거",
|
||||
|
||||
+5
-6
@@ -1193,7 +1193,6 @@ export const dict = {
|
||||
'Telemetrie wordt beheerd door de ingebouwde telemetrie-instelling van VS Code. Om dit uit te schakelen, gaat u naar Instellingen > Telemetrie > Telemetrieniveau en stelt u dit in op "off". Herstart VS Code om de wijziging toe te passen.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Telemetrie-instellingen openen",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modi",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenten",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP Servers",
|
||||
"settings.agentBehaviour.subtab.rules": "Regels",
|
||||
@@ -1315,7 +1314,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Geen skills ontdekt. Voeg hieronder skill mappaden of URL's toe om skills beschikbaar te maken.",
|
||||
"settings.agentBehaviour.availableModes": "Beschikbare Aangepaste Modi",
|
||||
"settings.agentBehaviour.noModesFound": "Geen modi gevonden.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Geen agenten gevonden.",
|
||||
"settings.agentBehaviour.importMode": "Importeren",
|
||||
"settings.agentBehaviour.importMode.invalidName":
|
||||
"Ongeldige modusnaam in bestand. De naam moet beginnen met een kleine letter en mag alleen kleine letters, cijfers en streepjes bevatten.",
|
||||
@@ -1324,10 +1323,10 @@ export const dict = {
|
||||
"Ongeldig JSON-bestand. Selecteer een geldig agentdefinitiebestand.",
|
||||
"settings.agentBehaviour.importMode.tooLarge": "Bestand is te groot. Agentdefinities moeten kleiner zijn dan 1 MB.",
|
||||
"settings.agentBehaviour.exportMode": "Agentdefinitie exporteren",
|
||||
"settings.agentBehaviour.removeMode.title": "Verwijder modus",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Modus "{{name}}" verwijderen? Dit zal de modus uitschakelen door je configuratie bij te werken.',
|
||||
"settings.agentBehaviour.removeMode.button": "Verwijderen",
|
||||
"settings.agentBehaviour.removeAgent.title": "Verwijder agent",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Agent "{{name}}" verwijderen? Dit schakelt de agent uit door uw configuratie bij te werken.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Verwijderen",
|
||||
"settings.agentBehaviour.skillPaths": "Skill Mappaden",
|
||||
"settings.agentBehaviour.skillUrls": "Skill URL's",
|
||||
"settings.agentBehaviour.removeSkill.title": "Verwijder skill",
|
||||
|
||||
+5
-6
@@ -1162,7 +1162,6 @@ export const dict = {
|
||||
'Telemetri styres av den innebygde telemetri-innstillingen i VS Code. For å deaktivere den, gå til Innstillinger > Telemetry > Telemetry Level og sett den til "off". Start VS Code på nytt for å ta i bruk endringen.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Åpne innstillinger for telemetri",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Moduser",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenter",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP-servere",
|
||||
"settings.agentBehaviour.subtab.rules": "Regler",
|
||||
@@ -1310,7 +1309,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Ingen ferdigheter funnet. Legg til ferdighetsmappestier eller URLer nedenfor for å gjøre ferdigheter tilgjengelige.",
|
||||
"settings.agentBehaviour.availableModes": "Tilgjengelige egendefinerte moduser",
|
||||
"settings.agentBehaviour.noModesFound": "Ingen moduser funnet.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Ingen agenter funnet.",
|
||||
"settings.agentBehaviour.createMode": "Opprett ny modus",
|
||||
"settings.agentBehaviour.createMode.name": "Navn",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "f.eks. reviewer",
|
||||
@@ -1353,10 +1352,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Kopier tillatelser som JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Reglene evalueres i rekkefølge — siste matchende regel vinner. Dette er det gjeldende regelsettet fra CLI-backenden.",
|
||||
"settings.agentBehaviour.removeMode.title": "Fjern modus",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Vil du fjerne modusen "{{name}}"? Dette vil deaktivere modusen ved å oppdatere konfigurasjonen din.',
|
||||
"settings.agentBehaviour.removeMode.button": "Fjern",
|
||||
"settings.agentBehaviour.removeAgent.title": "Fjern agent",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Fjern agent "{{name}}"? Dette deaktiverer agenten ved å oppdatere konfigurasjonen din.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Fjern",
|
||||
"settings.agentBehaviour.removeMcp.title": "Fjern MCP-server",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Vil du fjerne MCP-serveren "{{name}}"? Dette vil fjerne den fra konfigurasjonen din.',
|
||||
|
||||
+5
-6
@@ -1162,7 +1162,6 @@ export const dict = {
|
||||
'Telemetria jest kontrolowana przez wbudowane ustawienie telemetrii VS Code. Aby ją wyłączyć, przejdź do Ustawienia > Telemetria > Poziom telemetrii i ustaw na "off". Uruchom ponownie VS Code, aby zastosować zmianę.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Otwórz ustawienia telemetrii",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Tryby",
|
||||
"settings.agentBehaviour.subtab.agents": "Agenci",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "Serwery MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "Reguły",
|
||||
@@ -1311,7 +1310,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Nie znaleziono umiejętności. Dodaj ścieżki folderów lub adresy URL poniżej, aby udostępnić umiejętności.",
|
||||
"settings.agentBehaviour.availableModes": "Dostępne tryby niestandardowe",
|
||||
"settings.agentBehaviour.noModesFound": "Nie znaleziono trybów.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Nie znaleziono agentów.",
|
||||
"settings.agentBehaviour.createMode": "Utwórz nowy tryb",
|
||||
"settings.agentBehaviour.createMode.name": "Nazwa",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "np. reviewer",
|
||||
@@ -1356,10 +1355,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Kopiuj uprawnienia jako JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Reguły są sprawdzane po kolei — ostatnia pasująca reguła wygrywa. To jest wynikowy zestaw reguł z backendu CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "Usuń tryb",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Usunąć tryb "{{name}}"? Spowoduje to wyłączenie trybu poprzez aktualizację konfiguracji.',
|
||||
"settings.agentBehaviour.removeMode.button": "Usuń",
|
||||
"settings.agentBehaviour.removeAgent.title": "Usuń agenta",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Usunąć agenta "{{name}}"? Spowoduje to jego wyłączenie przez aktualizację konfiguracji.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Usuń",
|
||||
"settings.agentBehaviour.removeMcp.title": "Usuń serwer MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'Usunąć serwer MCP "{{name}}"? Spowoduje to usunięcie go z konfiguracji.',
|
||||
|
||||
+4
-6
@@ -1200,7 +1200,6 @@ export const dict = {
|
||||
'Телеметрия управляется встроенной настройкой телеметрии VS Code. Чтобы отключить её, перейдите в Настройки > Телеметрия > Уровень телеметрии и установите значение "off". Перезапустите VS Code, чтобы применить изменение.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Открыть настройки телеметрии",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Режимы",
|
||||
"settings.agentBehaviour.subtab.agents": "Агенты",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP-серверы",
|
||||
"settings.agentBehaviour.subtab.rules": "Правила",
|
||||
@@ -1314,7 +1313,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Навыки не обнаружены. Добавьте пути к папкам навыков или URL-адреса ниже, чтобы сделать навыки доступными.",
|
||||
"settings.agentBehaviour.availableModes": "Доступные пользовательские режимы",
|
||||
"settings.agentBehaviour.noModesFound": "Режимы не найдены.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Агенты не найдены.",
|
||||
"settings.agentBehaviour.createMode": "Создать новый режим",
|
||||
"settings.agentBehaviour.createMode.name": "Название",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "например, reviewer",
|
||||
@@ -1360,10 +1359,9 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "Скопировать разрешения как JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"Правила оцениваются по порядку — побеждает последнее совпавшее правило. Это разрешенный набор правил из бэкенда CLI.",
|
||||
"settings.agentBehaviour.removeMode.title": "Удалить режим",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Удалить режим "{{name}}"? Это отключит режим, обновив вашу конфигурацию.',
|
||||
"settings.agentBehaviour.removeMode.button": "Удалить",
|
||||
"settings.agentBehaviour.removeAgent.title": "Удалить агент",
|
||||
"settings.agentBehaviour.removeAgent.confirm": 'Удалить агент "{{name}}"? Это отключит агент, обновив конфигурацию.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Удалить",
|
||||
"settings.agentBehaviour.removeMcp.title": "Удалить сервер MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm": 'Удалить сервер MCP "{{name}}"? Это удалит его из вашей конфигурации.',
|
||||
"settings.agentBehaviour.removeMcp.button": "Удалить",
|
||||
|
||||
+5
-6
@@ -1184,7 +1184,6 @@ export const dict = {
|
||||
'Telemetry ถูกควบคุมโดยการตั้งค่า Telemetry ในตัวของ VS Code หากต้องการปิดใช้งาน ให้ไปที่ Settings > Telemetry > Telemetry Level แล้วตั้งค่าเป็น "off" รีสตาร์ท VS Code เพื่อให้การเปลี่ยนแปลงมีผล',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "เปิดการตั้งค่า Telemetry",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "โหมด",
|
||||
"settings.agentBehaviour.subtab.agents": "ตัวแทน",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "เซิร์ฟเวอร์ MCP",
|
||||
"settings.agentBehaviour.subtab.rules": "กฎ",
|
||||
@@ -1296,7 +1295,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.discoveredSkills": "ทักษะที่ค้นพบ",
|
||||
"settings.agentBehaviour.noSkillsFound": "ไม่พบทักษะ เพิ่มเส้นทางโฟลเดอร์หรือ URL ด้านล่างเพื่อทำให้ทักษะพร้อมใช้งาน",
|
||||
"settings.agentBehaviour.availableModes": "โหมดกำหนดเองที่ใช้ได้",
|
||||
"settings.agentBehaviour.noModesFound": "ไม่พบโหมด",
|
||||
"settings.agentBehaviour.noAgentsFound": "ไม่พบเอเจนต์",
|
||||
"settings.agentBehaviour.createMode": "สร้างโหมดใหม่",
|
||||
"settings.agentBehaviour.createMode.name": "ชื่อ",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "เช่น reviewer",
|
||||
@@ -1339,10 +1338,10 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "คัดลอกสิทธิ์เป็น JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"กฎจะถูกประเมินตามลำดับ — กฎที่ตรงกันล่าสุดจะมีผล นี่คือชุดกฎที่ประมวลผลแล้วจากแบ็กเอนด์ CLI",
|
||||
"settings.agentBehaviour.removeMode.title": "ลบโหมด",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'ต้องการลบโหมด "{{name}}" หรือไม่? การดำเนินการนี้จะปิดใช้งานโหมดโดยอัปเดตการกำหนดค่าของคุณ',
|
||||
"settings.agentBehaviour.removeMode.button": "ลบ",
|
||||
"settings.agentBehaviour.removeAgent.title": "ลบเอเจนต์",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'ลบเอเจนต์ "{{name}}" หรือไม่? การดำเนินการนี้จะปิดใช้งานเอเจนต์โดยการอัปเดตการตั้งค่า',
|
||||
"settings.agentBehaviour.removeAgent.button": "ลบ",
|
||||
"settings.agentBehaviour.removeMcp.title": "ลบเซิร์ฟเวอร์ MCP",
|
||||
"settings.agentBehaviour.removeMcp.confirm":
|
||||
'ต้องการลบเซิร์ฟเวอร์ MCP "{{name}}" หรือไม่? การดำเนินการนี้จะลบออกจากการกำหนดค่าของคุณ',
|
||||
|
||||
+5
-6
@@ -1189,7 +1189,6 @@ export const dict = {
|
||||
"Telemetri, VS Code'un yerleşik telemetri ayarı tarafından kontrol edilir. Devre dışı bırakmak için Ayarlar > Telemetri > Telemetri Düzeyi'ne gidin ve \"off\" olarak ayarlayın. Değişikliği uygulamak için VS Code'u yeniden başlatın.",
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Telemetri Ayarlarını Aç",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Modlar",
|
||||
"settings.agentBehaviour.subtab.agents": "Ajanlar",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP Sunucuları",
|
||||
"settings.agentBehaviour.subtab.rules": "Kurallar",
|
||||
@@ -1307,7 +1306,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Keşfedilen beceri yok. Becerileri kullanılabilir kılmak için aşağıya beceri klasör yolları veya URL'ler ekleyin.",
|
||||
"settings.agentBehaviour.availableModes": "Mevcut Özel Modlar",
|
||||
"settings.agentBehaviour.noModesFound": "Mod bulunamadı.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Ajan bulunamadı.",
|
||||
"settings.agentBehaviour.importMode": "İçe Aktar",
|
||||
"settings.agentBehaviour.importMode.invalidName":
|
||||
"Dosyadaki mod adı geçersiz. Ad küçük harfle başlamalı ve yalnızca küçük harfler, rakamlar ve tire içermelidir.",
|
||||
@@ -1316,10 +1315,10 @@ export const dict = {
|
||||
"Geçersiz JSON dosyası. Lütfen geçerli bir ajan tanım dosyası seçin.",
|
||||
"settings.agentBehaviour.importMode.tooLarge": "Dosya çok büyük. Ajan tanımları 1 MB'den küçük olmalıdır.",
|
||||
"settings.agentBehaviour.exportMode": "Ajan tanımını dışa aktar",
|
||||
"settings.agentBehaviour.removeMode.title": "Modu kaldır",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'"{{name}}" modu kaldırılsın mı? Bu, yapılandırmanızı güncelleyerek modu devre dışı bırakacak.',
|
||||
"settings.agentBehaviour.removeMode.button": "Kaldır",
|
||||
"settings.agentBehaviour.removeAgent.title": "Ajanı kaldır",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'"{{name}}" ajanını kaldır? Bu, yapılandırmanızı güncelleyerek ajanı devre dışı bırakır.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Kaldır",
|
||||
"settings.agentBehaviour.skillPaths": "Beceri Klasör Yolları",
|
||||
"settings.agentBehaviour.skillUrls": "Beceri URL'leri",
|
||||
"settings.agentBehaviour.removeSkill.title": "Beceriyi kaldır",
|
||||
|
||||
+5
-6
@@ -1188,7 +1188,6 @@ export const dict = {
|
||||
'Телеметрія керується вбудованим налаштуванням телеметрії VS Code. Щоб вимкнути її, перейдіть до Налаштування > Телеметрія > Рівень телеметрії та встановіть значення "off". Перезапустіть VS Code, щоб застосувати зміну.',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "Відкрити налаштування телеметрії",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "Режими",
|
||||
"settings.agentBehaviour.subtab.agents": "Агенти",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP-сервери",
|
||||
"settings.agentBehaviour.subtab.rules": "Правила",
|
||||
@@ -1308,7 +1307,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.noSkillsFound":
|
||||
"Навичок не виявлено. Додайте шляхи до папок навичок або URL нижче, щоб зробити їх доступними.",
|
||||
"settings.agentBehaviour.availableModes": "Доступні власні режими",
|
||||
"settings.agentBehaviour.noModesFound": "Режимів не знайдено.",
|
||||
"settings.agentBehaviour.noAgentsFound": "Агентів не знайдено.",
|
||||
"settings.agentBehaviour.importMode": "Імпортувати",
|
||||
"settings.agentBehaviour.importMode.invalidName":
|
||||
"Назва режиму у файлі недійсна. Назва має починатися з малої літери і містити лише малі літери, цифри та дефіси.",
|
||||
@@ -1317,10 +1316,10 @@ export const dict = {
|
||||
"Недійсний файл JSON. Будь ласка, виберіть дійсний файл визначення агента.",
|
||||
"settings.agentBehaviour.importMode.tooLarge": "Файл занадто великий. Визначення агентів мають бути менше 1 МБ.",
|
||||
"settings.agentBehaviour.exportMode": "Експортувати визначення агента",
|
||||
"settings.agentBehaviour.removeMode.title": "Видалити режим",
|
||||
"settings.agentBehaviour.removeMode.confirm":
|
||||
'Видалити режим "{{name}}"? Це оновить вашу конфігурацію, щоб вимкнути режим.',
|
||||
"settings.agentBehaviour.removeMode.button": "Видалити",
|
||||
"settings.agentBehaviour.removeAgent.title": "Видалити агент",
|
||||
"settings.agentBehaviour.removeAgent.confirm":
|
||||
'Видалити агент "{{name}}"? Це вимкне агент шляхом оновлення конфігурації.',
|
||||
"settings.agentBehaviour.removeAgent.button": "Видалити",
|
||||
"settings.agentBehaviour.skillPaths": "Шляхи до папок навичок",
|
||||
"settings.agentBehaviour.skillUrls": "URL навичок",
|
||||
"settings.agentBehaviour.removeSkill.title": "Видалити навичку",
|
||||
|
||||
+4
-5
@@ -1166,7 +1166,6 @@ export const dict = {
|
||||
'遥测由 VS Code 的内置遥测设置控制。若要将其禁用,请转到「设置」>「遥测」>「遥测级别」并将其设置为 "off"。重启 VS Code 以应用更改。',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "打开遥测设置",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "模式",
|
||||
"settings.agentBehaviour.subtab.agents": "代理",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP 服务器",
|
||||
"settings.agentBehaviour.subtab.rules": "规则",
|
||||
@@ -1275,7 +1274,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.discoveredSkills": "已发现的技能",
|
||||
"settings.agentBehaviour.noSkillsFound": "未发现任何技能。请在下方添加技能文件夹路径或 URL 以使技能可用。",
|
||||
"settings.agentBehaviour.availableModes": "可用自定义模式",
|
||||
"settings.agentBehaviour.noModesFound": "未找到模式。",
|
||||
"settings.agentBehaviour.noAgentsFound": "未找到智能体。",
|
||||
"settings.agentBehaviour.createMode": "创建新模式",
|
||||
"settings.agentBehaviour.createMode.name": "名称",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "例如:reviewer",
|
||||
@@ -1314,9 +1313,9 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.col.action": "操作",
|
||||
"settings.agentBehaviour.permissions.copy": "复制权限为 JSON",
|
||||
"settings.agentBehaviour.permissions.hint": "规则按顺序评估 — 最后匹配的规则生效。这是从 CLI 后端解析出的规则集。",
|
||||
"settings.agentBehaviour.removeMode.title": "移除模式",
|
||||
"settings.agentBehaviour.removeMode.confirm": '移除模式 "{{name}}" 吗?这将通过更新配置来禁用该模式。',
|
||||
"settings.agentBehaviour.removeMode.button": "移除",
|
||||
"settings.agentBehaviour.removeAgent.title": "移除智能体",
|
||||
"settings.agentBehaviour.removeAgent.confirm": '移除智能体 "{{name}}" 吗?这将通过更新配置来禁用该智能体。',
|
||||
"settings.agentBehaviour.removeAgent.button": "移除",
|
||||
"settings.agentBehaviour.removeMcp.title": "移除 MCP 服务器",
|
||||
"settings.agentBehaviour.removeMcp.confirm": '移除 MCP 服务器 "{{name}}" 吗?这将从您的配置中移除它。',
|
||||
"settings.agentBehaviour.removeMcp.button": "移除",
|
||||
|
||||
+4
-5
@@ -1134,7 +1134,6 @@ export const dict = {
|
||||
'遙測由 VS Code 內建的遙測設定控制。若要停用,請前往「設定」>「遙測」>「遙測層級」並將其設為 "off"。重新啟動 VS Code 以套用變更。',
|
||||
"settings.aboutKiloCode.telemetry.openSettings": "開啟遙測設定",
|
||||
|
||||
"settings.agentBehaviour.subtab.modes": "模式",
|
||||
"settings.agentBehaviour.subtab.agents": "代理程式",
|
||||
"settings.agentBehaviour.subtab.mcpServers": "MCP 伺服器",
|
||||
"settings.agentBehaviour.subtab.rules": "規則",
|
||||
@@ -1243,7 +1242,7 @@ export const dict = {
|
||||
"settings.agentBehaviour.discoveredSkills": "已發現的 Skill",
|
||||
"settings.agentBehaviour.noSkillsFound": "未發現任何 Skill。請在下方新增 Skill 資料夾路徑或 URL 以使 Skill 可用。",
|
||||
"settings.agentBehaviour.availableModes": "可用自訂模式",
|
||||
"settings.agentBehaviour.noModesFound": "未找到模式。",
|
||||
"settings.agentBehaviour.noAgentsFound": "未找到智能體。",
|
||||
"settings.agentBehaviour.createMode": "建立新模式",
|
||||
"settings.agentBehaviour.createMode.name": "名稱",
|
||||
"settings.agentBehaviour.createMode.name.placeholder": "例如:reviewer",
|
||||
@@ -1284,9 +1283,9 @@ export const dict = {
|
||||
"settings.agentBehaviour.permissions.copy": "複製權限為 JSON",
|
||||
"settings.agentBehaviour.permissions.hint":
|
||||
"規則會按順序評估 — 最後符合的規則為準。這是來自 CLI 後端的已解析規則集。",
|
||||
"settings.agentBehaviour.removeMode.title": "移除模式",
|
||||
"settings.agentBehaviour.removeMode.confirm": '要移除模式 "{{name}}" 嗎?這將透過更新設定來停用該模式。',
|
||||
"settings.agentBehaviour.removeMode.button": "移除",
|
||||
"settings.agentBehaviour.removeAgent.title": "移除智能體",
|
||||
"settings.agentBehaviour.removeAgent.confirm": '要移除智能體 "{{name}}" 嗎?這將透過更新設定來停用該智能體。',
|
||||
"settings.agentBehaviour.removeAgent.button": "移除",
|
||||
"settings.agentBehaviour.removeMcp.title": "移除 MCP 伺服器",
|
||||
"settings.agentBehaviour.removeMcp.confirm": '要移除 MCP 伺服器 "{{name}}" 嗎?這將從您的設定中移除它。',
|
||||
"settings.agentBehaviour.removeMcp.button": "移除",
|
||||
|
||||
@@ -219,7 +219,7 @@ export function mockSessionValue(overrides?: {
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
removeSkill: noop,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
selectedAgent: () => "code",
|
||||
selectAgent: noop,
|
||||
getSessionAgent: () => "code",
|
||||
|
||||
@@ -13,7 +13,7 @@ import { ItemCard } from "../components/marketplace/ItemCard"
|
||||
import type {
|
||||
SkillMarketplaceItem,
|
||||
McpMarketplaceItem,
|
||||
ModeMarketplaceItem,
|
||||
AgentMarketplaceItem,
|
||||
MarketplaceInstalledMetadata,
|
||||
} from "../types/marketplace"
|
||||
import "../components/marketplace/marketplace.css"
|
||||
@@ -190,52 +190,81 @@ const MOCK_MCPS: McpMarketplaceItem[] = [
|
||||
},
|
||||
]
|
||||
|
||||
const MOCK_MODES: ModeMarketplaceItem[] = [
|
||||
const MOCK_AGENTS: AgentMarketplaceItem[] = [
|
||||
{
|
||||
type: "mode",
|
||||
type: "agent",
|
||||
id: "architect",
|
||||
name: "Architect",
|
||||
description:
|
||||
"High-level system design and planning. Focuses on architecture decisions, component boundaries, and technical specifications without writing implementation code.",
|
||||
content: "name: Architect\nroleDefinition: You are a software architect...\ngroups:\n - read\n",
|
||||
content: {
|
||||
mode: "primary",
|
||||
description: "Stress-test technical designs and produce implementation-ready plans",
|
||||
prompt: "You are a software architect...",
|
||||
options: { displayName: "Architect" },
|
||||
permission: { read: "allow", edit: "deny", bash: "deny", mcp: "deny", question: "allow" },
|
||||
},
|
||||
author: "Kilo",
|
||||
tags: ["planning", "design"],
|
||||
},
|
||||
{
|
||||
type: "mode",
|
||||
type: "agent",
|
||||
id: "reviewer",
|
||||
name: "Code Reviewer",
|
||||
description:
|
||||
"Reviews code for bugs, security issues, and best practices. Provides actionable feedback with specific line references.",
|
||||
content: "name: Code Reviewer\nroleDefinition: You are a code reviewer...\ngroups:\n - read\n",
|
||||
content: {
|
||||
mode: "primary",
|
||||
description: "Senior software engineer conducting thorough code reviews",
|
||||
prompt: "You are a code reviewer...",
|
||||
options: { displayName: "Code Reviewer" },
|
||||
permission: { read: "allow", edit: "deny", bash: "allow", mcp: "deny", question: "allow" },
|
||||
},
|
||||
author: "Kilo",
|
||||
tags: ["review", "quality"],
|
||||
},
|
||||
{
|
||||
type: "mode",
|
||||
type: "agent",
|
||||
id: "docs-writer",
|
||||
name: "Documentation Writer",
|
||||
description: "Generates and maintains documentation including READMEs, API docs, and inline code comments.",
|
||||
content: "name: Documentation Writer\nroleDefinition: You write documentation...\ngroups:\n - read\n - edit\n",
|
||||
content: {
|
||||
mode: "primary",
|
||||
description: "Focus on writing documentation and other text-based files",
|
||||
prompt: "You write documentation...",
|
||||
options: { displayName: "Documentation Writer" },
|
||||
permission: { read: "allow", edit: "allow", bash: "allow", mcp: "deny", question: "allow" },
|
||||
},
|
||||
tags: ["documentation", "writing"],
|
||||
},
|
||||
{
|
||||
type: "mode",
|
||||
type: "agent",
|
||||
id: "tdd",
|
||||
name: "Test-Driven Developer",
|
||||
description:
|
||||
"Follows strict TDD methodology: write failing tests first, implement minimum code to pass, then refactor.",
|
||||
content:
|
||||
"name: Test-Driven Developer\nroleDefinition: You follow TDD...\ngroups:\n - read\n - edit\n - command\n",
|
||||
content: {
|
||||
mode: "primary",
|
||||
description: "Strict TDD practitioner",
|
||||
prompt: "You follow TDD...",
|
||||
options: { displayName: "Test-Driven Developer" },
|
||||
permission: { read: "allow", edit: "allow", bash: "allow", mcp: "allow", question: "allow" },
|
||||
},
|
||||
author: "Community",
|
||||
tags: ["testing", "methodology"],
|
||||
},
|
||||
{
|
||||
type: "mode",
|
||||
type: "agent",
|
||||
id: "debug",
|
||||
name: "Debugger",
|
||||
description: "Systematically diagnoses and fixes bugs. Uses logs, stack traces, and bisection to isolate issues.",
|
||||
content: "name: Debugger\nroleDefinition: You are a debugger...\ngroups:\n - read\n - command\n",
|
||||
content: {
|
||||
mode: "primary",
|
||||
description: "Systematic bug diagnosis and fixing",
|
||||
prompt: "You are a debugger...",
|
||||
options: { displayName: "Debugger" },
|
||||
permission: { read: "allow", edit: "allow", bash: "allow", mcp: "deny", question: "allow" },
|
||||
},
|
||||
tags: ["debugging", "troubleshooting"],
|
||||
},
|
||||
]
|
||||
@@ -252,9 +281,9 @@ const PARTIAL_INSTALLED_MCPS: MarketplaceInstalledMetadata = {
|
||||
global: { "postgres-mcp": { type: "mcp" } },
|
||||
}
|
||||
|
||||
const PARTIAL_INSTALLED_MODES: MarketplaceInstalledMetadata = {
|
||||
project: { architect: { type: "mode" } },
|
||||
global: { reviewer: { type: "mode" } },
|
||||
const PARTIAL_INSTALLED_AGENTS: MarketplaceInstalledMetadata = {
|
||||
project: { architect: { type: "agent" } },
|
||||
global: { reviewer: { type: "agent" } },
|
||||
}
|
||||
|
||||
const noop = () => {}
|
||||
@@ -461,18 +490,18 @@ export const InstalledMcpCard: Story = {
|
||||
// Mode Stories
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export const ModesTabWithItems: Story = {
|
||||
name: "Modes tab — with items",
|
||||
export const AgentsTabWithItems: Story = {
|
||||
name: "Agents tab — with items",
|
||||
render: () => (
|
||||
<StoryProviders>
|
||||
<div style={{ width: "420px", height: "700px", overflow: "auto", padding: "12px" }}>
|
||||
<MarketplaceListView
|
||||
items={MOCK_MODES}
|
||||
items={MOCK_AGENTS}
|
||||
metadata={EMPTY_METADATA}
|
||||
fetching={false}
|
||||
type="mode"
|
||||
searchPlaceholder="Search modes..."
|
||||
emptyMessage="No modes found"
|
||||
type="agent"
|
||||
searchPlaceholder="Search agents..."
|
||||
emptyMessage="No agents found"
|
||||
onInstall={noop}
|
||||
onRemove={noop}
|
||||
/>
|
||||
@@ -481,18 +510,18 @@ export const ModesTabWithItems: Story = {
|
||||
),
|
||||
}
|
||||
|
||||
export const ModesTabWithInstalled: Story = {
|
||||
name: "Modes tab — some installed",
|
||||
export const AgentsTabWithInstalled: Story = {
|
||||
name: "Agents tab — some installed",
|
||||
render: () => (
|
||||
<StoryProviders>
|
||||
<div style={{ width: "420px", height: "700px", overflow: "auto", padding: "12px" }}>
|
||||
<MarketplaceListView
|
||||
items={MOCK_MODES}
|
||||
metadata={PARTIAL_INSTALLED_MODES}
|
||||
items={MOCK_AGENTS}
|
||||
metadata={PARTIAL_INSTALLED_AGENTS}
|
||||
fetching={false}
|
||||
type="mode"
|
||||
searchPlaceholder="Search modes..."
|
||||
emptyMessage="No modes found"
|
||||
type="agent"
|
||||
searchPlaceholder="Search agents..."
|
||||
emptyMessage="No agents found"
|
||||
onInstall={noop}
|
||||
onRemove={noop}
|
||||
/>
|
||||
@@ -501,8 +530,8 @@ export const ModesTabWithInstalled: Story = {
|
||||
),
|
||||
}
|
||||
|
||||
export const ModesTabEmpty: Story = {
|
||||
name: "Modes tab — empty state",
|
||||
export const AgentsTabEmpty: Story = {
|
||||
name: "Agents tab — empty state",
|
||||
render: () => (
|
||||
<StoryProviders>
|
||||
<div style={{ width: "420px", height: "400px", overflow: "auto", padding: "12px" }}>
|
||||
@@ -510,9 +539,9 @@ export const ModesTabEmpty: Story = {
|
||||
items={[]}
|
||||
metadata={EMPTY_METADATA}
|
||||
fetching={false}
|
||||
type="mode"
|
||||
searchPlaceholder="Search modes..."
|
||||
emptyMessage="No modes found"
|
||||
type="agent"
|
||||
searchPlaceholder="Search agents..."
|
||||
emptyMessage="No agents found"
|
||||
onInstall={noop}
|
||||
onRemove={noop}
|
||||
/>
|
||||
@@ -521,23 +550,23 @@ export const ModesTabEmpty: Story = {
|
||||
),
|
||||
}
|
||||
|
||||
export const SingleModeCard: Story = {
|
||||
name: "ItemCard — single mode not installed",
|
||||
export const SingleAgentCard: Story = {
|
||||
name: "ItemCard — single agent not installed",
|
||||
render: () => (
|
||||
<StoryProviders>
|
||||
<div style={{ width: "420px", padding: "12px" }}>
|
||||
<ItemCard item={MOCK_MODES[0]} metadata={EMPTY_METADATA} onInstall={noop} onRemove={noop} />
|
||||
<ItemCard item={MOCK_AGENTS[0]} metadata={EMPTY_METADATA} onInstall={noop} onRemove={noop} />
|
||||
</div>
|
||||
</StoryProviders>
|
||||
),
|
||||
}
|
||||
|
||||
export const InstalledModeCard: Story = {
|
||||
name: "ItemCard — installed mode",
|
||||
export const InstalledAgentCard: Story = {
|
||||
name: "ItemCard — installed agent",
|
||||
render: () => (
|
||||
<StoryProviders>
|
||||
<div style={{ width: "420px", padding: "12px" }}>
|
||||
<ItemCard item={MOCK_MODES[0]} metadata={PARTIAL_INSTALLED_MODES} onInstall={noop} onRemove={noop} />
|
||||
<ItemCard item={MOCK_AGENTS[0]} metadata={PARTIAL_INSTALLED_AGENTS} onInstall={noop} onRemove={noop} />
|
||||
</div>
|
||||
</StoryProviders>
|
||||
),
|
||||
|
||||
@@ -92,7 +92,7 @@ export const AgentBehaviourAgents: Story = {
|
||||
...mockSessionValue({ id: "agents-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
@@ -117,7 +117,7 @@ export const AgentBehaviourEditCustomMode: Story = {
|
||||
...mockSessionValue({ id: "edit-mode-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
@@ -219,7 +219,7 @@ export const AgentBehaviourWorkflows: Story = {
|
||||
...mockSessionValue({ id: "workflows-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
@@ -242,7 +242,7 @@ export const AgentBehaviourWorkflowsEmpty: Story = {
|
||||
...mockSessionValue({ id: "workflows-empty-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
@@ -340,7 +340,7 @@ export const ModeEditExport: Story = {
|
||||
...mockSessionValue({ id: "export-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
@@ -381,7 +381,7 @@ export const ModeEditPermissions: Story = {
|
||||
...mockSessionValue({ id: "permissions-story", status: "idle" }),
|
||||
agents: () => MOCK_AGENTS,
|
||||
allAgents: () => MOCK_AGENTS,
|
||||
removeMode: noop,
|
||||
removeAgent: noop,
|
||||
removeMcp: noop,
|
||||
skills: () => [],
|
||||
refreshSkills: noop,
|
||||
|
||||
@@ -29,9 +29,17 @@ export interface McpMarketplaceItem extends MarketplaceItemBase {
|
||||
parameters?: McpParameter[]
|
||||
}
|
||||
|
||||
export interface ModeMarketplaceItem extends MarketplaceItemBase {
|
||||
type: "mode"
|
||||
content: string
|
||||
export interface AgentContent {
|
||||
mode: "primary" | "subagent" | "all"
|
||||
description: string
|
||||
prompt: string
|
||||
options?: Record<string, unknown>
|
||||
permission?: Record<string, unknown>
|
||||
}
|
||||
|
||||
export interface AgentMarketplaceItem extends MarketplaceItemBase {
|
||||
type: "agent"
|
||||
content: AgentContent
|
||||
}
|
||||
|
||||
export interface SkillMarketplaceItem extends MarketplaceItemBase {
|
||||
@@ -43,7 +51,7 @@ export interface SkillMarketplaceItem extends MarketplaceItemBase {
|
||||
displayCategory: string
|
||||
}
|
||||
|
||||
export type MarketplaceItem = McpMarketplaceItem | ModeMarketplaceItem | SkillMarketplaceItem
|
||||
export type MarketplaceItem = McpMarketplaceItem | AgentMarketplaceItem | SkillMarketplaceItem
|
||||
|
||||
export interface InstallMarketplaceItemOptions {
|
||||
target?: "global" | "project"
|
||||
|
||||
@@ -844,6 +844,7 @@ export interface MarketplaceDataMessage {
|
||||
marketplaceItems: MarketplaceItem[]
|
||||
marketplaceInstalledMetadata: MarketplaceInstalledMetadata
|
||||
errors?: string[]
|
||||
showAgentMigrationBanner?: boolean
|
||||
}
|
||||
|
||||
export interface MarketplaceInstallResultMessage {
|
||||
|
||||
@@ -250,7 +250,7 @@ export interface RemoveSkillMessage {
|
||||
}
|
||||
|
||||
export interface RemoveModeMessage {
|
||||
type: "removeMode"
|
||||
type: "removeAgent"
|
||||
name: string
|
||||
}
|
||||
|
||||
@@ -1060,6 +1060,10 @@ export interface RemoveInstalledMarketplaceItemMessage {
|
||||
mpInstallOptions: InstallMarketplaceItemOptions
|
||||
}
|
||||
|
||||
export interface DismissAgentMigrationBannerMessage {
|
||||
type: "dismissAgentMigrationBanner"
|
||||
}
|
||||
|
||||
export type WebviewMessage =
|
||||
| SendMessageRequest
|
||||
| AbortRequest
|
||||
@@ -1216,6 +1220,7 @@ export type WebviewMessage =
|
||||
| FilterMarketplaceItemsMessage
|
||||
| InstallMarketplaceItemMessage
|
||||
| RemoveInstalledMarketplaceItemMessage
|
||||
| DismissAgentMigrationBannerMessage
|
||||
| ConnectProviderMessage
|
||||
| AuthorizeProviderOAuthMessage
|
||||
| CompleteProviderOAuthMessage
|
||||
|
||||
Reference in New Issue
Block a user