sema-core 2.0.16 → 2.1.1

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 (178) hide show
  1. package/dist/conf/config.d.ts +2 -0
  2. package/dist/conf/config.d.ts.map +1 -1
  3. package/dist/conf/config.js +4 -1
  4. package/dist/conf/config.js.map +1 -1
  5. package/dist/core/Conversation.js +4 -4
  6. package/dist/core/Conversation.js.map +1 -1
  7. package/dist/core/RunTools.d.ts.map +1 -1
  8. package/dist/core/RunTools.js +43 -8
  9. package/dist/core/RunTools.js.map +1 -1
  10. package/dist/core/SemaCore.d.ts +7 -0
  11. package/dist/core/SemaCore.d.ts.map +1 -1
  12. package/dist/core/SemaCore.js +9 -0
  13. package/dist/core/SemaCore.js.map +1 -1
  14. package/dist/core/SemaEngine.d.ts.map +1 -1
  15. package/dist/core/SemaEngine.js +22 -10
  16. package/dist/core/SemaEngine.js.map +1 -1
  17. package/dist/core/SemaSession.d.ts +3 -11
  18. package/dist/core/SemaSession.d.ts.map +1 -1
  19. package/dist/core/SemaSession.js +2 -10
  20. package/dist/core/SemaSession.js.map +1 -1
  21. package/dist/core/SessionPool.d.ts.map +1 -1
  22. package/dist/core/SessionPool.js +3 -2
  23. package/dist/core/SessionPool.js.map +1 -1
  24. package/dist/events/types.d.ts +2 -0
  25. package/dist/events/types.d.ts.map +1 -1
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +3 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/manager/ConfManager.d.ts +9 -1
  31. package/dist/manager/ConfManager.d.ts.map +1 -1
  32. package/dist/manager/ConfManager.js +23 -6
  33. package/dist/manager/ConfManager.js.map +1 -1
  34. package/dist/manager/ModelManager.d.ts +30 -2
  35. package/dist/manager/ModelManager.d.ts.map +1 -1
  36. package/dist/manager/ModelManager.js +103 -32
  37. package/dist/manager/ModelManager.js.map +1 -1
  38. package/dist/manager/PermissionManager.d.ts.map +1 -1
  39. package/dist/manager/PermissionManager.js +50 -36
  40. package/dist/manager/PermissionManager.js.map +1 -1
  41. package/dist/manager/UsageStatsManager.d.ts +79 -0
  42. package/dist/manager/UsageStatsManager.d.ts.map +1 -0
  43. package/dist/manager/UsageStatsManager.js +402 -0
  44. package/dist/manager/UsageStatsManager.js.map +1 -0
  45. package/dist/prompt/compact.d.ts +17 -2
  46. package/dist/prompt/compact.d.ts.map +1 -1
  47. package/dist/prompt/compact.js +19 -3
  48. package/dist/prompt/compact.js.map +1 -1
  49. package/dist/prompt/inputPredict.d.ts +1 -1
  50. package/dist/prompt/inputPredict.d.ts.map +1 -1
  51. package/dist/prompt/inputPredict.js +9 -8
  52. package/dist/prompt/inputPredict.js.map +1 -1
  53. package/dist/prompt/permission.d.ts.map +1 -1
  54. package/dist/prompt/permission.js +11 -1
  55. package/dist/prompt/permission.js.map +1 -1
  56. package/dist/prompt/tools/fetchUrl.d.ts +1 -1
  57. package/dist/prompt/tools/fetchUrl.d.ts.map +1 -1
  58. package/dist/prompt/tools/fetchUrl.js +3 -0
  59. package/dist/prompt/tools/fetchUrl.js.map +1 -1
  60. package/dist/services/agents/agentsManager.d.ts.map +1 -1
  61. package/dist/services/agents/agentsManager.js +3 -2
  62. package/dist/services/agents/agentsManager.js.map +1 -1
  63. package/dist/services/api/adapt/openai.d.ts.map +1 -1
  64. package/dist/services/api/adapt/openai.js +25 -4
  65. package/dist/services/api/adapt/openai.js.map +1 -1
  66. package/dist/services/api/adapt/util.d.ts +15 -0
  67. package/dist/services/api/adapt/util.d.ts.map +1 -1
  68. package/dist/services/api/adapt/util.js +54 -2
  69. package/dist/services/api/adapt/util.js.map +1 -1
  70. package/dist/services/api/apiUtil.d.ts.map +1 -1
  71. package/dist/services/api/apiUtil.js +8 -7
  72. package/dist/services/api/apiUtil.js.map +1 -1
  73. package/dist/services/api/queryLLM.d.ts.map +1 -1
  74. package/dist/services/api/queryLLM.js +35 -16
  75. package/dist/services/api/queryLLM.js.map +1 -1
  76. package/dist/services/commands/commandsManager.d.ts.map +1 -1
  77. package/dist/services/commands/commandsManager.js +3 -2
  78. package/dist/services/commands/commandsManager.js.map +1 -1
  79. package/dist/services/commands/runCommand.d.ts.map +1 -1
  80. package/dist/services/commands/runCommand.js +4 -3
  81. package/dist/services/commands/runCommand.js.map +1 -1
  82. package/dist/services/hooks/hookTriggers.d.ts.map +1 -1
  83. package/dist/services/hooks/hookTriggers.js +3 -2
  84. package/dist/services/hooks/hookTriggers.js.map +1 -1
  85. package/dist/services/mcp/MCPClient.d.ts.map +1 -1
  86. package/dist/services/mcp/MCPClient.js +18 -8
  87. package/dist/services/mcp/MCPClient.js.map +1 -1
  88. package/dist/services/mcp/MCPManager.d.ts +8 -7
  89. package/dist/services/mcp/MCPManager.d.ts.map +1 -1
  90. package/dist/services/mcp/MCPManager.js +118 -53
  91. package/dist/services/mcp/MCPManager.js.map +1 -1
  92. package/dist/services/mcp/MCPToolAdapter.d.ts.map +1 -1
  93. package/dist/services/mcp/MCPToolAdapter.js +128 -22
  94. package/dist/services/mcp/MCPToolAdapter.js.map +1 -1
  95. package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
  96. package/dist/services/plugins/pluginsManager.js +12 -11
  97. package/dist/services/plugins/pluginsManager.js.map +1 -1
  98. package/dist/tools/FetchUrl.d.ts.map +1 -1
  99. package/dist/tools/FetchUrl.js +10 -3
  100. package/dist/tools/FetchUrl.js.map +1 -1
  101. package/dist/tools/ListCrons.d.ts +1 -0
  102. package/dist/tools/ListCrons.d.ts.map +1 -1
  103. package/dist/tools/ListCrons.js +1 -0
  104. package/dist/tools/ListCrons.js.map +1 -1
  105. package/dist/tools/LoadTools.js +1 -1
  106. package/dist/tools/PeekBgJob.d.ts +2 -2
  107. package/dist/tools/PlanToAgent.d.ts.map +1 -1
  108. package/dist/tools/PlanToAgent.js +7 -4
  109. package/dist/tools/PlanToAgent.js.map +1 -1
  110. package/dist/tools/RunShell.d.ts.map +1 -1
  111. package/dist/tools/RunShell.js +4 -16
  112. package/dist/tools/RunShell.js.map +1 -1
  113. package/dist/tools/base/Tool.d.ts +1 -0
  114. package/dist/tools/base/Tool.d.ts.map +1 -1
  115. package/dist/types/index.d.ts +10 -0
  116. package/dist/types/index.d.ts.map +1 -1
  117. package/dist/types/index.js +7 -2
  118. package/dist/types/index.js.map +1 -1
  119. package/dist/types/mcp.d.ts +7 -0
  120. package/dist/types/mcp.d.ts.map +1 -1
  121. package/dist/types/model.d.ts +3 -0
  122. package/dist/types/model.d.ts.map +1 -1
  123. package/dist/types/session.d.ts +6 -2
  124. package/dist/types/session.d.ts.map +1 -1
  125. package/dist/util/compact.d.ts +11 -9
  126. package/dist/util/compact.d.ts.map +1 -1
  127. package/dist/util/compact.js +294 -65
  128. package/dist/util/compact.js.map +1 -1
  129. package/dist/util/fetchUrl.d.ts +1 -0
  130. package/dist/util/fetchUrl.d.ts.map +1 -1
  131. package/dist/util/fetchUrl.js +34 -4
  132. package/dist/util/fetchUrl.js.map +1 -1
  133. package/dist/util/i18n/de.d.ts +92 -0
  134. package/dist/util/i18n/de.d.ts.map +1 -0
  135. package/dist/util/i18n/de.js +104 -0
  136. package/dist/util/i18n/de.js.map +1 -0
  137. package/dist/util/i18n/en.d.ts +92 -0
  138. package/dist/util/i18n/en.d.ts.map +1 -0
  139. package/dist/util/i18n/en.js +104 -0
  140. package/dist/util/i18n/en.js.map +1 -0
  141. package/dist/util/i18n/fr.d.ts +92 -0
  142. package/dist/util/i18n/fr.d.ts.map +1 -0
  143. package/dist/util/i18n/fr.js +104 -0
  144. package/dist/util/i18n/fr.js.map +1 -0
  145. package/dist/util/i18n/index.d.ts +7 -0
  146. package/dist/util/i18n/index.d.ts.map +1 -0
  147. package/dist/util/i18n/index.js +36 -0
  148. package/dist/util/i18n/index.js.map +1 -0
  149. package/dist/util/i18n/it.d.ts +92 -0
  150. package/dist/util/i18n/it.d.ts.map +1 -0
  151. package/dist/util/i18n/it.js +104 -0
  152. package/dist/util/i18n/it.js.map +1 -0
  153. package/dist/util/i18n/zh.d.ts +96 -0
  154. package/dist/util/i18n/zh.d.ts.map +1 -0
  155. package/dist/util/i18n/zh.js +107 -0
  156. package/dist/util/i18n/zh.js.map +1 -0
  157. package/dist/util/i18n.d.ts +98 -0
  158. package/dist/util/i18n.d.ts.map +1 -0
  159. package/dist/util/i18n.js +228 -0
  160. package/dist/util/i18n.js.map +1 -0
  161. package/dist/util/message.d.ts.map +1 -1
  162. package/dist/util/message.js +3 -0
  163. package/dist/util/message.js.map +1 -1
  164. package/dist/util/model.d.ts.map +1 -1
  165. package/dist/util/model.js +9 -3
  166. package/dist/util/model.js.map +1 -1
  167. package/dist/util/shell.d.ts.map +1 -1
  168. package/dist/util/shell.js +6 -1
  169. package/dist/util/shell.js.map +1 -1
  170. package/dist/util/shellSafety.d.ts +14 -2
  171. package/dist/util/shellSafety.d.ts.map +1 -1
  172. package/dist/util/shellSafety.js +300 -3
  173. package/dist/util/shellSafety.js.map +1 -1
  174. package/dist/util/tokens.d.ts +10 -2
  175. package/dist/util/tokens.d.ts.map +1 -1
  176. package/dist/util/tokens.js +19 -15
  177. package/dist/util/tokens.js.map +1 -1
  178. package/package.json +3 -1
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.zh = void 0;
4
+ /**
5
+ * 中文文案(基准语言):key 集合以本文件为准,其他语言须覆盖全部 key
6
+ */
7
+ exports.zh = {
8
+ // ---- 权限面板 ----
9
+ 'permission.agree': '确认',
10
+ 'permission.refuse': '拒绝',
11
+ 'permission.approve': '同意',
12
+ 'permission.allowShellPrefix': '确认,本项目不再询问 `{prefix}` 开头的命令',
13
+ 'permission.allowShellExact': '确认,本项目不再询问 `{command}` 命令',
14
+ 'permission.allowShellThis': '确认,本项目不再询问此命令',
15
+ 'permission.allowEdit': '确认, 本次会话不再询问文件编辑',
16
+ 'permission.allowReadDir': '确认,本次会话不再询问 {dir} 目录下的读取',
17
+ 'permission.allowSkill': '确认,本项目不再询问 {skill} Skill',
18
+ 'permission.allowSkillAny': '确认,本项目不再询问 Skill 工具',
19
+ 'permission.allowMcp': '确认,本项目不再询问 {tool} 工具',
20
+ 'permission.allowFetchDomain': '确认,本项目不再询问 {domain} 域名',
21
+ 'permission.allowFetchThis': '确认,本项目不再询问此域名',
22
+ 'permission.allowGeneric': '同意,本项目不再询问 {tool} 权限',
23
+ 'permission.autoApproved': '模型安全判断放行 · 自动模式',
24
+ // ---- Plan 模式 ----
25
+ 'plan.startEditing': '直接开始编码',
26
+ 'plan.clearContextAndStart': '重置上下文后开始编码',
27
+ 'plan.implementPrompt': '按照以下计划进行实现:',
28
+ // ---- 会话错误(session:error 等) ----
29
+ 'error.unknown': '未知错误',
30
+ 'error.apiAuth': 'API认证失败,请检查API密钥是否正确',
31
+ 'error.apiForbidden': 'API权限不足,请检查API密钥权限',
32
+ 'error.apiRateLimit': 'API调用频率超限,请稍后重试',
33
+ 'error.apiParse': 'API响应格式错误,无法解析数据',
34
+ 'error.network': '网络连接错误,请检查网络连接',
35
+ 'error.contextTooLong': '上下文长度超出限制',
36
+ 'error.truncatedToolArgs': 'API输出超长导致工具参数截断,可尝试调整模型最大输出token',
37
+ 'error.truncatedContent': 'API输出超长导致内容截断,可尝试调整模型最大输出token',
38
+ 'error.emptyResponse': 'API返回空响应:模型暂时没有返回有效内容,请重试一次。若多次重试仍失败,请稍后再试。',
39
+ 'error.noModels': '未配置任何模型,请先添加模型配置',
40
+ 'error.modelResolve': '解析模型失败: {pointer}',
41
+ 'error.modelConfLoad': '模型配置文件加载失败,可尝试删除模型配置文件后重新添加模型',
42
+ 'error.compactFailed': '压缩失败: {error}',
43
+ 'error.compactEmptyHistory': '历史为空,跳过压缩',
44
+ 'error.compactNoSummary': '压缩未生成有效摘要: {kind}',
45
+ 'error.streamTimeout': 'LLM流式请求超时({minutes}min)',
46
+ 'error.streamIdleTimeout': 'LLM流式请求空闲超时({minutes}min无新数据)',
47
+ 'error.toolValidation': '工具调用验证失败',
48
+ 'error.promptBlockedByHook': '输入被 UserPromptSubmit hook 拦截',
49
+ // ---- 会话管理 ----
50
+ 'session.busyRewind': '会话忙,请等待空闲后再撤销',
51
+ 'session.busyFork': '会话忙,请等待空闲后再分支',
52
+ 'session.msgNotFound': '未找到消息: {uuid}',
53
+ 'session.notRewindable': '该消息不是可回退的用户输入: {uuid}',
54
+ 'session.notForkable': '该消息不是可分支的用户输入: {uuid}',
55
+ 'session.noForkHistory': '没有可分支的历史',
56
+ 'session.limitReached': '已达到会话数量上限 ({max}),请先关闭已有会话',
57
+ 'session.initFailed': '会话初始化失败: {error}',
58
+ // ---- Hook 通知 ----
59
+ 'hook.timeout': 'hook 执行超时({seconds}s)已终止: {command}',
60
+ 'hook.blockIgnored': '{event} 事件不支持阻断,hook 的 block 输出已忽略: {command}',
61
+ // ---- 模型配置 ----
62
+ 'model.testSuccess': '✓ 连接测试成功!API 配置正确。',
63
+ 'model.testNoYes': '✗ API 响应异常,未找到 YES 标识。响应: {response}',
64
+ 'model.testHttpError': '✗ API 返回错误 ({status}): {body}',
65
+ 'model.connectFailed': '连接失败: {error}',
66
+ 'model.responseTimeout': '模型响应超时,请检查网络与模型服务状态',
67
+ 'model.listEmpty': '获取模型列表为空',
68
+ 'model.listFailed': '获取模型列表失败 ({status})',
69
+ 'model.testFailed': 'API连接测试失败: {error}',
70
+ 'model.debugCommand': '调试命令:',
71
+ 'model.validateError': 'API校验过程中出现错误: {error}',
72
+ 'model.invalidProvider': '服务商名称不合法: {error}',
73
+ 'model.providerNameLength': '长度需为 2~20 个字符',
74
+ 'model.providerNameFormat': '仅支持小写字母、数字和短横线(-),需以字母开头且不能以短横线结尾',
75
+ 'model.invalidName': '模型名称格式错误: {name}. 期望格式: "modelName[provider]"',
76
+ 'model.notFound': '模型不存在: {name}',
77
+ 'model.inUseByPointer': '模型正在被模型指针使用,无法删除: {pointers}',
78
+ 'model.mainNotFound': 'main模型不存在: {name}',
79
+ 'model.quickNotFound': 'quick模型不存在: {name}',
80
+ 'model.saveFailed': '保存模型配置失败',
81
+ // ---- MCP ----
82
+ 'mcp.connectTimeout': '连接超时 ({seconds}s)',
83
+ 'mcp.capabilitiesTimeout': '获取能力超时 ({seconds}s)',
84
+ 'mcp.closeTimeout': '关闭客户端超时',
85
+ 'mcp.notConnected': 'MCP Server [{name}] 未连接',
86
+ 'mcp.stdioNeedsCommand': 'stdio 传输需要配置 command',
87
+ 'mcp.sseNeedsUrl': 'sse 传输需要配置 url',
88
+ 'mcp.httpNeedsUrl': 'http 传输需要配置 url',
89
+ 'mcp.unsupportedTransport': '不支持的传输类型: {transport}',
90
+ // ---- 插件市场 ----
91
+ 'plugin.gitCloneFailed': 'git clone 失败 [{repo}]: {stderr}',
92
+ 'plugin.gitPullFailed': 'git pull 失败 [{dir}]: {stderr}',
93
+ 'plugin.marketplaceNameFromRepo': '无法从 {repo} 获取市场名称,请确认 marketplace.json 存在',
94
+ 'plugin.marketplaceNameMissing': '无法获取市场名称,请确认 marketplace.json 存在',
95
+ 'plugin.dirNotFound': '目录不存在: {dir}',
96
+ 'plugin.marketplaceNotFound': '市场不存在: {name}',
97
+ 'plugin.marketplaceNotGithub': '市场 [{name}] 不是 github 来源,无法更新',
98
+ 'plugin.marketplaceUnreadable': '无法读取市场信息: {name}',
99
+ 'plugin.notInMarketplace': '插件 [{plugin}] 不存在于市场 [{name}]',
100
+ 'plugin.gitClonePluginFailed': 'git clone 插件失败 [{url}]: {stderr}',
101
+ // ---- Agent / Command 管理 ----
102
+ 'agent.addMissingFields': '添加 Agent 失败: 缺少必需字段 name、prompt 或 description',
103
+ 'agent.addInvalidLocate': "添加 Agent 失败: locate 必须为 'project' 或 'user'",
104
+ 'command.addMissingFields': '添加 Command 失败: 缺少必需字段 name、description 或 prompt',
105
+ 'command.addInvalidLocate': "添加 Command 失败: locate 必须为 'project' 或 'user'",
106
+ };
107
+ //# sourceMappingURL=zh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zh.js","sourceRoot":"","sources":["../../../src/util/i18n/zh.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ declare const zh: {
2
+ readonly 'permission.agree': "确认";
3
+ readonly 'permission.refuse': "拒绝";
4
+ readonly 'permission.approve': "同意";
5
+ readonly 'permission.allowShellPrefix': "确认,本项目不再询问 `{prefix}` 开头的命令";
6
+ readonly 'permission.allowShellExact': "确认,本项目不再询问 `{command}` 命令";
7
+ readonly 'permission.allowShellThis': "确认,本项目不再询问此命令";
8
+ readonly 'permission.allowEdit': "确认, 本次会话不再询问文件编辑";
9
+ readonly 'permission.allowReadDir': "确认,本次会话不再询问 {dir} 目录下的读取";
10
+ readonly 'permission.allowSkill': "确认,本项目不再询问 {skill} Skill";
11
+ readonly 'permission.allowSkillAny': "确认,本项目不再询问 Skill 工具";
12
+ readonly 'permission.allowMcp': "确认,本项目不再询问 {tool} 工具";
13
+ readonly 'permission.allowFetchDomain': "确认,本项目不再询问 {domain} 域名";
14
+ readonly 'permission.allowFetchThis': "确认,本项目不再询问此域名";
15
+ readonly 'permission.allowGeneric': "同意,本项目不再询问 {tool} 权限";
16
+ readonly 'permission.autoApproved': "模型安全判断放行 · 自动模式";
17
+ readonly 'plan.startEditing': "直接开始编码";
18
+ readonly 'plan.clearContextAndStart': "重置上下文后开始编码";
19
+ readonly 'plan.implementPrompt': "按照以下计划进行实现:";
20
+ readonly 'error.unknown': "未知错误";
21
+ readonly 'error.apiAuth': "API认证失败,请检查API密钥是否正确";
22
+ readonly 'error.apiForbidden': "API权限不足,请检查API密钥权限";
23
+ readonly 'error.apiRateLimit': "API调用频率超限,请稍后重试";
24
+ readonly 'error.apiParse': "API响应格式错误,无法解析数据";
25
+ readonly 'error.network': "网络连接错误,请检查网络连接";
26
+ readonly 'error.contextTooLong': "上下文长度超出限制";
27
+ readonly 'error.truncatedToolArgs': "API输出超长导致工具参数截断,可尝试调整模型最大输出token";
28
+ readonly 'error.truncatedContent': "API输出超长导致内容截断,可尝试调整模型最大输出token";
29
+ readonly 'error.emptyResponse': "API返回空响应:模型暂时没有返回有效内容,请重试一次。若多次重试仍失败,请稍后再试。";
30
+ readonly 'error.noModels': "未配置任何模型,请先添加模型配置";
31
+ readonly 'error.modelResolve': "解析模型失败: {pointer}";
32
+ readonly 'error.modelConfLoad': "模型配置文件加载失败,可尝试删除模型配置文件后重新添加模型";
33
+ readonly 'error.compactFailed': "压缩失败: {error}";
34
+ readonly 'error.compactEmptyHistory': "历史为空,跳过压缩";
35
+ readonly 'error.compactNoSummary': "压缩未生成有效摘要: {kind}";
36
+ readonly 'error.streamTimeout': "LLM流式请求超时({minutes}min)";
37
+ readonly 'error.streamIdleTimeout': "LLM流式请求空闲超时({minutes}min无新数据)";
38
+ readonly 'error.toolValidation': "工具调用验证失败";
39
+ readonly 'error.promptBlockedByHook': "输入被 UserPromptSubmit hook 拦截";
40
+ readonly 'session.busyRewind': "会话忙,请等待空闲后再撤销";
41
+ readonly 'session.busyFork': "会话忙,请等待空闲后再分支";
42
+ readonly 'session.msgNotFound': "未找到消息: {uuid}";
43
+ readonly 'session.notRewindable': "该消息不是可回退的用户输入: {uuid}";
44
+ readonly 'session.notForkable': "该消息不是可分支的用户输入: {uuid}";
45
+ readonly 'session.noForkHistory': "没有可分支的历史";
46
+ readonly 'session.limitReached': "已达到会话数量上限 ({max}),请先关闭已有会话";
47
+ readonly 'session.initFailed': "会话初始化失败: {error}";
48
+ readonly 'hook.timeout': "hook 执行超时({seconds}s)已终止: {command}";
49
+ readonly 'hook.blockIgnored': "{event} 事件不支持阻断,hook 的 block 输出已忽略: {command}";
50
+ readonly 'model.testSuccess': "✓ 连接测试成功!API 配置正确。";
51
+ readonly 'model.testNoYes': "✗ API 响应异常,未找到 YES 标识。响应: {response}";
52
+ readonly 'model.testHttpError': "✗ API 返回错误 ({status}): {body}";
53
+ readonly 'model.connectFailed': "连接失败: {error}";
54
+ readonly 'model.responseTimeout': "模型响应超时,请检查网络与模型服务状态";
55
+ readonly 'model.listEmpty': "获取模型列表为空";
56
+ readonly 'model.listFailed': "获取模型列表失败 ({status})";
57
+ readonly 'model.testFailed': "API连接测试失败: {error}";
58
+ readonly 'model.debugCommand': "调试命令:";
59
+ readonly 'model.validateError': "API校验过程中出现错误: {error}";
60
+ readonly 'model.invalidProvider': "服务商名称不合法: {error}";
61
+ readonly 'model.providerNameLength': "长度需为 2~20 个字符";
62
+ readonly 'model.providerNameFormat': "仅支持小写字母、数字和短横线(-),需以字母开头且不能以短横线结尾";
63
+ readonly 'model.invalidName': "模型名称格式错误: {name}. 期望格式: \"modelName[provider]\"";
64
+ readonly 'model.notFound': "模型不存在: {name}";
65
+ readonly 'model.inUseByPointer': "模型正在被模型指针使用,无法删除: {pointers}";
66
+ readonly 'model.mainNotFound': "main模型不存在: {name}";
67
+ readonly 'model.quickNotFound': "quick模型不存在: {name}";
68
+ readonly 'model.saveFailed': "保存模型配置失败";
69
+ readonly 'mcp.connectTimeout': "连接超时 ({seconds}s)";
70
+ readonly 'mcp.capabilitiesTimeout': "获取能力超时 ({seconds}s)";
71
+ readonly 'mcp.closeTimeout': "关闭客户端超时";
72
+ readonly 'mcp.notConnected': "MCP Server [{name}] 未连接";
73
+ readonly 'mcp.stdioNeedsCommand': "stdio 传输需要配置 command";
74
+ readonly 'mcp.sseNeedsUrl': "sse 传输需要配置 url";
75
+ readonly 'mcp.httpNeedsUrl': "http 传输需要配置 url";
76
+ readonly 'mcp.unsupportedTransport': "不支持的传输类型: {transport}";
77
+ readonly 'plugin.gitCloneFailed': "git clone 失败 [{repo}]: {stderr}";
78
+ readonly 'plugin.gitPullFailed': "git pull 失败 [{dir}]: {stderr}";
79
+ readonly 'plugin.marketplaceNameFromRepo': "无法从 {repo} 获取市场名称,请确认 marketplace.json 存在";
80
+ readonly 'plugin.marketplaceNameMissing': "无法获取市场名称,请确认 marketplace.json 存在";
81
+ readonly 'plugin.dirNotFound': "目录不存在: {dir}";
82
+ readonly 'plugin.marketplaceNotFound': "市场不存在: {name}";
83
+ readonly 'plugin.marketplaceNotGithub': "市场 [{name}] 不是 github 来源,无法更新";
84
+ readonly 'plugin.marketplaceUnreadable': "无法读取市场信息: {name}";
85
+ readonly 'plugin.notInMarketplace': "插件 [{plugin}] 不存在于市场 [{name}]";
86
+ readonly 'plugin.gitClonePluginFailed': "git clone 插件失败 [{url}]: {stderr}";
87
+ readonly 'agent.addMissingFields': "添加 Agent 失败: 缺少必需字段 name、prompt 或 description";
88
+ readonly 'agent.addInvalidLocate': "添加 Agent 失败: locate 必须为 'project' 或 'user'";
89
+ readonly 'command.addMissingFields': "添加 Command 失败: 缺少必需字段 name、description 或 prompt";
90
+ readonly 'command.addInvalidLocate': "添加 Command 失败: locate 必须为 'project' 或 'user'";
91
+ };
92
+ export type I18nKey = keyof typeof zh;
93
+ /**
94
+ * 按当前 lang 取文案并替换 {name} 占位符;缺 key 时返回 key 本身
95
+ */
96
+ export declare function t(key: I18nKey, vars?: Record<string, string | number>): string;
97
+ export {};
98
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../src/util/i18n.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2GE,CAAA;AAEV,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAA;AAiHrC;;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,228 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.t = t;
4
+ /**
5
+ * UI 可见文案的多语言字典(zh / en)。
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
+ const ConfManager_1 = require("../manager/ConfManager");
14
+ const zh = {
15
+ // ---- 权限面板 ----
16
+ 'permission.agree': '确认',
17
+ 'permission.refuse': '拒绝',
18
+ 'permission.approve': '同意',
19
+ 'permission.allowShellPrefix': '确认,本项目不再询问 `{prefix}` 开头的命令',
20
+ 'permission.allowShellExact': '确认,本项目不再询问 `{command}` 命令',
21
+ 'permission.allowShellThis': '确认,本项目不再询问此命令',
22
+ 'permission.allowEdit': '确认, 本次会话不再询问文件编辑',
23
+ 'permission.allowReadDir': '确认,本次会话不再询问 {dir} 目录下的读取',
24
+ 'permission.allowSkill': '确认,本项目不再询问 {skill} Skill',
25
+ 'permission.allowSkillAny': '确认,本项目不再询问 Skill 工具',
26
+ 'permission.allowMcp': '确认,本项目不再询问 {tool} 工具',
27
+ 'permission.allowFetchDomain': '确认,本项目不再询问 {domain} 域名',
28
+ 'permission.allowFetchThis': '确认,本项目不再询问此域名',
29
+ 'permission.allowGeneric': '同意,本项目不再询问 {tool} 权限',
30
+ 'permission.autoApproved': '模型安全判断放行 · 自动模式',
31
+ // ---- Plan 模式 ----
32
+ 'plan.startEditing': '直接开始编码',
33
+ 'plan.clearContextAndStart': '重置上下文后开始编码',
34
+ 'plan.implementPrompt': '按照以下计划进行实现:',
35
+ // ---- 会话错误(session:error 等) ----
36
+ 'error.unknown': '未知错误',
37
+ 'error.apiAuth': 'API认证失败,请检查API密钥是否正确',
38
+ 'error.apiForbidden': 'API权限不足,请检查API密钥权限',
39
+ 'error.apiRateLimit': 'API调用频率超限,请稍后重试',
40
+ 'error.apiParse': 'API响应格式错误,无法解析数据',
41
+ 'error.network': '网络连接错误,请检查网络连接',
42
+ 'error.contextTooLong': '上下文长度超出限制',
43
+ 'error.truncatedToolArgs': 'API输出超长导致工具参数截断,可尝试调整模型最大输出token',
44
+ 'error.truncatedContent': 'API输出超长导致内容截断,可尝试调整模型最大输出token',
45
+ 'error.emptyResponse': 'API返回空响应:模型暂时没有返回有效内容,请重试一次。若多次重试仍失败,请稍后再试。',
46
+ 'error.noModels': '未配置任何模型,请先添加模型配置',
47
+ 'error.modelResolve': '解析模型失败: {pointer}',
48
+ 'error.modelConfLoad': '模型配置文件加载失败,可尝试删除模型配置文件后重新添加模型',
49
+ 'error.compactFailed': '压缩失败: {error}',
50
+ 'error.compactEmptyHistory': '历史为空,跳过压缩',
51
+ 'error.compactNoSummary': '压缩未生成有效摘要: {kind}',
52
+ 'error.streamTimeout': 'LLM流式请求超时({minutes}min)',
53
+ 'error.streamIdleTimeout': 'LLM流式请求空闲超时({minutes}min无新数据)',
54
+ 'error.toolValidation': '工具调用验证失败',
55
+ 'error.promptBlockedByHook': '输入被 UserPromptSubmit hook 拦截',
56
+ // ---- 会话管理 ----
57
+ 'session.busyRewind': '会话忙,请等待空闲后再撤销',
58
+ 'session.busyFork': '会话忙,请等待空闲后再分支',
59
+ 'session.msgNotFound': '未找到消息: {uuid}',
60
+ 'session.notRewindable': '该消息不是可回退的用户输入: {uuid}',
61
+ 'session.notForkable': '该消息不是可分支的用户输入: {uuid}',
62
+ 'session.noForkHistory': '没有可分支的历史',
63
+ 'session.limitReached': '已达到会话数量上限 ({max}),请先关闭已有会话',
64
+ 'session.initFailed': '会话初始化失败: {error}',
65
+ // ---- Hook 通知 ----
66
+ 'hook.timeout': 'hook 执行超时({seconds}s)已终止: {command}',
67
+ 'hook.blockIgnored': '{event} 事件不支持阻断,hook 的 block 输出已忽略: {command}',
68
+ // ---- 模型配置 ----
69
+ 'model.testSuccess': '✓ 连接测试成功!API 配置正确。',
70
+ 'model.testNoYes': '✗ API 响应异常,未找到 YES 标识。响应: {response}',
71
+ 'model.testHttpError': '✗ API 返回错误 ({status}): {body}',
72
+ 'model.connectFailed': '连接失败: {error}',
73
+ 'model.responseTimeout': '模型响应超时,请检查网络与模型服务状态',
74
+ 'model.listEmpty': '获取模型列表为空',
75
+ 'model.listFailed': '获取模型列表失败 ({status})',
76
+ 'model.testFailed': 'API连接测试失败: {error}',
77
+ 'model.debugCommand': '调试命令:',
78
+ 'model.validateError': 'API校验过程中出现错误: {error}',
79
+ 'model.invalidProvider': '服务商名称不合法: {error}',
80
+ 'model.providerNameLength': '长度需为 2~20 个字符',
81
+ 'model.providerNameFormat': '仅支持小写字母、数字和短横线(-),需以字母开头且不能以短横线结尾',
82
+ 'model.invalidName': '模型名称格式错误: {name}. 期望格式: "modelName[provider]"',
83
+ 'model.notFound': '模型不存在: {name}',
84
+ 'model.inUseByPointer': '模型正在被模型指针使用,无法删除: {pointers}',
85
+ 'model.mainNotFound': 'main模型不存在: {name}',
86
+ 'model.quickNotFound': 'quick模型不存在: {name}',
87
+ 'model.saveFailed': '保存模型配置失败',
88
+ // ---- MCP ----
89
+ 'mcp.connectTimeout': '连接超时 ({seconds}s)',
90
+ 'mcp.capabilitiesTimeout': '获取能力超时 ({seconds}s)',
91
+ 'mcp.closeTimeout': '关闭客户端超时',
92
+ 'mcp.notConnected': 'MCP Server [{name}] 未连接',
93
+ 'mcp.stdioNeedsCommand': 'stdio 传输需要配置 command',
94
+ 'mcp.sseNeedsUrl': 'sse 传输需要配置 url',
95
+ 'mcp.httpNeedsUrl': 'http 传输需要配置 url',
96
+ 'mcp.unsupportedTransport': '不支持的传输类型: {transport}',
97
+ // ---- 插件市场 ----
98
+ 'plugin.gitCloneFailed': 'git clone 失败 [{repo}]: {stderr}',
99
+ 'plugin.gitPullFailed': 'git pull 失败 [{dir}]: {stderr}',
100
+ 'plugin.marketplaceNameFromRepo': '无法从 {repo} 获取市场名称,请确认 marketplace.json 存在',
101
+ 'plugin.marketplaceNameMissing': '无法获取市场名称,请确认 marketplace.json 存在',
102
+ 'plugin.dirNotFound': '目录不存在: {dir}',
103
+ 'plugin.marketplaceNotFound': '市场不存在: {name}',
104
+ 'plugin.marketplaceNotGithub': '市场 [{name}] 不是 github 来源,无法更新',
105
+ 'plugin.marketplaceUnreadable': '无法读取市场信息: {name}',
106
+ 'plugin.notInMarketplace': '插件 [{plugin}] 不存在于市场 [{name}]',
107
+ 'plugin.gitClonePluginFailed': 'git clone 插件失败 [{url}]: {stderr}',
108
+ // ---- Agent / Command 管理 ----
109
+ 'agent.addMissingFields': '添加 Agent 失败: 缺少必需字段 name、prompt 或 description',
110
+ 'agent.addInvalidLocate': "添加 Agent 失败: locate 必须为 'project' 或 'user'",
111
+ 'command.addMissingFields': '添加 Command 失败: 缺少必需字段 name、description 或 prompt',
112
+ 'command.addInvalidLocate': "添加 Command 失败: locate 必须为 'project' 或 'user'",
113
+ };
114
+ const en = {
115
+ // ---- 权限面板 ----
116
+ 'permission.agree': 'Allow',
117
+ 'permission.refuse': 'Deny',
118
+ 'permission.approve': 'Approve',
119
+ 'permission.allowShellPrefix': "Allow, and don't ask again for commands starting with `{prefix}` in this project",
120
+ 'permission.allowShellExact': "Allow, and don't ask again for `{command}` in this project",
121
+ 'permission.allowShellThis': "Allow, and don't ask again for this command in this project",
122
+ 'permission.allowEdit': "Allow, and don't ask again for file edits in this session",
123
+ 'permission.allowReadDir': "Allow, and don't ask again for reads under {dir} in this session",
124
+ 'permission.allowSkill': "Allow, and don't ask again for the {skill} skill in this project",
125
+ 'permission.allowSkillAny': "Allow, and don't ask again for the Skill tool in this project",
126
+ 'permission.allowMcp': "Allow, and don't ask again for {tool} in this project",
127
+ 'permission.allowFetchDomain': "Allow, and don't ask again for {domain} in this project",
128
+ 'permission.allowFetchThis': "Allow, and don't ask again for this domain in this project",
129
+ 'permission.allowGeneric': "Approve, and don't ask again for {tool} in this project",
130
+ 'permission.autoApproved': 'Allowed by model check · auto mode',
131
+ // ---- Plan 模式 ----
132
+ 'plan.startEditing': 'Start coding now',
133
+ 'plan.clearContextAndStart': 'Reset context and start coding',
134
+ 'plan.implementPrompt': 'Implement the following plan:',
135
+ // ---- 会话错误 ----
136
+ 'error.unknown': 'Unknown error',
137
+ 'error.apiAuth': 'API authentication failed. Check that the API key is correct',
138
+ 'error.apiForbidden': "API permission denied. Check the API key's permissions",
139
+ 'error.apiRateLimit': 'API rate limit exceeded. Try again later',
140
+ 'error.apiParse': 'Malformed API response. Unable to parse data',
141
+ 'error.network': 'Network error. Check your connection',
142
+ 'error.contextTooLong': 'Context length exceeded',
143
+ 'error.truncatedToolArgs': "Output hit the max output tokens and tool arguments were truncated. Try raising the model's max output tokens",
144
+ 'error.truncatedContent': "Output hit the max output tokens and the content was truncated. Try raising the model's max output tokens",
145
+ 'error.emptyResponse': 'The API returned an empty response. Retry once; if it keeps failing, try again later.',
146
+ 'error.noModels': 'No model configured. Add a model first',
147
+ 'error.modelResolve': 'Failed to resolve model: {pointer}',
148
+ 'error.modelConfLoad': 'Failed to load the model config file. Try deleting it and adding the model again',
149
+ 'error.compactFailed': 'Compaction failed: {error}',
150
+ 'error.compactEmptyHistory': 'Empty history, skip compact',
151
+ 'error.compactNoSummary': 'Compact did not produce a valid summary: {kind}',
152
+ 'error.streamTimeout': 'LLM streaming request timed out ({minutes}min)',
153
+ 'error.streamIdleTimeout': 'LLM streaming request idle timeout ({minutes}min without new data)',
154
+ 'error.toolValidation': 'Tool input validation failed',
155
+ 'error.promptBlockedByHook': 'Input blocked by the UserPromptSubmit hook',
156
+ // ---- 会话管理 ----
157
+ 'session.busyRewind': 'Session is busy. Wait until it is idle before rewinding',
158
+ 'session.busyFork': 'Session is busy. Wait until it is idle before forking',
159
+ 'session.msgNotFound': 'Message not found: {uuid}',
160
+ 'session.notRewindable': 'This message is not a rewindable user input: {uuid}',
161
+ 'session.notForkable': 'This message is not a forkable user input: {uuid}',
162
+ 'session.noForkHistory': 'No history to fork',
163
+ 'session.limitReached': 'Session limit reached ({max}). Close an existing session first',
164
+ 'session.initFailed': 'Session initialization failed: {error}',
165
+ // ---- Hook 通知 ----
166
+ 'hook.timeout': 'Hook timed out ({seconds}s) and was terminated: {command}',
167
+ 'hook.blockIgnored': "The {event} event cannot be blocked; the hook's block output was ignored: {command}",
168
+ // ---- 模型配置 ----
169
+ 'model.testSuccess': '✓ Connection test passed. The API configuration is correct.',
170
+ 'model.testNoYes': '✗ Unexpected API response, no YES marker found. Response: {response}',
171
+ 'model.testHttpError': '✗ API returned an error ({status}): {body}',
172
+ 'model.connectFailed': 'Connection failed: {error}',
173
+ 'model.responseTimeout': 'Model response timed out. Check the network and model service',
174
+ 'model.listEmpty': 'The model list is empty',
175
+ 'model.listFailed': 'Failed to fetch the model list ({status})',
176
+ 'model.testFailed': 'API connection test failed: {error}',
177
+ 'model.debugCommand': 'Debug command:',
178
+ 'model.validateError': 'Error during API validation: {error}',
179
+ 'model.invalidProvider': 'Invalid provider name: {error}',
180
+ 'model.providerNameLength': 'Must be 2–20 characters',
181
+ 'model.providerNameFormat': 'Only lowercase letters, digits and hyphens; must start with a letter and not end with a hyphen',
182
+ 'model.invalidName': 'Invalid model name: {name}. Expected "modelName[provider]"',
183
+ 'model.notFound': 'Model not found: {name}',
184
+ 'model.inUseByPointer': 'Model is in use by pointer(s) {pointers} and cannot be deleted',
185
+ 'model.mainNotFound': 'main model not found: {name}',
186
+ 'model.quickNotFound': 'quick model not found: {name}',
187
+ 'model.saveFailed': 'Failed to save model config',
188
+ // ---- MCP ----
189
+ 'mcp.connectTimeout': 'Connection timed out ({seconds}s)',
190
+ 'mcp.capabilitiesTimeout': 'Fetching capabilities timed out ({seconds}s)',
191
+ 'mcp.closeTimeout': 'Client close timed out',
192
+ 'mcp.notConnected': 'MCP server [{name}] is not connected',
193
+ 'mcp.stdioNeedsCommand': 'stdio transport requires "command"',
194
+ 'mcp.sseNeedsUrl': 'sse transport requires "url"',
195
+ 'mcp.httpNeedsUrl': 'http transport requires "url"',
196
+ 'mcp.unsupportedTransport': 'Unsupported transport: {transport}',
197
+ // ---- 插件市场 ----
198
+ 'plugin.gitCloneFailed': 'git clone failed [{repo}]: {stderr}',
199
+ 'plugin.gitPullFailed': 'git pull failed [{dir}]: {stderr}',
200
+ 'plugin.marketplaceNameFromRepo': 'Cannot read the marketplace name from {repo}. Make sure marketplace.json exists',
201
+ 'plugin.marketplaceNameMissing': 'Cannot read the marketplace name. Make sure marketplace.json exists',
202
+ 'plugin.dirNotFound': 'Directory not found: {dir}',
203
+ 'plugin.marketplaceNotFound': 'Marketplace not found: {name}',
204
+ 'plugin.marketplaceNotGithub': 'Marketplace [{name}] is not a GitHub source and cannot be updated',
205
+ 'plugin.marketplaceUnreadable': 'Cannot read marketplace info: {name}',
206
+ 'plugin.notInMarketplace': 'Plugin [{plugin}] not found in marketplace [{name}]',
207
+ 'plugin.gitClonePluginFailed': 'git clone of plugin failed [{url}]: {stderr}',
208
+ // ---- Agent / Command 管理 ----
209
+ 'agent.addMissingFields': 'Failed to add agent: missing required field name, prompt or description',
210
+ 'agent.addInvalidLocate': "Failed to add agent: locate must be 'project' or 'user'",
211
+ 'command.addMissingFields': 'Failed to add command: missing required field name, description or prompt',
212
+ 'command.addInvalidLocate': "Failed to add command: locate must be 'project' or 'user'",
213
+ };
214
+ const MESSAGES = { zh, en };
215
+ /**
216
+ * 按当前 lang 取文案并替换 {name} 占位符;缺 key 时返回 key 本身
217
+ */
218
+ function t(key, vars) {
219
+ const lang = (0, ConfManager_1.getConfManager)().getLanguage();
220
+ let s = MESSAGES[lang]?.[key] ?? zh[key] ?? key;
221
+ if (vars) {
222
+ for (const [k, v] of Object.entries(vars)) {
223
+ s = s.split(`{${k}}`).join(String(v));
224
+ }
225
+ }
226
+ return s;
227
+ }
228
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/util/i18n.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMzC,eAAO,MAAM,iBAAiB,kCAAkC,CAAA;AAChE,eAAO,MAAM,kBAAkB,mCACG,CAAA;AAClC,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAClG,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAGlG,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,cAAc,cAAc,CAAA;AAKzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAC/C,aAAa,CAAC,EAAE,iBAAiB,EACjC,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAQT;AAGD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAC9C,cAAc,EAAE,OAAO,EAAE,EACzB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CA6BxC;AAuBD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAkHzB"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAA;AAGzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAMzC,eAAO,MAAM,iBAAiB,kCAAkC,CAAA;AAChE,eAAO,MAAM,kBAAkB,mCACG,CAAA;AAClC,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAClG,eAAO,MAAM,UAAU,2EAA2E,CAAA;AAGlG,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,eAAO,MAAM,cAAc,cAAc,CAAA;AAKzC,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAGD,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAC/C,aAAa,CAAC,EAAE,iBAAiB,EACjC,aAAa,CAAC,EAAE,iBAAiB,GAChC,OAAO,CAQT;AAGD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,eAAe,EAAE,SAAS,CAAC,iBAAiB,EAAE,EAC9C,cAAc,EAAE,OAAO,EAAE,EACzB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,MAAM,EACjB,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC,CA6BxC;AAuBD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,CAqHzB"}
@@ -160,8 +160,11 @@ function prepareMessagesForApi(messages) {
160
160
  ...(Array.isArray(lastContent) ? lastContent : [{ type: 'text', text: lastContent }]),
161
161
  ...(Array.isArray(currentContent) ? currentContent : [{ type: 'text', text: currentContent }]),
162
162
  ];
163
+ // 合并后保留轮次锚点:压缩摘要 / 上下文重建消息在前、真实输入在后时,边界靠这一行传递
164
+ const checkpointSeq = lastMessage.checkpointSeq ?? message.checkpointSeq;
163
165
  result[result.length - 1] = {
164
166
  ...lastMessage,
167
+ ...(checkpointSeq !== undefined ? { checkpointSeq } : {}),
165
168
  message: {
166
169
  ...lastMessage.message,
167
170
  content: mergedContent,
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/util/message.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/util/model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,CAQxD;AAGD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS3F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAa5F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAWvE"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/util/model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAKvC;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,kBAAkB,CAQxD;AAGD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAS3F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,GAAG,IAAI,CAa5F;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAgBvE"}
@@ -6,6 +6,7 @@ exports.parseModelName = parseModelName;
6
6
  exports.findModelProfile = findModelProfile;
7
7
  exports.convertToModelProfile = convertToModelProfile;
8
8
  const log_1 = require("./log");
9
+ const i18n_1 = require("./i18n");
9
10
  /**
10
11
  * 创建默认模型配置
11
12
  */
@@ -25,10 +26,10 @@ function createDefaultConfig() {
25
26
  */
26
27
  function validateProviderName(provider) {
27
28
  if (provider.length < 2 || provider.length > 20) {
28
- return '长度需为 2~20 个字符';
29
+ return (0, i18n_1.t)('model.providerNameLength');
29
30
  }
30
31
  if (!/^[a-z][a-z0-9-]*[a-z0-9]$/.test(provider)) {
31
- return '仅支持小写字母、数字和短横线(-),需以字母开头且不能以短横线结尾';
32
+ return (0, i18n_1.t)('model.providerNameFormat');
32
33
  }
33
34
  return null;
34
35
  }
@@ -58,7 +59,7 @@ function findModelProfile(name, profiles) {
58
59
  * 将 ModelConfig 转换为 ModelProfile
59
60
  */
60
61
  function convertToModelProfile(config) {
61
- return {
62
+ const profile = {
62
63
  name: `${config.modelName}[${config.provider}]`,
63
64
  provider: config.provider,
64
65
  modelName: config.modelName,
@@ -68,5 +69,10 @@ function convertToModelProfile(config) {
68
69
  contextLength: config.contextLength,
69
70
  adapt: config.adapt
70
71
  };
72
+ // 只在有值时写入,避免配置文件出现 undefined 字段
73
+ if (config.thinkingHistoryPolicy) {
74
+ profile.thinkingHistoryPolicy = config.thinkingHistoryPolicy;
75
+ }
76
+ return profile;
71
77
  }
72
78
  //# sourceMappingURL=model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/util/model.ts"],"names":[],"mappings":";;AAUA,kDAQC;AAQD,oDAQC;AAED,wCASC;AAKD,4CAaC;AAKD,sDAWC;AA3ED,+BAAgC;AAGhC;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE;YACb,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAGD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChD,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,mCAAmC,CAAC;IAC7C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAA,aAAO,EAAC,8BAA8B,IAAI,0CAA0C,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IACtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAwB;IACrE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEvC,YAAY;IACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC7B,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CACjE,IAAI,IAAI,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAmB;IACvD,OAAO;QACL,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG;QAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/util/model.ts"],"names":[],"mappings":";;AAWA,kDAQC;AAQD,oDAQC;AAED,wCASC;AAKD,4CAaC;AAKD,sDAgBC;AAjFD,+BAAgC;AAChC,iCAA2B;AAG3B;;GAEG;AACH,SAAgB,mBAAmB;IACjC,OAAO;QACL,aAAa,EAAE,EAAE;QACjB,aAAa,EAAE;YACb,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAGD;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,QAAgB;IACnD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAChD,OAAO,IAAA,QAAC,EAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChD,OAAO,IAAA,QAAC,EAAC,0BAA0B,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAA,aAAO,EAAC,8BAA8B,IAAI,0CAA0C,CAAC,CAAC;QACtF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;IACtC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,IAAY,EAAE,QAAwB;IACrE,0BAA0B;IAC1B,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAEvC,YAAY;IACZ,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAC7B,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CACjE,IAAI,IAAI,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,MAAmB;IACvD,MAAM,OAAO,GAAiB;QAC5B,IAAI,EAAE,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG;QAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACF,gCAAgC;IAChC,IAAI,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjC,OAAO,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;IAC/D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/util/shell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AA2BlE,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMnD;AAiED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,KAAK,CAAA;AAEvE,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AA4CD,wBAAgB,mBAAmB,IAAI,aAAa,GAAG,IAAI,CAO1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAYlE;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAE1D;AAmMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,GAAG,EAAE,MAAM;IAuFvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAGtD,MAAM,CAAC,OAAO;IAQd,MAAM,CAAC,WAAW,IAAI,eAAe;IASrC,YAAY;YA4DE,YAAY;IA0CpB,IAAI,CACR,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAClD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAI,GAChD,OAAO,CAAC,eAAe,CAAC;IAO3B;;;OAGG;IACH,OAAO,CAAC,WAAW;YAgCL,KAAK;YA0KL,gBAAgB;IAwG9B,OAAO,CAAC,WAAW;IAcnB,GAAG,IAAI,MAAM;IAmBP,MAAM,CAAC,GAAG,EAAE,MAAM;IAkBxB,KAAK,IAAI,IAAI;CAId;AAID,eAAO,MAAM,sBAAsB,MAAM,CAAA;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AASxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,SAAyB,EAAE,EAAE,SAAgB,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO;;;EAmBvI"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/util/shell.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAA;AA2BlE,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,OAAO,CAAA;CACrB,CAAA;AAGD,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,YAAY,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMnD;AAiED,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,KAAK,CAAA;AAEvE,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,EAAE,SAAS,CAAA;CAChB,CAAA;AA4CD,wBAAgB,mBAAmB,IAAI,aAAa,GAAG,IAAI,CAO1D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAYlE;AAED,wBAAgB,0BAA0B,IAAI,aAAa,CAE1D;AAmMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,kBAAkB,CAAiB;IAC3C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,GAAG,CAAQ;IACnB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,SAAS,CAAW;IAC5B,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,iBAAiB,CAAa;gBAE1B,GAAG,EAAE,MAAM;IAuFvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IAGtD,MAAM,CAAC,OAAO;IAQd,MAAM,CAAC,WAAW,IAAI,eAAe;IASrC,YAAY;YA4DE,YAAY;IA0CpB,IAAI,CACR,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,EACzB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,EAClD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,sBAAsB,KAAK,IAAI,GAChD,OAAO,CAAC,eAAe,CAAC;IAO3B;;;OAGG;IACH,OAAO,CAAC,WAAW;YAgCL,KAAK;YA0KL,gBAAgB;IAwG9B,OAAO,CAAC,WAAW;IAcnB,GAAG,IAAI,MAAM;IAmBP,MAAM,CAAC,GAAG,EAAE,MAAM;IAkBxB,KAAK,IAAI,IAAI;CAId;AAID,eAAO,MAAM,sBAAsB,MAAM,CAAA;AACzC,eAAO,MAAM,sBAAsB,KAAK,CAAA;AASxC,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,SAAyB,EAAE,EAAE,SAAgB,EAAE,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAO;;;EAwBvI"}
@@ -912,7 +912,12 @@ function truncateLines(lines) {
912
912
  function formatOutput(content, headTailLines = exports.STDOUT_HEAD_TAIL_LINES, { resolveCR = true } = {}) {
913
913
  // 处理 \r(回车符):模拟终端行为,只保留每行最后一次 \r 后的内容
914
914
  const resolved = resolveCR
915
- ? content.split('\n').map(line => {
915
+ ? content
916
+ // Windows 上 Python / PowerShell / cmd 的输出以 \r\n 结尾,行尾的 \r 是换行的一部分
917
+ // 而不是重绘,必须先归一,否则每行都会被下面的折叠抹成空串。
918
+ // 用 \r+ 是为了顺带处理 \r\r\n(程序写了 \r\n、运行时又翻译了一次 \n)。
919
+ .replace(/\r+\n/g, '\n')
920
+ .split('\n').map(line => {
916
921
  if (!line.includes('\r'))
917
922
  return line;
918
923
  const parts = line.split('\r');