sema-core 2.0.15 → 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 (201) hide show
  1. package/README.md +1 -31
  2. package/dist/core/Conversation.d.ts.map +1 -1
  3. package/dist/core/Conversation.js +10 -7
  4. package/dist/core/Conversation.js.map +1 -1
  5. package/dist/core/RunTools.d.ts.map +1 -1
  6. package/dist/core/RunTools.js +43 -8
  7. package/dist/core/RunTools.js.map +1 -1
  8. package/dist/core/SemaCore.d.ts +6 -2
  9. package/dist/core/SemaCore.d.ts.map +1 -1
  10. package/dist/core/SemaCore.js +5 -2
  11. package/dist/core/SemaCore.js.map +1 -1
  12. package/dist/core/SemaEngine.d.ts.map +1 -1
  13. package/dist/core/SemaEngine.js +45 -13
  14. package/dist/core/SemaEngine.js.map +1 -1
  15. package/dist/core/SemaSession.d.ts +3 -11
  16. package/dist/core/SemaSession.d.ts.map +1 -1
  17. package/dist/core/SemaSession.js +2 -10
  18. package/dist/core/SemaSession.js.map +1 -1
  19. package/dist/core/SessionPool.d.ts.map +1 -1
  20. package/dist/core/SessionPool.js +3 -2
  21. package/dist/core/SessionPool.js.map +1 -1
  22. package/dist/events/types.d.ts +11 -0
  23. package/dist/events/types.d.ts.map +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/manager/ConfManager.d.ts +9 -1
  29. package/dist/manager/ConfManager.d.ts.map +1 -1
  30. package/dist/manager/ConfManager.js +25 -22
  31. package/dist/manager/ConfManager.js.map +1 -1
  32. package/dist/manager/ModelManager.d.ts +30 -2
  33. package/dist/manager/ModelManager.d.ts.map +1 -1
  34. package/dist/manager/ModelManager.js +103 -32
  35. package/dist/manager/ModelManager.js.map +1 -1
  36. package/dist/manager/PermissionManager.d.ts.map +1 -1
  37. package/dist/manager/PermissionManager.js +105 -41
  38. package/dist/manager/PermissionManager.js.map +1 -1
  39. package/dist/prompt/compact.d.ts +30 -1
  40. package/dist/prompt/compact.d.ts.map +1 -1
  41. package/dist/prompt/compact.js +75 -18
  42. package/dist/prompt/compact.js.map +1 -1
  43. package/dist/prompt/inputPredict.d.ts +2 -0
  44. package/dist/prompt/inputPredict.d.ts.map +1 -0
  45. package/dist/prompt/inputPredict.js +43 -0
  46. package/dist/prompt/inputPredict.js.map +1 -0
  47. package/dist/prompt/permission.d.ts +1 -1
  48. package/dist/prompt/permission.d.ts.map +1 -1
  49. package/dist/prompt/permission.js +49 -6
  50. package/dist/prompt/permission.js.map +1 -1
  51. package/dist/prompt/tools/fetchUrl.d.ts +1 -1
  52. package/dist/prompt/tools/fetchUrl.d.ts.map +1 -1
  53. package/dist/prompt/tools/fetchUrl.js +3 -0
  54. package/dist/prompt/tools/fetchUrl.js.map +1 -1
  55. package/dist/services/agents/agentsManager.d.ts.map +1 -1
  56. package/dist/services/agents/agentsManager.js +3 -2
  57. package/dist/services/agents/agentsManager.js.map +1 -1
  58. package/dist/services/agents/genSystemReminder.d.ts +10 -1
  59. package/dist/services/agents/genSystemReminder.d.ts.map +1 -1
  60. package/dist/services/agents/genSystemReminder.js +48 -2
  61. package/dist/services/agents/genSystemReminder.js.map +1 -1
  62. package/dist/services/api/adapt/openai.d.ts.map +1 -1
  63. package/dist/services/api/adapt/openai.js +25 -4
  64. package/dist/services/api/adapt/openai.js.map +1 -1
  65. package/dist/services/api/adapt/util.d.ts +15 -0
  66. package/dist/services/api/adapt/util.d.ts.map +1 -1
  67. package/dist/services/api/adapt/util.js +54 -2
  68. package/dist/services/api/adapt/util.js.map +1 -1
  69. package/dist/services/api/apiUtil.d.ts.map +1 -1
  70. package/dist/services/api/apiUtil.js +8 -7
  71. package/dist/services/api/apiUtil.js.map +1 -1
  72. package/dist/services/api/queryLLM.d.ts.map +1 -1
  73. package/dist/services/api/queryLLM.js +22 -16
  74. package/dist/services/api/queryLLM.js.map +1 -1
  75. package/dist/services/commands/commandsManager.d.ts.map +1 -1
  76. package/dist/services/commands/commandsManager.js +3 -2
  77. package/dist/services/commands/commandsManager.js.map +1 -1
  78. package/dist/services/commands/runCommand.d.ts.map +1 -1
  79. package/dist/services/commands/runCommand.js +17 -6
  80. package/dist/services/commands/runCommand.js.map +1 -1
  81. package/dist/services/hooks/hookTriggers.d.ts.map +1 -1
  82. package/dist/services/hooks/hookTriggers.js +3 -2
  83. package/dist/services/hooks/hookTriggers.js.map +1 -1
  84. package/dist/services/mcp/MCPClient.d.ts.map +1 -1
  85. package/dist/services/mcp/MCPClient.js +18 -8
  86. package/dist/services/mcp/MCPClient.js.map +1 -1
  87. package/dist/services/mcp/MCPManager.d.ts +27 -12
  88. package/dist/services/mcp/MCPManager.d.ts.map +1 -1
  89. package/dist/services/mcp/MCPManager.js +189 -75
  90. package/dist/services/mcp/MCPManager.js.map +1 -1
  91. package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -1
  92. package/dist/services/mcp/MCPToolAdapter.js +128 -22
  93. package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
  94. package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
  95. package/dist/services/plugins/pluginsManager.js +24 -11
  96. package/dist/services/plugins/pluginsManager.js.map +1 -1
  97. package/dist/services/skills/skillsManager.d.ts +18 -3
  98. package/dist/services/skills/skillsManager.d.ts.map +1 -1
  99. package/dist/services/skills/skillsManager.js +49 -4
  100. package/dist/services/skills/skillsManager.js.map +1 -1
  101. package/dist/tools/FetchUrl.d.ts.map +1 -1
  102. package/dist/tools/FetchUrl.js +10 -3
  103. package/dist/tools/FetchUrl.js.map +1 -1
  104. package/dist/tools/ListCrons.d.ts +1 -0
  105. package/dist/tools/ListCrons.d.ts.map +1 -1
  106. package/dist/tools/ListCrons.js +1 -0
  107. package/dist/tools/ListCrons.js.map +1 -1
  108. package/dist/tools/LoadTools.js +1 -1
  109. package/dist/tools/PeekBgJob.d.ts +2 -2
  110. package/dist/tools/PlanToAgent.d.ts.map +1 -1
  111. package/dist/tools/PlanToAgent.js +7 -4
  112. package/dist/tools/PlanToAgent.js.map +1 -1
  113. package/dist/tools/RunShell.d.ts.map +1 -1
  114. package/dist/tools/RunShell.js +4 -16
  115. package/dist/tools/RunShell.js.map +1 -1
  116. package/dist/tools/Skill.d.ts.map +1 -1
  117. package/dist/tools/Skill.js +3 -2
  118. package/dist/tools/Skill.js.map +1 -1
  119. package/dist/tools/base/Tool.d.ts +1 -0
  120. package/dist/tools/base/Tool.d.ts.map +1 -1
  121. package/dist/types/index.d.ts +11 -1
  122. package/dist/types/index.d.ts.map +1 -1
  123. package/dist/types/index.js +8 -2
  124. package/dist/types/index.js.map +1 -1
  125. package/dist/types/mcp.d.ts +7 -0
  126. package/dist/types/mcp.d.ts.map +1 -1
  127. package/dist/types/model.d.ts +3 -0
  128. package/dist/types/model.d.ts.map +1 -1
  129. package/dist/types/session.d.ts +6 -2
  130. package/dist/types/session.d.ts.map +1 -1
  131. package/dist/types/settings.d.ts +3 -1
  132. package/dist/types/settings.d.ts.map +1 -1
  133. package/dist/types/skill.d.ts +2 -0
  134. package/dist/types/skill.d.ts.map +1 -1
  135. package/dist/util/autoRunContext.d.ts +2 -0
  136. package/dist/util/autoRunContext.d.ts.map +1 -1
  137. package/dist/util/autoRunContext.js +2 -0
  138. package/dist/util/autoRunContext.js.map +1 -1
  139. package/dist/util/compact.d.ts +27 -10
  140. package/dist/util/compact.d.ts.map +1 -1
  141. package/dist/util/compact.js +403 -61
  142. package/dist/util/compact.js.map +1 -1
  143. package/dist/util/fetchUrl.d.ts +1 -0
  144. package/dist/util/fetchUrl.d.ts.map +1 -1
  145. package/dist/util/fetchUrl.js +34 -4
  146. package/dist/util/fetchUrl.js.map +1 -1
  147. package/dist/util/history.d.ts +1 -1
  148. package/dist/util/history.d.ts.map +1 -1
  149. package/dist/util/history.js +21 -5
  150. package/dist/util/history.js.map +1 -1
  151. package/dist/util/i18n/de.d.ts +92 -0
  152. package/dist/util/i18n/de.d.ts.map +1 -0
  153. package/dist/util/i18n/de.js +104 -0
  154. package/dist/util/i18n/de.js.map +1 -0
  155. package/dist/util/i18n/en.d.ts +92 -0
  156. package/dist/util/i18n/en.d.ts.map +1 -0
  157. package/dist/util/i18n/en.js +104 -0
  158. package/dist/util/i18n/en.js.map +1 -0
  159. package/dist/util/i18n/fr.d.ts +92 -0
  160. package/dist/util/i18n/fr.d.ts.map +1 -0
  161. package/dist/util/i18n/fr.js +104 -0
  162. package/dist/util/i18n/fr.js.map +1 -0
  163. package/dist/util/i18n/index.d.ts +7 -0
  164. package/dist/util/i18n/index.d.ts.map +1 -0
  165. package/dist/util/i18n/index.js +36 -0
  166. package/dist/util/i18n/index.js.map +1 -0
  167. package/dist/util/i18n/it.d.ts +92 -0
  168. package/dist/util/i18n/it.d.ts.map +1 -0
  169. package/dist/util/i18n/it.js +104 -0
  170. package/dist/util/i18n/it.js.map +1 -0
  171. package/dist/util/i18n/zh.d.ts +96 -0
  172. package/dist/util/i18n/zh.d.ts.map +1 -0
  173. package/dist/util/i18n/zh.js +107 -0
  174. package/dist/util/i18n/zh.js.map +1 -0
  175. package/dist/util/i18n.d.ts +98 -0
  176. package/dist/util/i18n.d.ts.map +1 -0
  177. package/dist/util/i18n.js +228 -0
  178. package/dist/util/i18n.js.map +1 -0
  179. package/dist/util/inputPredict.d.ts +15 -0
  180. package/dist/util/inputPredict.d.ts.map +1 -0
  181. package/dist/util/inputPredict.js +135 -0
  182. package/dist/util/inputPredict.js.map +1 -0
  183. package/dist/util/message.d.ts +1 -1
  184. package/dist/util/message.d.ts.map +1 -1
  185. package/dist/util/message.js +5 -2
  186. package/dist/util/message.js.map +1 -1
  187. package/dist/util/model.d.ts.map +1 -1
  188. package/dist/util/model.js +9 -3
  189. package/dist/util/model.js.map +1 -1
  190. package/dist/util/shell.d.ts.map +1 -1
  191. package/dist/util/shell.js +6 -1
  192. package/dist/util/shell.js.map +1 -1
  193. package/dist/util/shellSafety.d.ts +40 -4
  194. package/dist/util/shellSafety.d.ts.map +1 -1
  195. package/dist/util/shellSafety.js +545 -8
  196. package/dist/util/shellSafety.js.map +1 -1
  197. package/dist/util/tokens.d.ts +10 -2
  198. package/dist/util/tokens.d.ts.map +1 -1
  199. package/dist/util/tokens.js +19 -15
  200. package/dist/util/tokens.js.map +1 -1
  201. package/package.json +3 -1
@@ -0,0 +1,92 @@
1
+ export declare const en: {
2
+ readonly 'permission.agree': "Allow";
3
+ readonly 'permission.refuse': "Deny";
4
+ readonly 'permission.approve': "Approve";
5
+ readonly 'permission.allowShellPrefix': "Allow, and don't ask again for commands starting with `{prefix}` in this project";
6
+ readonly 'permission.allowShellExact': "Allow, and don't ask again for `{command}` in this project";
7
+ readonly 'permission.allowShellThis': "Allow, and don't ask again for this command in this project";
8
+ readonly 'permission.allowEdit': "Allow, and don't ask again for file edits in this session";
9
+ readonly 'permission.allowReadDir': "Allow, and don't ask again for reads under {dir} in this session";
10
+ readonly 'permission.allowSkill': "Allow, and don't ask again for the {skill} skill in this project";
11
+ readonly 'permission.allowSkillAny': "Allow, and don't ask again for the Skill tool in this project";
12
+ readonly 'permission.allowMcp': "Allow, and don't ask again for {tool} in this project";
13
+ readonly 'permission.allowFetchDomain': "Allow, and don't ask again for {domain} in this project";
14
+ readonly 'permission.allowFetchThis': "Allow, and don't ask again for this domain in this project";
15
+ readonly 'permission.allowGeneric': "Approve, and don't ask again for {tool} in this project";
16
+ readonly 'permission.autoApproved': "Allowed by model check · auto mode";
17
+ readonly 'plan.startEditing': "Start coding now";
18
+ readonly 'plan.clearContextAndStart': "Reset context and start coding";
19
+ readonly 'plan.implementPrompt': "Implement the following plan:";
20
+ readonly 'error.unknown': "Unknown error";
21
+ readonly 'error.apiAuth': "API authentication failed. Check that the API key is correct";
22
+ readonly 'error.apiForbidden': "API permission denied. Check the API key's permissions";
23
+ readonly 'error.apiRateLimit': "API rate limit exceeded. Try again later";
24
+ readonly 'error.apiParse': "Malformed API response. Unable to parse data";
25
+ readonly 'error.network': "Network error. Check your connection";
26
+ readonly 'error.contextTooLong': "Context length exceeded";
27
+ readonly 'error.truncatedToolArgs': "Output hit the max output tokens and tool arguments were truncated. Try raising the model's max output tokens";
28
+ readonly 'error.truncatedContent': "Output hit the max output tokens and the content was truncated. Try raising the model's max output tokens";
29
+ readonly 'error.emptyResponse': "The API returned an empty response. Retry once; if it keeps failing, try again later.";
30
+ readonly 'error.noModels': "No model configured. Add a model first";
31
+ readonly 'error.modelResolve': "Failed to resolve model: {pointer}";
32
+ readonly 'error.modelConfLoad': "Failed to load the model config file. Try deleting it and adding the model again";
33
+ readonly 'error.compactFailed': "Compaction failed: {error}";
34
+ readonly 'error.compactEmptyHistory': "Empty history, skip compact";
35
+ readonly 'error.compactNoSummary': "Compact did not produce a valid summary: {kind}";
36
+ readonly 'error.streamTimeout': "LLM streaming request timed out ({minutes}min)";
37
+ readonly 'error.streamIdleTimeout': "LLM streaming request idle timeout ({minutes}min without new data)";
38
+ readonly 'error.toolValidation': "Tool input validation failed";
39
+ readonly 'error.promptBlockedByHook': "Input blocked by the UserPromptSubmit hook";
40
+ readonly 'session.busyRewind': "Session is busy. Wait until it is idle before rewinding";
41
+ readonly 'session.busyFork': "Session is busy. Wait until it is idle before forking";
42
+ readonly 'session.msgNotFound': "Message not found: {uuid}";
43
+ readonly 'session.notRewindable': "This message is not a rewindable user input: {uuid}";
44
+ readonly 'session.notForkable': "This message is not a forkable user input: {uuid}";
45
+ readonly 'session.noForkHistory': "No history to fork";
46
+ readonly 'session.limitReached': "Session limit reached ({max}). Close an existing session first";
47
+ readonly 'session.initFailed': "Session initialization failed: {error}";
48
+ readonly 'hook.timeout': "Hook timed out ({seconds}s) and was terminated: {command}";
49
+ readonly 'hook.blockIgnored': "The {event} event cannot be blocked; the hook's block output was ignored: {command}";
50
+ readonly 'model.testSuccess': "✓ Connection test passed. The API configuration is correct.";
51
+ readonly 'model.testNoYes': "✗ Unexpected API response, no YES marker found. Response: {response}";
52
+ readonly 'model.testHttpError': "✗ API returned an error ({status}): {body}";
53
+ readonly 'model.connectFailed': "Connection failed: {error}";
54
+ readonly 'model.responseTimeout': "Model response timed out. Check the network and model service";
55
+ readonly 'model.listEmpty': "The model list is empty";
56
+ readonly 'model.listFailed': "Failed to fetch the model list ({status})";
57
+ readonly 'model.testFailed': "API connection test failed: {error}";
58
+ readonly 'model.debugCommand': "Debug command:";
59
+ readonly 'model.validateError': "Error during API validation: {error}";
60
+ readonly 'model.invalidProvider': "Invalid provider name: {error}";
61
+ readonly 'model.providerNameLength': "Must be 2–20 characters";
62
+ readonly 'model.providerNameFormat': "Only lowercase letters, digits and hyphens; must start with a letter and not end with a hyphen";
63
+ readonly 'model.invalidName': "Invalid model name: {name}. Expected \"modelName[provider]\"";
64
+ readonly 'model.notFound': "Model not found: {name}";
65
+ readonly 'model.inUseByPointer': "Model is in use by pointer(s) {pointers} and cannot be deleted";
66
+ readonly 'model.mainNotFound': "main model not found: {name}";
67
+ readonly 'model.quickNotFound': "quick model not found: {name}";
68
+ readonly 'model.saveFailed': "Failed to save model config";
69
+ readonly 'mcp.connectTimeout': "Connection timed out ({seconds}s)";
70
+ readonly 'mcp.capabilitiesTimeout': "Fetching capabilities timed out ({seconds}s)";
71
+ readonly 'mcp.closeTimeout': "Client close timed out";
72
+ readonly 'mcp.notConnected': "MCP server [{name}] is not connected";
73
+ readonly 'mcp.stdioNeedsCommand': "stdio transport requires \"command\"";
74
+ readonly 'mcp.sseNeedsUrl': "sse transport requires \"url\"";
75
+ readonly 'mcp.httpNeedsUrl': "http transport requires \"url\"";
76
+ readonly 'mcp.unsupportedTransport': "Unsupported transport: {transport}";
77
+ readonly 'plugin.gitCloneFailed': "git clone failed [{repo}]: {stderr}";
78
+ readonly 'plugin.gitPullFailed': "git pull failed [{dir}]: {stderr}";
79
+ readonly 'plugin.marketplaceNameFromRepo': "Cannot read the marketplace name from {repo}. Make sure marketplace.json exists";
80
+ readonly 'plugin.marketplaceNameMissing': "Cannot read the marketplace name. Make sure marketplace.json exists";
81
+ readonly 'plugin.dirNotFound': "Directory not found: {dir}";
82
+ readonly 'plugin.marketplaceNotFound': "Marketplace not found: {name}";
83
+ readonly 'plugin.marketplaceNotGithub': "Marketplace [{name}] is not a GitHub source and cannot be updated";
84
+ readonly 'plugin.marketplaceUnreadable': "Cannot read marketplace info: {name}";
85
+ readonly 'plugin.notInMarketplace': "Plugin [{plugin}] not found in marketplace [{name}]";
86
+ readonly 'plugin.gitClonePluginFailed': "git clone of plugin failed [{url}]: {stderr}";
87
+ readonly 'agent.addMissingFields': "Failed to add agent: missing required field name, prompt or description";
88
+ readonly 'agent.addInvalidLocate': "Failed to add agent: locate must be 'project' or 'user'";
89
+ readonly 'command.addMissingFields': "Failed to add command: missing required field name, description or prompt";
90
+ readonly 'command.addInvalidLocate': "Failed to add command: locate must be 'project' or 'user'";
91
+ };
92
+ //# sourceMappingURL=en.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../../src/util/i18n/en.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.en = void 0;
4
+ exports.en = {
5
+ // ---- 权限面板 ----
6
+ 'permission.agree': 'Allow',
7
+ 'permission.refuse': 'Deny',
8
+ 'permission.approve': 'Approve',
9
+ 'permission.allowShellPrefix': "Allow, and don't ask again for commands starting with `{prefix}` in this project",
10
+ 'permission.allowShellExact': "Allow, and don't ask again for `{command}` in this project",
11
+ 'permission.allowShellThis': "Allow, and don't ask again for this command in this project",
12
+ 'permission.allowEdit': "Allow, and don't ask again for file edits in this session",
13
+ 'permission.allowReadDir': "Allow, and don't ask again for reads under {dir} in this session",
14
+ 'permission.allowSkill': "Allow, and don't ask again for the {skill} skill in this project",
15
+ 'permission.allowSkillAny': "Allow, and don't ask again for the Skill tool in this project",
16
+ 'permission.allowMcp': "Allow, and don't ask again for {tool} in this project",
17
+ 'permission.allowFetchDomain': "Allow, and don't ask again for {domain} in this project",
18
+ 'permission.allowFetchThis': "Allow, and don't ask again for this domain in this project",
19
+ 'permission.allowGeneric': "Approve, and don't ask again for {tool} in this project",
20
+ 'permission.autoApproved': 'Allowed by model check · auto mode',
21
+ // ---- Plan 模式 ----
22
+ 'plan.startEditing': 'Start coding now',
23
+ 'plan.clearContextAndStart': 'Reset context and start coding',
24
+ 'plan.implementPrompt': 'Implement the following plan:',
25
+ // ---- 会话错误 ----
26
+ 'error.unknown': 'Unknown error',
27
+ 'error.apiAuth': 'API authentication failed. Check that the API key is correct',
28
+ 'error.apiForbidden': "API permission denied. Check the API key's permissions",
29
+ 'error.apiRateLimit': 'API rate limit exceeded. Try again later',
30
+ 'error.apiParse': 'Malformed API response. Unable to parse data',
31
+ 'error.network': 'Network error. Check your connection',
32
+ 'error.contextTooLong': 'Context length exceeded',
33
+ 'error.truncatedToolArgs': "Output hit the max output tokens and tool arguments were truncated. Try raising the model's max output tokens",
34
+ 'error.truncatedContent': "Output hit the max output tokens and the content was truncated. Try raising the model's max output tokens",
35
+ 'error.emptyResponse': 'The API returned an empty response. Retry once; if it keeps failing, try again later.',
36
+ 'error.noModels': 'No model configured. Add a model first',
37
+ 'error.modelResolve': 'Failed to resolve model: {pointer}',
38
+ 'error.modelConfLoad': 'Failed to load the model config file. Try deleting it and adding the model again',
39
+ 'error.compactFailed': 'Compaction failed: {error}',
40
+ 'error.compactEmptyHistory': 'Empty history, skip compact',
41
+ 'error.compactNoSummary': 'Compact did not produce a valid summary: {kind}',
42
+ 'error.streamTimeout': 'LLM streaming request timed out ({minutes}min)',
43
+ 'error.streamIdleTimeout': 'LLM streaming request idle timeout ({minutes}min without new data)',
44
+ 'error.toolValidation': 'Tool input validation failed',
45
+ 'error.promptBlockedByHook': 'Input blocked by the UserPromptSubmit hook',
46
+ // ---- 会话管理 ----
47
+ 'session.busyRewind': 'Session is busy. Wait until it is idle before rewinding',
48
+ 'session.busyFork': 'Session is busy. Wait until it is idle before forking',
49
+ 'session.msgNotFound': 'Message not found: {uuid}',
50
+ 'session.notRewindable': 'This message is not a rewindable user input: {uuid}',
51
+ 'session.notForkable': 'This message is not a forkable user input: {uuid}',
52
+ 'session.noForkHistory': 'No history to fork',
53
+ 'session.limitReached': 'Session limit reached ({max}). Close an existing session first',
54
+ 'session.initFailed': 'Session initialization failed: {error}',
55
+ // ---- Hook 通知 ----
56
+ 'hook.timeout': 'Hook timed out ({seconds}s) and was terminated: {command}',
57
+ 'hook.blockIgnored': "The {event} event cannot be blocked; the hook's block output was ignored: {command}",
58
+ // ---- 模型配置 ----
59
+ 'model.testSuccess': '✓ Connection test passed. The API configuration is correct.',
60
+ 'model.testNoYes': '✗ Unexpected API response, no YES marker found. Response: {response}',
61
+ 'model.testHttpError': '✗ API returned an error ({status}): {body}',
62
+ 'model.connectFailed': 'Connection failed: {error}',
63
+ 'model.responseTimeout': 'Model response timed out. Check the network and model service',
64
+ 'model.listEmpty': 'The model list is empty',
65
+ 'model.listFailed': 'Failed to fetch the model list ({status})',
66
+ 'model.testFailed': 'API connection test failed: {error}',
67
+ 'model.debugCommand': 'Debug command:',
68
+ 'model.validateError': 'Error during API validation: {error}',
69
+ 'model.invalidProvider': 'Invalid provider name: {error}',
70
+ 'model.providerNameLength': 'Must be 2–20 characters',
71
+ 'model.providerNameFormat': 'Only lowercase letters, digits and hyphens; must start with a letter and not end with a hyphen',
72
+ 'model.invalidName': 'Invalid model name: {name}. Expected "modelName[provider]"',
73
+ 'model.notFound': 'Model not found: {name}',
74
+ 'model.inUseByPointer': 'Model is in use by pointer(s) {pointers} and cannot be deleted',
75
+ 'model.mainNotFound': 'main model not found: {name}',
76
+ 'model.quickNotFound': 'quick model not found: {name}',
77
+ 'model.saveFailed': 'Failed to save model config',
78
+ // ---- MCP ----
79
+ 'mcp.connectTimeout': 'Connection timed out ({seconds}s)',
80
+ 'mcp.capabilitiesTimeout': 'Fetching capabilities timed out ({seconds}s)',
81
+ 'mcp.closeTimeout': 'Client close timed out',
82
+ 'mcp.notConnected': 'MCP server [{name}] is not connected',
83
+ 'mcp.stdioNeedsCommand': 'stdio transport requires "command"',
84
+ 'mcp.sseNeedsUrl': 'sse transport requires "url"',
85
+ 'mcp.httpNeedsUrl': 'http transport requires "url"',
86
+ 'mcp.unsupportedTransport': 'Unsupported transport: {transport}',
87
+ // ---- 插件市场 ----
88
+ 'plugin.gitCloneFailed': 'git clone failed [{repo}]: {stderr}',
89
+ 'plugin.gitPullFailed': 'git pull failed [{dir}]: {stderr}',
90
+ 'plugin.marketplaceNameFromRepo': 'Cannot read the marketplace name from {repo}. Make sure marketplace.json exists',
91
+ 'plugin.marketplaceNameMissing': 'Cannot read the marketplace name. Make sure marketplace.json exists',
92
+ 'plugin.dirNotFound': 'Directory not found: {dir}',
93
+ 'plugin.marketplaceNotFound': 'Marketplace not found: {name}',
94
+ 'plugin.marketplaceNotGithub': 'Marketplace [{name}] is not a GitHub source and cannot be updated',
95
+ 'plugin.marketplaceUnreadable': 'Cannot read marketplace info: {name}',
96
+ 'plugin.notInMarketplace': 'Plugin [{plugin}] not found in marketplace [{name}]',
97
+ 'plugin.gitClonePluginFailed': 'git clone of plugin failed [{url}]: {stderr}',
98
+ // ---- Agent / Command 管理 ----
99
+ 'agent.addMissingFields': 'Failed to add agent: missing required field name, prompt or description',
100
+ 'agent.addInvalidLocate': "Failed to add agent: locate must be 'project' or 'user'",
101
+ 'command.addMissingFields': 'Failed to add command: missing required field name, description or prompt',
102
+ 'command.addInvalidLocate': "Failed to add command: locate must be 'project' or 'user'",
103
+ };
104
+ //# sourceMappingURL=en.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../../src/util/i18n/en.ts"],"names":[],"mappings":";;;AAKa,QAAA,EAAE,GAAG;IAChB,iBAAiB;IACjB,kBAAkB,EAAE,OAAO;IAC3B,mBAAmB,EAAE,MAAM;IAC3B,oBAAoB,EAAE,SAAS;IAC/B,6BAA6B,EAAE,kFAAkF;IACjH,4BAA4B,EAAE,4DAA4D;IAC1F,2BAA2B,EAAE,6DAA6D;IAC1F,sBAAsB,EAAE,2DAA2D;IACnF,yBAAyB,EAAE,kEAAkE;IAC7F,uBAAuB,EAAE,kEAAkE;IAC3F,0BAA0B,EAAE,+DAA+D;IAC3F,qBAAqB,EAAE,uDAAuD;IAC9E,6BAA6B,EAAE,yDAAyD;IACxF,2BAA2B,EAAE,4DAA4D;IACzF,yBAAyB,EAAE,yDAAyD;IACpF,yBAAyB,EAAE,oCAAoC;IAE/D,oBAAoB;IACpB,mBAAmB,EAAE,kBAAkB;IACvC,2BAA2B,EAAE,gCAAgC;IAC7D,sBAAsB,EAAE,+BAA+B;IAEvD,iBAAiB;IACjB,eAAe,EAAE,eAAe;IAChC,eAAe,EAAE,8DAA8D;IAC/E,oBAAoB,EAAE,wDAAwD;IAC9E,oBAAoB,EAAE,0CAA0C;IAChE,gBAAgB,EAAE,8CAA8C;IAChE,eAAe,EAAE,sCAAsC;IACvD,sBAAsB,EAAE,yBAAyB;IACjD,yBAAyB,EAAE,+GAA+G;IAC1I,wBAAwB,EAAE,2GAA2G;IACrI,qBAAqB,EAAE,uFAAuF;IAC9G,gBAAgB,EAAE,wCAAwC;IAC1D,oBAAoB,EAAE,oCAAoC;IAC1D,qBAAqB,EAAE,kFAAkF;IACzG,qBAAqB,EAAE,4BAA4B;IACnD,2BAA2B,EAAE,6BAA6B;IAC1D,wBAAwB,EAAE,iDAAiD;IAC3E,qBAAqB,EAAE,gDAAgD;IACvE,yBAAyB,EAAE,oEAAoE;IAC/F,sBAAsB,EAAE,8BAA8B;IACtD,2BAA2B,EAAE,4CAA4C;IAEzE,iBAAiB;IACjB,oBAAoB,EAAE,yDAAyD;IAC/E,kBAAkB,EAAE,uDAAuD;IAC3E,qBAAqB,EAAE,2BAA2B;IAClD,uBAAuB,EAAE,qDAAqD;IAC9E,qBAAqB,EAAE,mDAAmD;IAC1E,uBAAuB,EAAE,oBAAoB;IAC7C,sBAAsB,EAAE,gEAAgE;IACxF,oBAAoB,EAAE,wCAAwC;IAE9D,oBAAoB;IACpB,cAAc,EAAE,2DAA2D;IAC3E,mBAAmB,EAAE,qFAAqF;IAE1G,iBAAiB;IACjB,mBAAmB,EAAE,6DAA6D;IAClF,iBAAiB,EAAE,sEAAsE;IACzF,qBAAqB,EAAE,4CAA4C;IACnE,qBAAqB,EAAE,4BAA4B;IACnD,uBAAuB,EAAE,+DAA+D;IACxF,iBAAiB,EAAE,yBAAyB;IAC5C,kBAAkB,EAAE,2CAA2C;IAC/D,kBAAkB,EAAE,qCAAqC;IACzD,oBAAoB,EAAE,gBAAgB;IACtC,qBAAqB,EAAE,sCAAsC;IAC7D,uBAAuB,EAAE,gCAAgC;IACzD,0BAA0B,EAAE,yBAAyB;IACrD,0BAA0B,EAAE,gGAAgG;IAC5H,mBAAmB,EAAE,4DAA4D;IACjF,gBAAgB,EAAE,yBAAyB;IAC3C,sBAAsB,EAAE,gEAAgE;IACxF,oBAAoB,EAAE,8BAA8B;IACpD,qBAAqB,EAAE,+BAA+B;IACtD,kBAAkB,EAAE,6BAA6B;IAEjD,gBAAgB;IAChB,oBAAoB,EAAE,mCAAmC;IACzD,yBAAyB,EAAE,8CAA8C;IACzE,kBAAkB,EAAE,wBAAwB;IAC5C,kBAAkB,EAAE,sCAAsC;IAC1D,uBAAuB,EAAE,oCAAoC;IAC7D,iBAAiB,EAAE,8BAA8B;IACjD,kBAAkB,EAAE,+BAA+B;IACnD,0BAA0B,EAAE,oCAAoC;IAEhE,iBAAiB;IACjB,uBAAuB,EAAE,qCAAqC;IAC9D,sBAAsB,EAAE,mCAAmC;IAC3D,gCAAgC,EAAE,iFAAiF;IACnH,+BAA+B,EAAE,qEAAqE;IACtG,oBAAoB,EAAE,4BAA4B;IAClD,4BAA4B,EAAE,+BAA+B;IAC7D,6BAA6B,EAAE,mEAAmE;IAClG,8BAA8B,EAAE,sCAAsC;IACtE,yBAAyB,EAAE,qDAAqD;IAChF,6BAA6B,EAAE,8CAA8C;IAE7E,+BAA+B;IAC/B,wBAAwB,EAAE,yEAAyE;IACnG,wBAAwB,EAAE,yDAAyD;IACnF,0BAA0B,EAAE,2EAA2E;IACvG,0BAA0B,EAAE,2DAA2D;CAC7C,CAAA"}
@@ -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"}