sema-core 2.0.16 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/dist/core/Conversation.js +4 -4
  2. package/dist/core/Conversation.js.map +1 -1
  3. package/dist/core/RunTools.d.ts.map +1 -1
  4. package/dist/core/RunTools.js +43 -8
  5. package/dist/core/RunTools.js.map +1 -1
  6. package/dist/core/SemaCore.d.ts +2 -0
  7. package/dist/core/SemaCore.d.ts.map +1 -1
  8. package/dist/core/SemaCore.js +1 -0
  9. package/dist/core/SemaCore.js.map +1 -1
  10. package/dist/core/SemaEngine.d.ts.map +1 -1
  11. package/dist/core/SemaEngine.js +22 -10
  12. package/dist/core/SemaEngine.js.map +1 -1
  13. package/dist/core/SemaSession.d.ts +3 -11
  14. package/dist/core/SemaSession.d.ts.map +1 -1
  15. package/dist/core/SemaSession.js +2 -10
  16. package/dist/core/SemaSession.js.map +1 -1
  17. package/dist/core/SessionPool.d.ts.map +1 -1
  18. package/dist/core/SessionPool.js +3 -2
  19. package/dist/core/SessionPool.js.map +1 -1
  20. package/dist/events/types.d.ts +2 -0
  21. package/dist/events/types.d.ts.map +1 -1
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/manager/ConfManager.d.ts +9 -1
  27. package/dist/manager/ConfManager.d.ts.map +1 -1
  28. package/dist/manager/ConfManager.js +23 -6
  29. package/dist/manager/ConfManager.js.map +1 -1
  30. package/dist/manager/ModelManager.d.ts +30 -2
  31. package/dist/manager/ModelManager.d.ts.map +1 -1
  32. package/dist/manager/ModelManager.js +103 -32
  33. package/dist/manager/ModelManager.js.map +1 -1
  34. package/dist/manager/PermissionManager.d.ts.map +1 -1
  35. package/dist/manager/PermissionManager.js +50 -36
  36. package/dist/manager/PermissionManager.js.map +1 -1
  37. package/dist/prompt/compact.d.ts +17 -2
  38. package/dist/prompt/compact.d.ts.map +1 -1
  39. package/dist/prompt/compact.js +19 -3
  40. package/dist/prompt/compact.js.map +1 -1
  41. package/dist/prompt/inputPredict.d.ts +1 -1
  42. package/dist/prompt/inputPredict.d.ts.map +1 -1
  43. package/dist/prompt/inputPredict.js +7 -8
  44. package/dist/prompt/inputPredict.js.map +1 -1
  45. package/dist/prompt/permission.d.ts.map +1 -1
  46. package/dist/prompt/permission.js +11 -1
  47. package/dist/prompt/permission.js.map +1 -1
  48. package/dist/prompt/tools/fetchUrl.d.ts +1 -1
  49. package/dist/prompt/tools/fetchUrl.d.ts.map +1 -1
  50. package/dist/prompt/tools/fetchUrl.js +3 -0
  51. package/dist/prompt/tools/fetchUrl.js.map +1 -1
  52. package/dist/services/agents/agentsManager.d.ts.map +1 -1
  53. package/dist/services/agents/agentsManager.js +3 -2
  54. package/dist/services/agents/agentsManager.js.map +1 -1
  55. package/dist/services/api/adapt/openai.d.ts.map +1 -1
  56. package/dist/services/api/adapt/openai.js +25 -4
  57. package/dist/services/api/adapt/openai.js.map +1 -1
  58. package/dist/services/api/adapt/util.d.ts +15 -0
  59. package/dist/services/api/adapt/util.d.ts.map +1 -1
  60. package/dist/services/api/adapt/util.js +54 -2
  61. package/dist/services/api/adapt/util.js.map +1 -1
  62. package/dist/services/api/apiUtil.d.ts.map +1 -1
  63. package/dist/services/api/apiUtil.js +8 -7
  64. package/dist/services/api/apiUtil.js.map +1 -1
  65. package/dist/services/api/queryLLM.d.ts.map +1 -1
  66. package/dist/services/api/queryLLM.js +22 -16
  67. package/dist/services/api/queryLLM.js.map +1 -1
  68. package/dist/services/commands/commandsManager.d.ts.map +1 -1
  69. package/dist/services/commands/commandsManager.js +3 -2
  70. package/dist/services/commands/commandsManager.js.map +1 -1
  71. package/dist/services/commands/runCommand.d.ts.map +1 -1
  72. package/dist/services/commands/runCommand.js +4 -3
  73. package/dist/services/commands/runCommand.js.map +1 -1
  74. package/dist/services/hooks/hookTriggers.d.ts.map +1 -1
  75. package/dist/services/hooks/hookTriggers.js +3 -2
  76. package/dist/services/hooks/hookTriggers.js.map +1 -1
  77. package/dist/services/mcp/MCPClient.d.ts.map +1 -1
  78. package/dist/services/mcp/MCPClient.js +18 -8
  79. package/dist/services/mcp/MCPClient.js.map +1 -1
  80. package/dist/services/mcp/MCPManager.d.ts +8 -7
  81. package/dist/services/mcp/MCPManager.d.ts.map +1 -1
  82. package/dist/services/mcp/MCPManager.js +118 -53
  83. package/dist/services/mcp/MCPManager.js.map +1 -1
  84. package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -1
  85. package/dist/services/mcp/MCPToolAdapter.js +128 -22
  86. package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
  87. package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
  88. package/dist/services/plugins/pluginsManager.js +12 -11
  89. package/dist/services/plugins/pluginsManager.js.map +1 -1
  90. package/dist/tools/FetchUrl.d.ts.map +1 -1
  91. package/dist/tools/FetchUrl.js +10 -3
  92. package/dist/tools/FetchUrl.js.map +1 -1
  93. package/dist/tools/ListCrons.d.ts +1 -0
  94. package/dist/tools/ListCrons.d.ts.map +1 -1
  95. package/dist/tools/ListCrons.js +1 -0
  96. package/dist/tools/ListCrons.js.map +1 -1
  97. package/dist/tools/LoadTools.js +1 -1
  98. package/dist/tools/PeekBgJob.d.ts +2 -2
  99. package/dist/tools/PlanToAgent.d.ts.map +1 -1
  100. package/dist/tools/PlanToAgent.js +7 -4
  101. package/dist/tools/PlanToAgent.js.map +1 -1
  102. package/dist/tools/RunShell.d.ts.map +1 -1
  103. package/dist/tools/RunShell.js +4 -16
  104. package/dist/tools/RunShell.js.map +1 -1
  105. package/dist/tools/base/Tool.d.ts +1 -0
  106. package/dist/tools/base/Tool.d.ts.map +1 -1
  107. package/dist/types/index.d.ts +8 -0
  108. package/dist/types/index.d.ts.map +1 -1
  109. package/dist/types/index.js +7 -2
  110. package/dist/types/index.js.map +1 -1
  111. package/dist/types/mcp.d.ts +7 -0
  112. package/dist/types/mcp.d.ts.map +1 -1
  113. package/dist/types/model.d.ts +3 -0
  114. package/dist/types/model.d.ts.map +1 -1
  115. package/dist/types/session.d.ts +6 -2
  116. package/dist/types/session.d.ts.map +1 -1
  117. package/dist/util/compact.d.ts +11 -9
  118. package/dist/util/compact.d.ts.map +1 -1
  119. package/dist/util/compact.js +294 -65
  120. package/dist/util/compact.js.map +1 -1
  121. package/dist/util/fetchUrl.d.ts +1 -0
  122. package/dist/util/fetchUrl.d.ts.map +1 -1
  123. package/dist/util/fetchUrl.js +34 -4
  124. package/dist/util/fetchUrl.js.map +1 -1
  125. package/dist/util/i18n/de.d.ts +92 -0
  126. package/dist/util/i18n/de.d.ts.map +1 -0
  127. package/dist/util/i18n/de.js +104 -0
  128. package/dist/util/i18n/de.js.map +1 -0
  129. package/dist/util/i18n/en.d.ts +92 -0
  130. package/dist/util/i18n/en.d.ts.map +1 -0
  131. package/dist/util/i18n/en.js +104 -0
  132. package/dist/util/i18n/en.js.map +1 -0
  133. package/dist/util/i18n/fr.d.ts +92 -0
  134. package/dist/util/i18n/fr.d.ts.map +1 -0
  135. package/dist/util/i18n/fr.js +104 -0
  136. package/dist/util/i18n/fr.js.map +1 -0
  137. package/dist/util/i18n/index.d.ts +7 -0
  138. package/dist/util/i18n/index.d.ts.map +1 -0
  139. package/dist/util/i18n/index.js +36 -0
  140. package/dist/util/i18n/index.js.map +1 -0
  141. package/dist/util/i18n/it.d.ts +92 -0
  142. package/dist/util/i18n/it.d.ts.map +1 -0
  143. package/dist/util/i18n/it.js +104 -0
  144. package/dist/util/i18n/it.js.map +1 -0
  145. package/dist/util/i18n/zh.d.ts +96 -0
  146. package/dist/util/i18n/zh.d.ts.map +1 -0
  147. package/dist/util/i18n/zh.js +107 -0
  148. package/dist/util/i18n/zh.js.map +1 -0
  149. package/dist/util/i18n.d.ts +98 -0
  150. package/dist/util/i18n.d.ts.map +1 -0
  151. package/dist/util/i18n.js +228 -0
  152. package/dist/util/i18n.js.map +1 -0
  153. package/dist/util/message.d.ts.map +1 -1
  154. package/dist/util/message.js +3 -0
  155. package/dist/util/message.js.map +1 -1
  156. package/dist/util/model.d.ts.map +1 -1
  157. package/dist/util/model.js +9 -3
  158. package/dist/util/model.js.map +1 -1
  159. package/dist/util/shell.d.ts.map +1 -1
  160. package/dist/util/shell.js +6 -1
  161. package/dist/util/shell.js.map +1 -1
  162. package/dist/util/shellSafety.d.ts +14 -2
  163. package/dist/util/shellSafety.d.ts.map +1 -1
  164. package/dist/util/shellSafety.js +300 -3
  165. package/dist/util/shellSafety.js.map +1 -1
  166. package/dist/util/tokens.d.ts +10 -2
  167. package/dist/util/tokens.d.ts.map +1 -1
  168. package/dist/util/tokens.js +19 -15
  169. package/dist/util/tokens.js.map +1 -1
  170. package/package.json +3 -1
@@ -0,0 +1,92 @@
1
+ export declare const fr: {
2
+ readonly 'permission.agree': "Autoriser";
3
+ readonly 'permission.refuse': "Refuser";
4
+ readonly 'permission.approve': "Approuver";
5
+ readonly 'permission.allowShellPrefix': "Autoriser et ne plus demander pour les commandes commençant par `{prefix}` dans ce projet";
6
+ readonly 'permission.allowShellExact': "Autoriser et ne plus demander pour `{command}` dans ce projet";
7
+ readonly 'permission.allowShellThis': "Autoriser et ne plus demander pour cette commande dans ce projet";
8
+ readonly 'permission.allowEdit': "Autoriser et ne plus demander pour les modifications de fichiers dans cette session";
9
+ readonly 'permission.allowReadDir': "Autoriser et ne plus demander pour les lectures sous {dir} dans cette session";
10
+ readonly 'permission.allowSkill': "Autoriser et ne plus demander pour la skill {skill} dans ce projet";
11
+ readonly 'permission.allowSkillAny': "Autoriser et ne plus demander pour l'outil Skill dans ce projet";
12
+ readonly 'permission.allowMcp': "Autoriser et ne plus demander pour {tool} dans ce projet";
13
+ readonly 'permission.allowFetchDomain': "Autoriser et ne plus demander pour {domain} dans ce projet";
14
+ readonly 'permission.allowFetchThis': "Autoriser et ne plus demander pour ce domaine dans ce projet";
15
+ readonly 'permission.allowGeneric': "Approuver et ne plus demander pour {tool} dans ce projet";
16
+ readonly 'permission.autoApproved': "Autorisé par la vérification du modèle · mode automatique";
17
+ readonly 'plan.startEditing': "Commencer à coder maintenant";
18
+ readonly 'plan.clearContextAndStart': "Réinitialiser le contexte et commencer à coder";
19
+ readonly 'plan.implementPrompt': "Implémente le plan suivant :";
20
+ readonly 'error.unknown': "Erreur inconnue";
21
+ readonly 'error.apiAuth': "Échec de l'authentification API. Vérifiez que la clé API est correcte";
22
+ readonly 'error.apiForbidden': "Accès API refusé. Vérifiez les autorisations de la clé API";
23
+ readonly 'error.apiRateLimit': "Limite de débit API dépassée. Réessayez plus tard";
24
+ readonly 'error.apiParse': "Réponse API mal formée. Impossible d'analyser les données";
25
+ readonly 'error.network': "Erreur réseau. Vérifiez votre connexion";
26
+ readonly 'error.contextTooLong': "Longueur de contexte dépassée";
27
+ readonly 'error.truncatedToolArgs': "La sortie a atteint la limite de tokens de sortie et les arguments de l'outil ont été tronqués. Essayez d'augmenter le nombre maximal de tokens de sortie du modèle";
28
+ readonly 'error.truncatedContent': "La sortie a atteint la limite de tokens de sortie et le contenu a été tronqué. Essayez d'augmenter le nombre maximal de tokens de sortie du modèle";
29
+ readonly 'error.emptyResponse': "L'API a renvoyé une réponse vide. Réessayez une fois ; si l'échec persiste, réessayez plus tard.";
30
+ readonly 'error.noModels': "Aucun modèle configuré. Ajoutez d'abord un modèle";
31
+ readonly 'error.modelResolve': "Impossible de résoudre le modèle : {pointer}";
32
+ readonly 'error.modelConfLoad': "Échec du chargement du fichier de configuration des modèles. Essayez de le supprimer puis d'ajouter à nouveau le modèle";
33
+ readonly 'error.compactFailed': "Échec de la compaction : {error}";
34
+ readonly 'error.compactEmptyHistory': "Historique vide, compaction ignorée";
35
+ readonly 'error.compactNoSummary': "La compaction n'a pas produit de résumé valide : {kind}";
36
+ readonly 'error.streamTimeout': "Délai dépassé pour la requête LLM en streaming ({minutes} min)";
37
+ readonly 'error.streamIdleTimeout': "Délai d'inactivité dépassé pour la requête LLM en streaming ({minutes} min sans nouvelles données)";
38
+ readonly 'error.toolValidation': "Échec de la validation de l'entrée de l'outil";
39
+ readonly 'error.promptBlockedByHook': "Saisie bloquée par le hook UserPromptSubmit";
40
+ readonly 'session.busyRewind': "La session est occupée. Attendez qu'elle soit inactive avant de revenir en arrière";
41
+ readonly 'session.busyFork': "La session est occupée. Attendez qu'elle soit inactive avant de créer une branche";
42
+ readonly 'session.msgNotFound': "Message introuvable : {uuid}";
43
+ readonly 'session.notRewindable': "Ce message n'est pas une saisie utilisateur sur laquelle revenir : {uuid}";
44
+ readonly 'session.notForkable': "Ce message n'est pas une saisie utilisateur à partir de laquelle créer une branche : {uuid}";
45
+ readonly 'session.noForkHistory': "Aucun historique à partir duquel créer une branche";
46
+ readonly 'session.limitReached': "Nombre maximal de sessions atteint ({max}). Fermez d'abord une session existante";
47
+ readonly 'session.initFailed': "Échec de l'initialisation de la session : {error}";
48
+ readonly 'hook.timeout': "Délai du hook dépassé ({seconds} s), arrêté : {command}";
49
+ readonly 'hook.blockIgnored': "L'événement {event} ne peut pas être bloqué ; la sortie de blocage du hook a été ignorée : {command}";
50
+ readonly 'model.testSuccess': "✓ Test de connexion réussi. La configuration API est correcte.";
51
+ readonly 'model.testNoYes': "✗ Réponse API inattendue, marqueur YES introuvable. Réponse : {response}";
52
+ readonly 'model.testHttpError': "✗ L'API a renvoyé une erreur ({status}) : {body}";
53
+ readonly 'model.connectFailed': "Échec de la connexion : {error}";
54
+ readonly 'model.responseTimeout': "Délai de réponse du modèle dépassé. Vérifiez le réseau et le service du modèle";
55
+ readonly 'model.listEmpty': "La liste des modèles est vide";
56
+ readonly 'model.listFailed': "Impossible de récupérer la liste des modèles ({status})";
57
+ readonly 'model.testFailed': "Échec du test de connexion API : {error}";
58
+ readonly 'model.debugCommand': "Commande de débogage :";
59
+ readonly 'model.validateError': "Erreur lors de la validation de l'API : {error}";
60
+ readonly 'model.invalidProvider': "Nom de fournisseur invalide : {error}";
61
+ readonly 'model.providerNameLength': "Doit contenir entre 2 et 20 caractères";
62
+ readonly 'model.providerNameFormat': "Uniquement des lettres minuscules, des chiffres et des tirets ; doit commencer par une lettre et ne pas se terminer par un tiret";
63
+ readonly 'model.invalidName': "Nom de modèle invalide : {name}. Format attendu : \"modelName[provider]\"";
64
+ readonly 'model.notFound': "Modèle introuvable : {name}";
65
+ readonly 'model.inUseByPointer': "Le modèle est utilisé par le(s) pointeur(s) {pointers} et ne peut pas être supprimé";
66
+ readonly 'model.mainNotFound': "Modèle main introuvable : {name}";
67
+ readonly 'model.quickNotFound': "Modèle quick introuvable : {name}";
68
+ readonly 'model.saveFailed': "Échec de l'enregistrement de la configuration du modèle";
69
+ readonly 'mcp.connectTimeout': "Délai de connexion dépassé ({seconds} s)";
70
+ readonly 'mcp.capabilitiesTimeout': "Délai dépassé lors de la récupération des capacités ({seconds} s)";
71
+ readonly 'mcp.closeTimeout': "Délai dépassé lors de la fermeture du client";
72
+ readonly 'mcp.notConnected': "Le serveur MCP [{name}] n'est pas connecté";
73
+ readonly 'mcp.stdioNeedsCommand': "Le transport stdio nécessite \"command\"";
74
+ readonly 'mcp.sseNeedsUrl': "Le transport sse nécessite \"url\"";
75
+ readonly 'mcp.httpNeedsUrl': "Le transport http nécessite \"url\"";
76
+ readonly 'mcp.unsupportedTransport': "Transport non pris en charge : {transport}";
77
+ readonly 'plugin.gitCloneFailed': "Échec de git clone [{repo}] : {stderr}";
78
+ readonly 'plugin.gitPullFailed': "Échec de git pull [{dir}] : {stderr}";
79
+ readonly 'plugin.marketplaceNameFromRepo': "Impossible de lire le nom de la marketplace depuis {repo}. Vérifiez que marketplace.json existe";
80
+ readonly 'plugin.marketplaceNameMissing': "Impossible de lire le nom de la marketplace. Vérifiez que marketplace.json existe";
81
+ readonly 'plugin.dirNotFound': "Répertoire introuvable : {dir}";
82
+ readonly 'plugin.marketplaceNotFound': "Marketplace introuvable : {name}";
83
+ readonly 'plugin.marketplaceNotGithub': "La marketplace [{name}] n'est pas une source GitHub et ne peut pas être mise à jour";
84
+ readonly 'plugin.marketplaceUnreadable': "Impossible de lire les informations de la marketplace : {name}";
85
+ readonly 'plugin.notInMarketplace': "Plugin [{plugin}] introuvable dans la marketplace [{name}]";
86
+ readonly 'plugin.gitClonePluginFailed': "Échec de git clone du plugin [{url}] : {stderr}";
87
+ readonly 'agent.addMissingFields': "Impossible d'ajouter l'agent : champ obligatoire name, prompt ou description manquant";
88
+ readonly 'agent.addInvalidLocate': "Impossible d'ajouter l'agent : locate doit valoir 'project' ou 'user'";
89
+ readonly 'command.addMissingFields': "Impossible d'ajouter la commande : champ obligatoire name, description ou prompt manquant";
90
+ readonly 'command.addInvalidLocate': "Impossible d'ajouter la commande : locate doit valoir 'project' ou 'user'";
91
+ };
92
+ //# sourceMappingURL=fr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../../src/util/i18n/fr.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2G6B,CAAA"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fr = void 0;
4
+ exports.fr = {
5
+ // ---- 权限面板 ----
6
+ 'permission.agree': 'Autoriser',
7
+ 'permission.refuse': 'Refuser',
8
+ 'permission.approve': 'Approuver',
9
+ 'permission.allowShellPrefix': 'Autoriser et ne plus demander pour les commandes commençant par `{prefix}` dans ce projet',
10
+ 'permission.allowShellExact': 'Autoriser et ne plus demander pour `{command}` dans ce projet',
11
+ 'permission.allowShellThis': 'Autoriser et ne plus demander pour cette commande dans ce projet',
12
+ 'permission.allowEdit': 'Autoriser et ne plus demander pour les modifications de fichiers dans cette session',
13
+ 'permission.allowReadDir': 'Autoriser et ne plus demander pour les lectures sous {dir} dans cette session',
14
+ 'permission.allowSkill': 'Autoriser et ne plus demander pour la skill {skill} dans ce projet',
15
+ 'permission.allowSkillAny': "Autoriser et ne plus demander pour l'outil Skill dans ce projet",
16
+ 'permission.allowMcp': 'Autoriser et ne plus demander pour {tool} dans ce projet',
17
+ 'permission.allowFetchDomain': 'Autoriser et ne plus demander pour {domain} dans ce projet',
18
+ 'permission.allowFetchThis': 'Autoriser et ne plus demander pour ce domaine dans ce projet',
19
+ 'permission.allowGeneric': 'Approuver et ne plus demander pour {tool} dans ce projet',
20
+ 'permission.autoApproved': 'Autorisé par la vérification du modèle · mode automatique',
21
+ // ---- Plan 模式 ----
22
+ 'plan.startEditing': 'Commencer à coder maintenant',
23
+ 'plan.clearContextAndStart': 'Réinitialiser le contexte et commencer à coder',
24
+ 'plan.implementPrompt': 'Implémente le plan suivant :',
25
+ // ---- 会话错误 ----
26
+ 'error.unknown': 'Erreur inconnue',
27
+ 'error.apiAuth': "Échec de l'authentification API. Vérifiez que la clé API est correcte",
28
+ 'error.apiForbidden': 'Accès API refusé. Vérifiez les autorisations de la clé API',
29
+ 'error.apiRateLimit': 'Limite de débit API dépassée. Réessayez plus tard',
30
+ 'error.apiParse': "Réponse API mal formée. Impossible d'analyser les données",
31
+ 'error.network': 'Erreur réseau. Vérifiez votre connexion',
32
+ 'error.contextTooLong': 'Longueur de contexte dépassée',
33
+ 'error.truncatedToolArgs': "La sortie a atteint la limite de tokens de sortie et les arguments de l'outil ont été tronqués. Essayez d'augmenter le nombre maximal de tokens de sortie du modèle",
34
+ 'error.truncatedContent': "La sortie a atteint la limite de tokens de sortie et le contenu a été tronqué. Essayez d'augmenter le nombre maximal de tokens de sortie du modèle",
35
+ 'error.emptyResponse': "L'API a renvoyé une réponse vide. Réessayez une fois ; si l'échec persiste, réessayez plus tard.",
36
+ 'error.noModels': "Aucun modèle configuré. Ajoutez d'abord un modèle",
37
+ 'error.modelResolve': 'Impossible de résoudre le modèle : {pointer}',
38
+ 'error.modelConfLoad': "Échec du chargement du fichier de configuration des modèles. Essayez de le supprimer puis d'ajouter à nouveau le modèle",
39
+ 'error.compactFailed': 'Échec de la compaction : {error}',
40
+ 'error.compactEmptyHistory': 'Historique vide, compaction ignorée',
41
+ 'error.compactNoSummary': "La compaction n'a pas produit de résumé valide : {kind}",
42
+ 'error.streamTimeout': 'Délai dépassé pour la requête LLM en streaming ({minutes} min)',
43
+ 'error.streamIdleTimeout': "Délai d'inactivité dépassé pour la requête LLM en streaming ({minutes} min sans nouvelles données)",
44
+ 'error.toolValidation': "Échec de la validation de l'entrée de l'outil",
45
+ 'error.promptBlockedByHook': 'Saisie bloquée par le hook UserPromptSubmit',
46
+ // ---- 会话管理 ----
47
+ 'session.busyRewind': "La session est occupée. Attendez qu'elle soit inactive avant de revenir en arrière",
48
+ 'session.busyFork': "La session est occupée. Attendez qu'elle soit inactive avant de créer une branche",
49
+ 'session.msgNotFound': 'Message introuvable : {uuid}',
50
+ 'session.notRewindable': "Ce message n'est pas une saisie utilisateur sur laquelle revenir : {uuid}",
51
+ 'session.notForkable': "Ce message n'est pas une saisie utilisateur à partir de laquelle créer une branche : {uuid}",
52
+ 'session.noForkHistory': 'Aucun historique à partir duquel créer une branche',
53
+ 'session.limitReached': "Nombre maximal de sessions atteint ({max}). Fermez d'abord une session existante",
54
+ 'session.initFailed': "Échec de l'initialisation de la session : {error}",
55
+ // ---- Hook 通知 ----
56
+ 'hook.timeout': 'Délai du hook dépassé ({seconds} s), arrêté : {command}',
57
+ 'hook.blockIgnored': "L'événement {event} ne peut pas être bloqué ; la sortie de blocage du hook a été ignorée : {command}",
58
+ // ---- 模型配置 ----
59
+ 'model.testSuccess': '✓ Test de connexion réussi. La configuration API est correcte.',
60
+ 'model.testNoYes': '✗ Réponse API inattendue, marqueur YES introuvable. Réponse : {response}',
61
+ 'model.testHttpError': "✗ L'API a renvoyé une erreur ({status}) : {body}",
62
+ 'model.connectFailed': 'Échec de la connexion : {error}',
63
+ 'model.responseTimeout': 'Délai de réponse du modèle dépassé. Vérifiez le réseau et le service du modèle',
64
+ 'model.listEmpty': 'La liste des modèles est vide',
65
+ 'model.listFailed': 'Impossible de récupérer la liste des modèles ({status})',
66
+ 'model.testFailed': 'Échec du test de connexion API : {error}',
67
+ 'model.debugCommand': 'Commande de débogage :',
68
+ 'model.validateError': "Erreur lors de la validation de l'API : {error}",
69
+ 'model.invalidProvider': 'Nom de fournisseur invalide : {error}',
70
+ 'model.providerNameLength': 'Doit contenir entre 2 et 20 caractères',
71
+ 'model.providerNameFormat': 'Uniquement des lettres minuscules, des chiffres et des tirets ; doit commencer par une lettre et ne pas se terminer par un tiret',
72
+ 'model.invalidName': 'Nom de modèle invalide : {name}. Format attendu : "modelName[provider]"',
73
+ 'model.notFound': 'Modèle introuvable : {name}',
74
+ 'model.inUseByPointer': 'Le modèle est utilisé par le(s) pointeur(s) {pointers} et ne peut pas être supprimé',
75
+ 'model.mainNotFound': 'Modèle main introuvable : {name}',
76
+ 'model.quickNotFound': 'Modèle quick introuvable : {name}',
77
+ 'model.saveFailed': "Échec de l'enregistrement de la configuration du modèle",
78
+ // ---- MCP ----
79
+ 'mcp.connectTimeout': 'Délai de connexion dépassé ({seconds} s)',
80
+ 'mcp.capabilitiesTimeout': 'Délai dépassé lors de la récupération des capacités ({seconds} s)',
81
+ 'mcp.closeTimeout': 'Délai dépassé lors de la fermeture du client',
82
+ 'mcp.notConnected': "Le serveur MCP [{name}] n'est pas connecté",
83
+ 'mcp.stdioNeedsCommand': 'Le transport stdio nécessite "command"',
84
+ 'mcp.sseNeedsUrl': 'Le transport sse nécessite "url"',
85
+ 'mcp.httpNeedsUrl': 'Le transport http nécessite "url"',
86
+ 'mcp.unsupportedTransport': 'Transport non pris en charge : {transport}',
87
+ // ---- 插件市场 ----
88
+ 'plugin.gitCloneFailed': 'Échec de git clone [{repo}] : {stderr}',
89
+ 'plugin.gitPullFailed': 'Échec de git pull [{dir}] : {stderr}',
90
+ 'plugin.marketplaceNameFromRepo': "Impossible de lire le nom de la marketplace depuis {repo}. Vérifiez que marketplace.json existe",
91
+ 'plugin.marketplaceNameMissing': 'Impossible de lire le nom de la marketplace. Vérifiez que marketplace.json existe',
92
+ 'plugin.dirNotFound': 'Répertoire introuvable : {dir}',
93
+ 'plugin.marketplaceNotFound': 'Marketplace introuvable : {name}',
94
+ 'plugin.marketplaceNotGithub': "La marketplace [{name}] n'est pas une source GitHub et ne peut pas être mise à jour",
95
+ 'plugin.marketplaceUnreadable': 'Impossible de lire les informations de la marketplace : {name}',
96
+ 'plugin.notInMarketplace': 'Plugin [{plugin}] introuvable dans la marketplace [{name}]',
97
+ 'plugin.gitClonePluginFailed': 'Échec de git clone du plugin [{url}] : {stderr}',
98
+ // ---- Agent / Command 管理 ----
99
+ 'agent.addMissingFields': "Impossible d'ajouter l'agent : champ obligatoire name, prompt ou description manquant",
100
+ 'agent.addInvalidLocate': "Impossible d'ajouter l'agent : locate doit valoir 'project' ou 'user'",
101
+ 'command.addMissingFields': "Impossible d'ajouter la commande : champ obligatoire name, description ou prompt manquant",
102
+ 'command.addInvalidLocate': "Impossible d'ajouter la commande : locate doit valoir 'project' ou 'user'",
103
+ };
104
+ //# sourceMappingURL=fr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fr.js","sourceRoot":"","sources":["../../../src/util/i18n/fr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type I18nKey } from './zh';
2
+ export type { I18nKey };
3
+ /**
4
+ * 按当前 lang 取文案并替换 {name} 占位符;缺 key 时回落中文,再缺返回 key 本身
5
+ */
6
+ export declare function t(key: I18nKey, vars?: Record<string, string | number>): string;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/i18n/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAM,KAAK,OAAO,EAAE,MAAM,MAAM,CAAA;AAMvC,YAAY,EAAE,OAAO,EAAE,CAAA;AAIvB;;GAEG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAS9E"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.t = t;
4
+ /**
5
+ * UI 可见文案的多语言入口。
6
+ *
7
+ * 覆盖范围:权限面板选项、Plan 退出选项、session:error / hook 通知、模型配置校验、
8
+ * 管理接口抛错等会展示到 UI 的文案。日志、注释、提示词、给 LLM 的工具输出不走这里。
9
+ *
10
+ * t() 每次调用读当前 lang(ConfManager.getLanguage),updateCoreConfig({ lang }) 后即时生效。
11
+ * 占位符形如 {name},与 webui 的 t(key, vars) 同风格。
12
+ *
13
+ * 新增语言:types/index.ts 的 SUPPORTED_LANGUAGES 加值,本目录加 <lang>.ts
14
+ * (satisfies Record<I18nKey, string>),在 MESSAGES 注册。漏译 key、漏注册均编译报错。
15
+ */
16
+ const ConfManager_1 = require("../../manager/ConfManager");
17
+ const zh_1 = require("./zh");
18
+ const en_1 = require("./en");
19
+ const de_1 = require("./de");
20
+ const fr_1 = require("./fr");
21
+ const it_1 = require("./it");
22
+ const MESSAGES = { zh: zh_1.zh, en: en_1.en, de: de_1.de, fr: fr_1.fr, it: it_1.it };
23
+ /**
24
+ * 按当前 lang 取文案并替换 {name} 占位符;缺 key 时回落中文,再缺返回 key 本身
25
+ */
26
+ function t(key, vars) {
27
+ const lang = (0, ConfManager_1.getConfManager)().getLanguage();
28
+ let s = MESSAGES[lang]?.[key] ?? zh_1.zh[key] ?? key;
29
+ if (vars) {
30
+ for (const [k, v] of Object.entries(vars)) {
31
+ s = s.split(`{${k}}`).join(String(v));
32
+ }
33
+ }
34
+ return s;
35
+ }
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/i18n/index.ts"],"names":[],"mappings":";;AA2BA,cASC;AApCD;;;;;;;;;;;GAWG;AACH,2DAA0D;AAE1D,6BAAuC;AACvC,6BAAyB;AACzB,6BAAyB;AACzB,6BAAyB;AACzB,6BAAyB;AAIzB,MAAM,QAAQ,GAA8C,EAAE,EAAE,EAAF,OAAE,EAAE,EAAE,EAAF,OAAE,EAAE,EAAE,EAAF,OAAE,EAAE,EAAE,EAAF,OAAE,EAAE,EAAE,EAAF,OAAE,EAAE,CAAA;AAElF;;GAEG;AACH,SAAgB,CAAC,CAAC,GAAY,EAAE,IAAsC;IACpE,MAAM,IAAI,GAAG,IAAA,4BAAc,GAAE,CAAC,WAAW,EAAE,CAAA;IAC3C,IAAI,CAAC,GAAW,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,OAAE,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;IACvD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
@@ -0,0 +1,92 @@
1
+ export declare const it: {
2
+ readonly 'permission.agree': "Consenti";
3
+ readonly 'permission.refuse': "Rifiuta";
4
+ readonly 'permission.approve': "Approva";
5
+ readonly 'permission.allowShellPrefix': "Consenti e non chiedere più per i comandi che iniziano con `{prefix}` in questo progetto";
6
+ readonly 'permission.allowShellExact': "Consenti e non chiedere più per `{command}` in questo progetto";
7
+ readonly 'permission.allowShellThis': "Consenti e non chiedere più per questo comando in questo progetto";
8
+ readonly 'permission.allowEdit': "Consenti e non chiedere più per le modifiche ai file in questa sessione";
9
+ readonly 'permission.allowReadDir': "Consenti e non chiedere più per le letture in {dir} in questa sessione";
10
+ readonly 'permission.allowSkill': "Consenti e non chiedere più per la skill {skill} in questo progetto";
11
+ readonly 'permission.allowSkillAny': "Consenti e non chiedere più per lo strumento Skill in questo progetto";
12
+ readonly 'permission.allowMcp': "Consenti e non chiedere più per {tool} in questo progetto";
13
+ readonly 'permission.allowFetchDomain': "Consenti e non chiedere più per {domain} in questo progetto";
14
+ readonly 'permission.allowFetchThis': "Consenti e non chiedere più per questo dominio in questo progetto";
15
+ readonly 'permission.allowGeneric': "Approva e non chiedere più per {tool} in questo progetto";
16
+ readonly 'permission.autoApproved': "Consentito dalla verifica del modello · modalità automatica";
17
+ readonly 'plan.startEditing': "Inizia subito a programmare";
18
+ readonly 'plan.clearContextAndStart': "Reimposta il contesto e inizia a programmare";
19
+ readonly 'plan.implementPrompt': "Implementa il seguente piano:";
20
+ readonly 'error.unknown': "Errore sconosciuto";
21
+ readonly 'error.apiAuth': "Autenticazione API non riuscita. Verifica che la chiave API sia corretta";
22
+ readonly 'error.apiForbidden': "Accesso API negato. Verifica i permessi della chiave API";
23
+ readonly 'error.apiRateLimit': "Limite di richieste API superato. Riprova più tardi";
24
+ readonly 'error.apiParse': "Risposta API non valida. Impossibile analizzare i dati";
25
+ readonly 'error.network': "Errore di rete. Verifica la connessione";
26
+ readonly 'error.contextTooLong': "Lunghezza del contesto superata";
27
+ readonly 'error.truncatedToolArgs': "L'output ha raggiunto il limite di token di output e gli argomenti dello strumento sono stati troncati. Prova ad aumentare il numero massimo di token di output del modello";
28
+ readonly 'error.truncatedContent': "L'output ha raggiunto il limite di token di output e il contenuto è stato troncato. Prova ad aumentare il numero massimo di token di output del modello";
29
+ readonly 'error.emptyResponse': "L'API ha restituito una risposta vuota. Riprova una volta; se continua a non funzionare, riprova più tardi.";
30
+ readonly 'error.noModels': "Nessun modello configurato. Aggiungi prima un modello";
31
+ readonly 'error.modelResolve': "Impossibile risolvere il modello: {pointer}";
32
+ readonly 'error.modelConfLoad': "Impossibile caricare il file di configurazione dei modelli. Prova a eliminarlo e ad aggiungere di nuovo il modello";
33
+ readonly 'error.compactFailed': "Compattazione non riuscita: {error}";
34
+ readonly 'error.compactEmptyHistory': "Cronologia vuota, compattazione saltata";
35
+ readonly 'error.compactNoSummary': "La compattazione non ha prodotto un riepilogo valido: {kind}";
36
+ readonly 'error.streamTimeout': "Timeout della richiesta LLM in streaming ({minutes} min)";
37
+ readonly 'error.streamIdleTimeout': "Timeout di inattività della richiesta LLM in streaming ({minutes} min senza nuovi dati)";
38
+ readonly 'error.toolValidation': "Convalida dell'input dello strumento non riuscita";
39
+ readonly 'error.promptBlockedByHook': "Input bloccato dall'hook UserPromptSubmit";
40
+ readonly 'session.busyRewind': "La sessione è occupata. Attendi che sia inattiva prima di tornare indietro";
41
+ readonly 'session.busyFork': "La sessione è occupata. Attendi che sia inattiva prima di creare un ramo";
42
+ readonly 'session.msgNotFound': "Messaggio non trovato: {uuid}";
43
+ readonly 'session.notRewindable': "Questo messaggio non è un input dell'utente a cui si può tornare: {uuid}";
44
+ readonly 'session.notForkable': "Questo messaggio non è un input dell'utente da cui creare un ramo: {uuid}";
45
+ readonly 'session.noForkHistory': "Nessuna cronologia da cui creare un ramo";
46
+ readonly 'session.limitReached': "Limite di sessioni raggiunto ({max}). Chiudi prima una sessione esistente";
47
+ readonly 'session.initFailed': "Inizializzazione della sessione non riuscita: {error}";
48
+ readonly 'hook.timeout': "Timeout dell'hook ({seconds}s), terminato: {command}";
49
+ readonly 'hook.blockIgnored': "L'evento {event} non può essere bloccato; l'output di blocco dell'hook è stato ignorato: {command}";
50
+ readonly 'model.testSuccess': "✓ Test di connessione riuscito. La configurazione API è corretta.";
51
+ readonly 'model.testNoYes': "✗ Risposta API inattesa, marcatore YES non trovato. Risposta: {response}";
52
+ readonly 'model.testHttpError': "✗ L'API ha restituito un errore ({status}): {body}";
53
+ readonly 'model.connectFailed': "Connessione non riuscita: {error}";
54
+ readonly 'model.responseTimeout': "Timeout della risposta del modello. Verifica la rete e il servizio del modello";
55
+ readonly 'model.listEmpty': "L'elenco dei modelli è vuoto";
56
+ readonly 'model.listFailed': "Impossibile recuperare l'elenco dei modelli ({status})";
57
+ readonly 'model.testFailed': "Test di connessione API non riuscito: {error}";
58
+ readonly 'model.debugCommand': "Comando di debug:";
59
+ readonly 'model.validateError': "Errore durante la convalida dell'API: {error}";
60
+ readonly 'model.invalidProvider': "Nome del provider non valido: {error}";
61
+ readonly 'model.providerNameLength': "Deve contenere da 2 a 20 caratteri";
62
+ readonly 'model.providerNameFormat': "Solo lettere minuscole, cifre e trattini; deve iniziare con una lettera e non terminare con un trattino";
63
+ readonly 'model.invalidName': "Nome del modello non valido: {name}. Formato previsto: \"modelName[provider]\"";
64
+ readonly 'model.notFound': "Modello non trovato: {name}";
65
+ readonly 'model.inUseByPointer': "Il modello è in uso dai puntatori {pointers} e non può essere eliminato";
66
+ readonly 'model.mainNotFound': "Modello main non trovato: {name}";
67
+ readonly 'model.quickNotFound': "Modello quick non trovato: {name}";
68
+ readonly 'model.saveFailed': "Impossibile salvare la configurazione del modello";
69
+ readonly 'mcp.connectTimeout': "Timeout della connessione ({seconds}s)";
70
+ readonly 'mcp.capabilitiesTimeout': "Timeout durante il recupero delle funzionalità ({seconds}s)";
71
+ readonly 'mcp.closeTimeout': "Timeout durante la chiusura del client";
72
+ readonly 'mcp.notConnected': "Il server MCP [{name}] non è connesso";
73
+ readonly 'mcp.stdioNeedsCommand': "Il trasporto stdio richiede \"command\"";
74
+ readonly 'mcp.sseNeedsUrl': "Il trasporto sse richiede \"url\"";
75
+ readonly 'mcp.httpNeedsUrl': "Il trasporto http richiede \"url\"";
76
+ readonly 'mcp.unsupportedTransport': "Trasporto non supportato: {transport}";
77
+ readonly 'plugin.gitCloneFailed': "git clone non riuscito [{repo}]: {stderr}";
78
+ readonly 'plugin.gitPullFailed': "git pull non riuscito [{dir}]: {stderr}";
79
+ readonly 'plugin.marketplaceNameFromRepo': "Impossibile leggere il nome del marketplace da {repo}. Verifica che marketplace.json esista";
80
+ readonly 'plugin.marketplaceNameMissing': "Impossibile leggere il nome del marketplace. Verifica che marketplace.json esista";
81
+ readonly 'plugin.dirNotFound': "Directory non trovata: {dir}";
82
+ readonly 'plugin.marketplaceNotFound': "Marketplace non trovato: {name}";
83
+ readonly 'plugin.marketplaceNotGithub': "Il marketplace [{name}] non è una sorgente GitHub e non può essere aggiornato";
84
+ readonly 'plugin.marketplaceUnreadable': "Impossibile leggere le informazioni del marketplace: {name}";
85
+ readonly 'plugin.notInMarketplace': "Plugin [{plugin}] non trovato nel marketplace [{name}]";
86
+ readonly 'plugin.gitClonePluginFailed': "git clone del plugin non riuscito [{url}]: {stderr}";
87
+ readonly 'agent.addMissingFields': "Impossibile aggiungere l'agent: campo obbligatorio name, prompt o description mancante";
88
+ readonly 'agent.addInvalidLocate': "Impossibile aggiungere l'agent: locate deve essere 'project' o 'user'";
89
+ readonly 'command.addMissingFields': "Impossibile aggiungere il comando: campo obbligatorio name, description o prompt mancante";
90
+ readonly 'command.addInvalidLocate': "Impossibile aggiungere il comando: locate deve essere 'project' o 'user'";
91
+ };
92
+ //# sourceMappingURL=it.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../../src/util/i18n/it.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2G6B,CAAA"}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.it = void 0;
4
+ exports.it = {
5
+ // ---- 权限面板 ----
6
+ 'permission.agree': 'Consenti',
7
+ 'permission.refuse': 'Rifiuta',
8
+ 'permission.approve': 'Approva',
9
+ 'permission.allowShellPrefix': 'Consenti e non chiedere più per i comandi che iniziano con `{prefix}` in questo progetto',
10
+ 'permission.allowShellExact': 'Consenti e non chiedere più per `{command}` in questo progetto',
11
+ 'permission.allowShellThis': 'Consenti e non chiedere più per questo comando in questo progetto',
12
+ 'permission.allowEdit': 'Consenti e non chiedere più per le modifiche ai file in questa sessione',
13
+ 'permission.allowReadDir': 'Consenti e non chiedere più per le letture in {dir} in questa sessione',
14
+ 'permission.allowSkill': 'Consenti e non chiedere più per la skill {skill} in questo progetto',
15
+ 'permission.allowSkillAny': 'Consenti e non chiedere più per lo strumento Skill in questo progetto',
16
+ 'permission.allowMcp': 'Consenti e non chiedere più per {tool} in questo progetto',
17
+ 'permission.allowFetchDomain': 'Consenti e non chiedere più per {domain} in questo progetto',
18
+ 'permission.allowFetchThis': 'Consenti e non chiedere più per questo dominio in questo progetto',
19
+ 'permission.allowGeneric': 'Approva e non chiedere più per {tool} in questo progetto',
20
+ 'permission.autoApproved': 'Consentito dalla verifica del modello · modalità automatica',
21
+ // ---- Plan 模式 ----
22
+ 'plan.startEditing': 'Inizia subito a programmare',
23
+ 'plan.clearContextAndStart': 'Reimposta il contesto e inizia a programmare',
24
+ 'plan.implementPrompt': 'Implementa il seguente piano:',
25
+ // ---- 会话错误 ----
26
+ 'error.unknown': 'Errore sconosciuto',
27
+ 'error.apiAuth': 'Autenticazione API non riuscita. Verifica che la chiave API sia corretta',
28
+ 'error.apiForbidden': 'Accesso API negato. Verifica i permessi della chiave API',
29
+ 'error.apiRateLimit': 'Limite di richieste API superato. Riprova più tardi',
30
+ 'error.apiParse': 'Risposta API non valida. Impossibile analizzare i dati',
31
+ 'error.network': 'Errore di rete. Verifica la connessione',
32
+ 'error.contextTooLong': 'Lunghezza del contesto superata',
33
+ 'error.truncatedToolArgs': "L'output ha raggiunto il limite di token di output e gli argomenti dello strumento sono stati troncati. Prova ad aumentare il numero massimo di token di output del modello",
34
+ 'error.truncatedContent': "L'output ha raggiunto il limite di token di output e il contenuto è stato troncato. Prova ad aumentare il numero massimo di token di output del modello",
35
+ 'error.emptyResponse': "L'API ha restituito una risposta vuota. Riprova una volta; se continua a non funzionare, riprova più tardi.",
36
+ 'error.noModels': 'Nessun modello configurato. Aggiungi prima un modello',
37
+ 'error.modelResolve': 'Impossibile risolvere il modello: {pointer}',
38
+ 'error.modelConfLoad': 'Impossibile caricare il file di configurazione dei modelli. Prova a eliminarlo e ad aggiungere di nuovo il modello',
39
+ 'error.compactFailed': 'Compattazione non riuscita: {error}',
40
+ 'error.compactEmptyHistory': 'Cronologia vuota, compattazione saltata',
41
+ 'error.compactNoSummary': 'La compattazione non ha prodotto un riepilogo valido: {kind}',
42
+ 'error.streamTimeout': 'Timeout della richiesta LLM in streaming ({minutes} min)',
43
+ 'error.streamIdleTimeout': 'Timeout di inattività della richiesta LLM in streaming ({minutes} min senza nuovi dati)',
44
+ 'error.toolValidation': "Convalida dell'input dello strumento non riuscita",
45
+ 'error.promptBlockedByHook': "Input bloccato dall'hook UserPromptSubmit",
46
+ // ---- 会话管理 ----
47
+ 'session.busyRewind': 'La sessione è occupata. Attendi che sia inattiva prima di tornare indietro',
48
+ 'session.busyFork': 'La sessione è occupata. Attendi che sia inattiva prima di creare un ramo',
49
+ 'session.msgNotFound': 'Messaggio non trovato: {uuid}',
50
+ 'session.notRewindable': "Questo messaggio non è un input dell'utente a cui si può tornare: {uuid}",
51
+ 'session.notForkable': "Questo messaggio non è un input dell'utente da cui creare un ramo: {uuid}",
52
+ 'session.noForkHistory': 'Nessuna cronologia da cui creare un ramo',
53
+ 'session.limitReached': 'Limite di sessioni raggiunto ({max}). Chiudi prima una sessione esistente',
54
+ 'session.initFailed': 'Inizializzazione della sessione non riuscita: {error}',
55
+ // ---- Hook 通知 ----
56
+ 'hook.timeout': 'Timeout dell\'hook ({seconds}s), terminato: {command}',
57
+ 'hook.blockIgnored': "L'evento {event} non può essere bloccato; l'output di blocco dell'hook è stato ignorato: {command}",
58
+ // ---- 模型配置 ----
59
+ 'model.testSuccess': '✓ Test di connessione riuscito. La configurazione API è corretta.',
60
+ 'model.testNoYes': '✗ Risposta API inattesa, marcatore YES non trovato. Risposta: {response}',
61
+ 'model.testHttpError': "✗ L'API ha restituito un errore ({status}): {body}",
62
+ 'model.connectFailed': 'Connessione non riuscita: {error}',
63
+ 'model.responseTimeout': 'Timeout della risposta del modello. Verifica la rete e il servizio del modello',
64
+ 'model.listEmpty': "L'elenco dei modelli è vuoto",
65
+ 'model.listFailed': "Impossibile recuperare l'elenco dei modelli ({status})",
66
+ 'model.testFailed': 'Test di connessione API non riuscito: {error}',
67
+ 'model.debugCommand': 'Comando di debug:',
68
+ 'model.validateError': "Errore durante la convalida dell'API: {error}",
69
+ 'model.invalidProvider': 'Nome del provider non valido: {error}',
70
+ 'model.providerNameLength': 'Deve contenere da 2 a 20 caratteri',
71
+ 'model.providerNameFormat': 'Solo lettere minuscole, cifre e trattini; deve iniziare con una lettera e non terminare con un trattino',
72
+ 'model.invalidName': 'Nome del modello non valido: {name}. Formato previsto: "modelName[provider]"',
73
+ 'model.notFound': 'Modello non trovato: {name}',
74
+ 'model.inUseByPointer': 'Il modello è in uso dai puntatori {pointers} e non può essere eliminato',
75
+ 'model.mainNotFound': 'Modello main non trovato: {name}',
76
+ 'model.quickNotFound': 'Modello quick non trovato: {name}',
77
+ 'model.saveFailed': 'Impossibile salvare la configurazione del modello',
78
+ // ---- MCP ----
79
+ 'mcp.connectTimeout': 'Timeout della connessione ({seconds}s)',
80
+ 'mcp.capabilitiesTimeout': 'Timeout durante il recupero delle funzionalità ({seconds}s)',
81
+ 'mcp.closeTimeout': 'Timeout durante la chiusura del client',
82
+ 'mcp.notConnected': 'Il server MCP [{name}] non è connesso',
83
+ 'mcp.stdioNeedsCommand': 'Il trasporto stdio richiede "command"',
84
+ 'mcp.sseNeedsUrl': 'Il trasporto sse richiede "url"',
85
+ 'mcp.httpNeedsUrl': 'Il trasporto http richiede "url"',
86
+ 'mcp.unsupportedTransport': 'Trasporto non supportato: {transport}',
87
+ // ---- 插件市场 ----
88
+ 'plugin.gitCloneFailed': 'git clone non riuscito [{repo}]: {stderr}',
89
+ 'plugin.gitPullFailed': 'git pull non riuscito [{dir}]: {stderr}',
90
+ 'plugin.marketplaceNameFromRepo': 'Impossibile leggere il nome del marketplace da {repo}. Verifica che marketplace.json esista',
91
+ 'plugin.marketplaceNameMissing': 'Impossibile leggere il nome del marketplace. Verifica che marketplace.json esista',
92
+ 'plugin.dirNotFound': 'Directory non trovata: {dir}',
93
+ 'plugin.marketplaceNotFound': 'Marketplace non trovato: {name}',
94
+ 'plugin.marketplaceNotGithub': 'Il marketplace [{name}] non è una sorgente GitHub e non può essere aggiornato',
95
+ 'plugin.marketplaceUnreadable': 'Impossibile leggere le informazioni del marketplace: {name}',
96
+ 'plugin.notInMarketplace': 'Plugin [{plugin}] non trovato nel marketplace [{name}]',
97
+ 'plugin.gitClonePluginFailed': 'git clone del plugin non riuscito [{url}]: {stderr}',
98
+ // ---- Agent / Command 管理 ----
99
+ 'agent.addMissingFields': "Impossibile aggiungere l'agent: campo obbligatorio name, prompt o description mancante",
100
+ 'agent.addInvalidLocate': "Impossibile aggiungere l'agent: locate deve essere 'project' o 'user'",
101
+ 'command.addMissingFields': 'Impossibile aggiungere il comando: campo obbligatorio name, description o prompt mancante',
102
+ 'command.addInvalidLocate': "Impossibile aggiungere il comando: locate deve essere 'project' o 'user'",
103
+ };
104
+ //# sourceMappingURL=it.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"it.js","sourceRoot":"","sources":["../../../src/util/i18n/it.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * 中文文案(基准语言):key 集合以本文件为准,其他语言须覆盖全部 key
3
+ */
4
+ export declare const zh: {
5
+ readonly 'permission.agree': "确认";
6
+ readonly 'permission.refuse': "拒绝";
7
+ readonly 'permission.approve': "同意";
8
+ readonly 'permission.allowShellPrefix': "确认,本项目不再询问 `{prefix}` 开头的命令";
9
+ readonly 'permission.allowShellExact': "确认,本项目不再询问 `{command}` 命令";
10
+ readonly 'permission.allowShellThis': "确认,本项目不再询问此命令";
11
+ readonly 'permission.allowEdit': "确认, 本次会话不再询问文件编辑";
12
+ readonly 'permission.allowReadDir': "确认,本次会话不再询问 {dir} 目录下的读取";
13
+ readonly 'permission.allowSkill': "确认,本项目不再询问 {skill} Skill";
14
+ readonly 'permission.allowSkillAny': "确认,本项目不再询问 Skill 工具";
15
+ readonly 'permission.allowMcp': "确认,本项目不再询问 {tool} 工具";
16
+ readonly 'permission.allowFetchDomain': "确认,本项目不再询问 {domain} 域名";
17
+ readonly 'permission.allowFetchThis': "确认,本项目不再询问此域名";
18
+ readonly 'permission.allowGeneric': "同意,本项目不再询问 {tool} 权限";
19
+ readonly 'permission.autoApproved': "模型安全判断放行 · 自动模式";
20
+ readonly 'plan.startEditing': "直接开始编码";
21
+ readonly 'plan.clearContextAndStart': "重置上下文后开始编码";
22
+ readonly 'plan.implementPrompt': "按照以下计划进行实现:";
23
+ readonly 'error.unknown': "未知错误";
24
+ readonly 'error.apiAuth': "API认证失败,请检查API密钥是否正确";
25
+ readonly 'error.apiForbidden': "API权限不足,请检查API密钥权限";
26
+ readonly 'error.apiRateLimit': "API调用频率超限,请稍后重试";
27
+ readonly 'error.apiParse': "API响应格式错误,无法解析数据";
28
+ readonly 'error.network': "网络连接错误,请检查网络连接";
29
+ readonly 'error.contextTooLong': "上下文长度超出限制";
30
+ readonly 'error.truncatedToolArgs': "API输出超长导致工具参数截断,可尝试调整模型最大输出token";
31
+ readonly 'error.truncatedContent': "API输出超长导致内容截断,可尝试调整模型最大输出token";
32
+ readonly 'error.emptyResponse': "API返回空响应:模型暂时没有返回有效内容,请重试一次。若多次重试仍失败,请稍后再试。";
33
+ readonly 'error.noModels': "未配置任何模型,请先添加模型配置";
34
+ readonly 'error.modelResolve': "解析模型失败: {pointer}";
35
+ readonly 'error.modelConfLoad': "模型配置文件加载失败,可尝试删除模型配置文件后重新添加模型";
36
+ readonly 'error.compactFailed': "压缩失败: {error}";
37
+ readonly 'error.compactEmptyHistory': "历史为空,跳过压缩";
38
+ readonly 'error.compactNoSummary': "压缩未生成有效摘要: {kind}";
39
+ readonly 'error.streamTimeout': "LLM流式请求超时({minutes}min)";
40
+ readonly 'error.streamIdleTimeout': "LLM流式请求空闲超时({minutes}min无新数据)";
41
+ readonly 'error.toolValidation': "工具调用验证失败";
42
+ readonly 'error.promptBlockedByHook': "输入被 UserPromptSubmit hook 拦截";
43
+ readonly 'session.busyRewind': "会话忙,请等待空闲后再撤销";
44
+ readonly 'session.busyFork': "会话忙,请等待空闲后再分支";
45
+ readonly 'session.msgNotFound': "未找到消息: {uuid}";
46
+ readonly 'session.notRewindable': "该消息不是可回退的用户输入: {uuid}";
47
+ readonly 'session.notForkable': "该消息不是可分支的用户输入: {uuid}";
48
+ readonly 'session.noForkHistory': "没有可分支的历史";
49
+ readonly 'session.limitReached': "已达到会话数量上限 ({max}),请先关闭已有会话";
50
+ readonly 'session.initFailed': "会话初始化失败: {error}";
51
+ readonly 'hook.timeout': "hook 执行超时({seconds}s)已终止: {command}";
52
+ readonly 'hook.blockIgnored': "{event} 事件不支持阻断,hook 的 block 输出已忽略: {command}";
53
+ readonly 'model.testSuccess': "✓ 连接测试成功!API 配置正确。";
54
+ readonly 'model.testNoYes': "✗ API 响应异常,未找到 YES 标识。响应: {response}";
55
+ readonly 'model.testHttpError': "✗ API 返回错误 ({status}): {body}";
56
+ readonly 'model.connectFailed': "连接失败: {error}";
57
+ readonly 'model.responseTimeout': "模型响应超时,请检查网络与模型服务状态";
58
+ readonly 'model.listEmpty': "获取模型列表为空";
59
+ readonly 'model.listFailed': "获取模型列表失败 ({status})";
60
+ readonly 'model.testFailed': "API连接测试失败: {error}";
61
+ readonly 'model.debugCommand': "调试命令:";
62
+ readonly 'model.validateError': "API校验过程中出现错误: {error}";
63
+ readonly 'model.invalidProvider': "服务商名称不合法: {error}";
64
+ readonly 'model.providerNameLength': "长度需为 2~20 个字符";
65
+ readonly 'model.providerNameFormat': "仅支持小写字母、数字和短横线(-),需以字母开头且不能以短横线结尾";
66
+ readonly 'model.invalidName': "模型名称格式错误: {name}. 期望格式: \"modelName[provider]\"";
67
+ readonly 'model.notFound': "模型不存在: {name}";
68
+ readonly 'model.inUseByPointer': "模型正在被模型指针使用,无法删除: {pointers}";
69
+ readonly 'model.mainNotFound': "main模型不存在: {name}";
70
+ readonly 'model.quickNotFound': "quick模型不存在: {name}";
71
+ readonly 'model.saveFailed': "保存模型配置失败";
72
+ readonly 'mcp.connectTimeout': "连接超时 ({seconds}s)";
73
+ readonly 'mcp.capabilitiesTimeout': "获取能力超时 ({seconds}s)";
74
+ readonly 'mcp.closeTimeout': "关闭客户端超时";
75
+ readonly 'mcp.notConnected': "MCP Server [{name}] 未连接";
76
+ readonly 'mcp.stdioNeedsCommand': "stdio 传输需要配置 command";
77
+ readonly 'mcp.sseNeedsUrl': "sse 传输需要配置 url";
78
+ readonly 'mcp.httpNeedsUrl': "http 传输需要配置 url";
79
+ readonly 'mcp.unsupportedTransport': "不支持的传输类型: {transport}";
80
+ readonly 'plugin.gitCloneFailed': "git clone 失败 [{repo}]: {stderr}";
81
+ readonly 'plugin.gitPullFailed': "git pull 失败 [{dir}]: {stderr}";
82
+ readonly 'plugin.marketplaceNameFromRepo': "无法从 {repo} 获取市场名称,请确认 marketplace.json 存在";
83
+ readonly 'plugin.marketplaceNameMissing': "无法获取市场名称,请确认 marketplace.json 存在";
84
+ readonly 'plugin.dirNotFound': "目录不存在: {dir}";
85
+ readonly 'plugin.marketplaceNotFound': "市场不存在: {name}";
86
+ readonly 'plugin.marketplaceNotGithub': "市场 [{name}] 不是 github 来源,无法更新";
87
+ readonly 'plugin.marketplaceUnreadable': "无法读取市场信息: {name}";
88
+ readonly 'plugin.notInMarketplace': "插件 [{plugin}] 不存在于市场 [{name}]";
89
+ readonly 'plugin.gitClonePluginFailed': "git clone 插件失败 [{url}]: {stderr}";
90
+ readonly 'agent.addMissingFields': "添加 Agent 失败: 缺少必需字段 name、prompt 或 description";
91
+ readonly 'agent.addInvalidLocate': "添加 Agent 失败: locate 必须为 'project' 或 'user'";
92
+ readonly 'command.addMissingFields': "添加 Command 失败: 缺少必需字段 name、description 或 prompt";
93
+ readonly 'command.addInvalidLocate': "添加 Command 失败: locate 必须为 'project' 或 'user'";
94
+ };
95
+ export type I18nKey = keyof typeof zh;
96
+ //# sourceMappingURL=zh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh.d.ts","sourceRoot":"","sources":["../../../src/util/i18n/zh.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GL,CAAA;AAEV,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAA"}