hammoc 1.1.5 → 1.2.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 (160) hide show
  1. package/README.md +8 -2
  2. package/bin/hammoc.js +12 -0
  3. package/package.json +3 -3
  4. package/packages/client/dist/assets/{index-BG1rX4_v.js → index-Bz_ljWO0.js} +1 -1
  5. package/packages/client/dist/assets/index-Cc_AX5QV.css +32 -0
  6. package/packages/client/dist/assets/index-DjVOQMst.js +1451 -0
  7. package/packages/client/dist/index.html +2 -2
  8. package/packages/client/dist/sw.js +1 -1
  9. package/packages/server/dist/app.d.ts.map +1 -1
  10. package/packages/server/dist/app.js +3 -0
  11. package/packages/server/dist/app.js.map +1 -1
  12. package/packages/server/dist/controllers/authController.d.ts +5 -0
  13. package/packages/server/dist/controllers/authController.d.ts.map +1 -1
  14. package/packages/server/dist/controllers/authController.js +61 -0
  15. package/packages/server/dist/controllers/authController.js.map +1 -1
  16. package/packages/server/dist/controllers/boardController.d.ts +2 -1
  17. package/packages/server/dist/controllers/boardController.d.ts.map +1 -1
  18. package/packages/server/dist/controllers/boardController.js +29 -4
  19. package/packages/server/dist/controllers/boardController.js.map +1 -1
  20. package/packages/server/dist/controllers/projectController.d.ts +6 -0
  21. package/packages/server/dist/controllers/projectController.d.ts.map +1 -1
  22. package/packages/server/dist/controllers/projectController.js +62 -0
  23. package/packages/server/dist/controllers/projectController.js.map +1 -1
  24. package/packages/server/dist/controllers/queueController.d.ts +1 -0
  25. package/packages/server/dist/controllers/queueController.d.ts.map +1 -1
  26. package/packages/server/dist/controllers/queueController.js +12 -0
  27. package/packages/server/dist/controllers/queueController.js.map +1 -1
  28. package/packages/server/dist/controllers/queueTemplateController.d.ts.map +1 -1
  29. package/packages/server/dist/controllers/queueTemplateController.js +1 -15
  30. package/packages/server/dist/controllers/queueTemplateController.js.map +1 -1
  31. package/packages/server/dist/controllers/serverController.d.ts.map +1 -1
  32. package/packages/server/dist/controllers/serverController.js +83 -69
  33. package/packages/server/dist/controllers/serverController.js.map +1 -1
  34. package/packages/server/dist/controllers/sessionController.d.ts +5 -10
  35. package/packages/server/dist/controllers/sessionController.d.ts.map +1 -1
  36. package/packages/server/dist/controllers/sessionController.js +65 -75
  37. package/packages/server/dist/controllers/sessionController.js.map +1 -1
  38. package/packages/server/dist/handlers/streamCallbacks.d.ts +4 -0
  39. package/packages/server/dist/handlers/streamCallbacks.d.ts.map +1 -1
  40. package/packages/server/dist/handlers/streamCallbacks.js +9 -3
  41. package/packages/server/dist/handlers/streamCallbacks.js.map +1 -1
  42. package/packages/server/dist/handlers/websocket.d.ts +9 -15
  43. package/packages/server/dist/handlers/websocket.d.ts.map +1 -1
  44. package/packages/server/dist/handlers/websocket.js +672 -116
  45. package/packages/server/dist/handlers/websocket.js.map +1 -1
  46. package/packages/server/dist/locales/en/server.json +8 -2
  47. package/packages/server/dist/locales/es/server.json +311 -305
  48. package/packages/server/dist/locales/ja/server.json +311 -305
  49. package/packages/server/dist/locales/ko/server.json +8 -2
  50. package/packages/server/dist/locales/pt/server.json +311 -305
  51. package/packages/server/dist/locales/zh-CN/server.json +311 -305
  52. package/packages/server/dist/routes/auth.d.ts.map +1 -1
  53. package/packages/server/dist/routes/auth.js +2 -0
  54. package/packages/server/dist/routes/auth.js.map +1 -1
  55. package/packages/server/dist/routes/board.d.ts.map +1 -1
  56. package/packages/server/dist/routes/board.js +3 -1
  57. package/packages/server/dist/routes/board.js.map +1 -1
  58. package/packages/server/dist/routes/images.d.ts +7 -0
  59. package/packages/server/dist/routes/images.d.ts.map +1 -0
  60. package/packages/server/dist/routes/images.js +51 -0
  61. package/packages/server/dist/routes/images.js.map +1 -0
  62. package/packages/server/dist/routes/projects.d.ts.map +1 -1
  63. package/packages/server/dist/routes/projects.js +2 -0
  64. package/packages/server/dist/routes/projects.js.map +1 -1
  65. package/packages/server/dist/routes/queue.d.ts.map +1 -1
  66. package/packages/server/dist/routes/queue.js +2 -1
  67. package/packages/server/dist/routes/queue.js.map +1 -1
  68. package/packages/server/dist/routes/sessions.d.ts.map +1 -1
  69. package/packages/server/dist/routes/sessions.js +2 -3
  70. package/packages/server/dist/routes/sessions.js.map +1 -1
  71. package/packages/server/dist/services/bmadStatusService.d.ts.map +1 -1
  72. package/packages/server/dist/services/bmadStatusService.js +15 -25
  73. package/packages/server/dist/services/bmadStatusService.js.map +1 -1
  74. package/packages/server/dist/services/chatService.d.ts +2 -0
  75. package/packages/server/dist/services/chatService.d.ts.map +1 -1
  76. package/packages/server/dist/services/chatService.js +34 -1
  77. package/packages/server/dist/services/chatService.js.map +1 -1
  78. package/packages/server/dist/services/historyParser.d.ts +1 -11
  79. package/packages/server/dist/services/historyParser.d.ts.map +1 -1
  80. package/packages/server/dist/services/historyParser.js +144 -182
  81. package/packages/server/dist/services/historyParser.js.map +1 -1
  82. package/packages/server/dist/services/imageStorageService.d.ts +28 -0
  83. package/packages/server/dist/services/imageStorageService.d.ts.map +1 -0
  84. package/packages/server/dist/services/imageStorageService.js +108 -0
  85. package/packages/server/dist/services/imageStorageService.js.map +1 -0
  86. package/packages/server/dist/services/issueService.d.ts +10 -2
  87. package/packages/server/dist/services/issueService.d.ts.map +1 -1
  88. package/packages/server/dist/services/issueService.js +90 -23
  89. package/packages/server/dist/services/issueService.js.map +1 -1
  90. package/packages/server/dist/services/ptyService.d.ts +6 -0
  91. package/packages/server/dist/services/ptyService.d.ts.map +1 -1
  92. package/packages/server/dist/services/ptyService.js +59 -0
  93. package/packages/server/dist/services/ptyService.js.map +1 -1
  94. package/packages/server/dist/services/queueService.d.ts.map +1 -1
  95. package/packages/server/dist/services/queueService.js +23 -2
  96. package/packages/server/dist/services/queueService.js.map +1 -1
  97. package/packages/server/dist/services/rateLimitProbeService.d.ts +5 -0
  98. package/packages/server/dist/services/rateLimitProbeService.d.ts.map +1 -1
  99. package/packages/server/dist/services/rateLimitProbeService.js +7 -0
  100. package/packages/server/dist/services/rateLimitProbeService.js.map +1 -1
  101. package/packages/server/dist/services/sessionBufferManager.d.ts +26 -0
  102. package/packages/server/dist/services/sessionBufferManager.d.ts.map +1 -0
  103. package/packages/server/dist/services/sessionBufferManager.js +113 -0
  104. package/packages/server/dist/services/sessionBufferManager.js.map +1 -0
  105. package/packages/server/dist/services/sessionService.d.ts +26 -1
  106. package/packages/server/dist/services/sessionService.d.ts.map +1 -1
  107. package/packages/server/dist/services/sessionService.js +236 -67
  108. package/packages/server/dist/services/sessionService.js.map +1 -1
  109. package/packages/server/dist/services/summarizeService.d.ts +25 -0
  110. package/packages/server/dist/services/summarizeService.d.ts.map +1 -0
  111. package/packages/server/dist/services/summarizeService.js +122 -0
  112. package/packages/server/dist/services/summarizeService.js.map +1 -0
  113. package/packages/server/dist/utils/imageUtils.d.ts +11 -0
  114. package/packages/server/dist/utils/imageUtils.d.ts.map +1 -0
  115. package/packages/server/dist/utils/imageUtils.js +37 -0
  116. package/packages/server/dist/utils/imageUtils.js.map +1 -0
  117. package/packages/server/dist/utils/messageTree.d.ts +56 -0
  118. package/packages/server/dist/utils/messageTree.d.ts.map +1 -0
  119. package/packages/server/dist/utils/messageTree.js +356 -0
  120. package/packages/server/dist/utils/messageTree.js.map +1 -0
  121. package/packages/server/package.json +3 -1
  122. package/packages/shared/dist/constants/index.d.ts +3 -0
  123. package/packages/shared/dist/constants/index.d.ts.map +1 -0
  124. package/packages/shared/dist/constants/index.js +3 -0
  125. package/packages/shared/dist/constants/index.js.map +1 -0
  126. package/packages/shared/dist/constants/messageTree.d.ts +6 -0
  127. package/packages/shared/dist/constants/messageTree.d.ts.map +1 -0
  128. package/packages/shared/dist/constants/messageTree.js +7 -0
  129. package/packages/shared/dist/constants/messageTree.js.map +1 -0
  130. package/packages/shared/dist/index.d.ts +2 -1
  131. package/packages/shared/dist/index.d.ts.map +1 -1
  132. package/packages/shared/dist/index.js +1 -1
  133. package/packages/shared/dist/index.js.map +1 -1
  134. package/packages/shared/dist/types/auth.d.ts +15 -0
  135. package/packages/shared/dist/types/auth.d.ts.map +1 -1
  136. package/packages/shared/dist/types/auth.js.map +1 -1
  137. package/packages/shared/dist/types/bmadStatus.d.ts +1 -2
  138. package/packages/shared/dist/types/bmadStatus.d.ts.map +1 -1
  139. package/packages/shared/dist/types/bmadStatus.js.map +1 -1
  140. package/packages/shared/dist/types/history.d.ts +21 -8
  141. package/packages/shared/dist/types/history.d.ts.map +1 -1
  142. package/packages/shared/dist/types/message.d.ts +10 -0
  143. package/packages/shared/dist/types/message.d.ts.map +1 -1
  144. package/packages/shared/dist/types/message.js.map +1 -1
  145. package/packages/shared/dist/types/preferences.d.ts +5 -1
  146. package/packages/shared/dist/types/preferences.d.ts.map +1 -1
  147. package/packages/shared/dist/types/preferences.js.map +1 -1
  148. package/packages/shared/dist/types/queue.d.ts +3 -3
  149. package/packages/shared/dist/types/queue.d.ts.map +1 -1
  150. package/packages/shared/dist/types/sdk.d.ts +14 -0
  151. package/packages/shared/dist/types/sdk.d.ts.map +1 -1
  152. package/packages/shared/dist/types/sdk.js.map +1 -1
  153. package/packages/shared/dist/types/session.d.ts +1 -0
  154. package/packages/shared/dist/types/session.d.ts.map +1 -1
  155. package/packages/shared/dist/types/session.js.map +1 -1
  156. package/packages/shared/dist/types/websocket.d.ts +61 -3
  157. package/packages/shared/dist/types/websocket.d.ts.map +1 -1
  158. package/scripts/spike-25.9-output.log +47 -0
  159. package/packages/client/dist/assets/index-B1mDkqlY.css +0 -32
  160. package/packages/client/dist/assets/index-B_NOAvK3.js +0 -1380
@@ -1,305 +1,311 @@
1
- {
2
- "error": {
3
- "notFound": "未找到资源",
4
- "unauthorized": "未授权",
5
- "internal": "内部服务器错误",
6
- "requestFailed": "请求失败 ({{status}} {{statusText}})",
7
- "rateLimit": "API请求已达上限。请稍后再试。",
8
- "authRequired": "需要Claude Code CLI认证。请运行 \"claude login\"。",
9
- "networkError": "网络连接异常。请检查您的网络连接。",
10
- "invalidPath": "无效路径: {{path}}",
11
- "serviceUnavailable": "Claude服务暂不可用。请稍后再试。",
12
- "aborted": "操作已取消。"
13
- },
14
- "auth": {
15
- "validation": {
16
- "passwordRequired": "请输入密码。",
17
- "passwordMinLength": "密码至少需要{{value}}个字符。",
18
- "passwordConfirmRequired": "请确认密码。",
19
- "invalidRequest": "无效请求。"
20
- },
21
- "login": {
22
- "success": "登录成功",
23
- "serverError": "登录时服务器错误",
24
- "invalidPassword": "密码错误。",
25
- "rateLimitExceeded": "登录尝试次数过多。请稍后再试。"
26
- },
27
- "password": {
28
- "alreadySet": "密码已设置。",
29
- "mismatch": "两次输入的密码不一致。",
30
- "setSuccess": "密码设置成功。",
31
- "setError": "设置密码时服务器错误。"
32
- },
33
- "logout": {
34
- "success": "已成功登出",
35
- "error": "登出时出错"
36
- }
37
- },
38
- "project": {
39
- "validation": {
40
- "pathRequired": "请输入项目路径。",
41
- "slugRequired": "请输入项目标识。",
42
- "invalidPermissionMode": "无效的权限模式: {{value}}",
43
- "invalidModelId": "无效的模型ID。",
44
- "invalidPathFormat": "无效的路径格式。",
45
- "pathIsFile": "路径为文件而非目录。",
46
- "pathParameterRequired": "路径为必填项。"
47
- },
48
- "error": {
49
- "createFailed": "创建项目时出错。",
50
- "bmadVersionsFailed": "获取BMad版本列表时出错。",
51
- "notFound": "未找到项目。",
52
- "deleteFailed": "删除项目时出错。",
53
- "bmadSetupFailed": "BMad设置过程中出错。",
54
- "validatePathFailed": "路径验证时出错。",
55
- "settingsLoadFailed": "加载设置时出错。",
56
- "settingsSaveFailed": "保存设置时出错。",
57
- "systemPromptFailed": "获取系统提示词时出错。",
58
- "scanError": "扫描项目时出错。",
59
- "dirNotFound": "未找到目录。",
60
- "permissionDenied": "权限被拒绝。",
61
- "invalidSessionIndex": "无效的会话索引。",
62
- "pathNotFound": "未找到路径。",
63
- "pathNotDirectory": "路径不是目录。",
64
- "alreadyBmad": "已经是BMad项目。",
65
- "alreadyExists": "项目已存在。"
66
- }
67
- },
68
- "board": {
69
- "error": {
70
- "projectNotFound": "未找到项目: {{value}}",
71
- "internal": "内部服务器错误",
72
- "issueNotFound": "未找到问题: {{value}}",
73
- "storyNotFound": "未找到 Story:{{value}}",
74
- "statusNotFound": "未找到 Story 的状态:{{value}}"
75
- },
76
- "validation": {
77
- "titleRequired": "标题为必填项",
78
- "invalidSeverity": "无效的严重程度: {{value}}",
79
- "invalidIssueType": "无效的问题类型: {{value}}",
80
- "invalidStatus": "无效的状态: {{value}}",
81
- "invalidIssueId": "无效的问题ID",
82
- "fileRequired": "文件为必填项",
83
- "invalidFileType": "不支持的文件类型",
84
- "fileTooLarge": "文件大小超过 10MB 限制",
85
- "maxAttachments": "已达到附件数量上限",
86
- "invalidFilename": "无效的文件名"
87
- },
88
- "success": {
89
- "issueDeleted": "问题已删除"
90
- }
91
- },
92
- "session": {
93
- "validation": {
94
- "deleteIdsRequired": "需要提供要删除的会话ID列表。"
95
- },
96
- "error": {
97
- "saveNameFailed": "保存会话名称时出错。",
98
- "projectNotFound": "未找到项目。",
99
- "listError": "获取会话列表时出错。",
100
- "invalidPath": "检测到无效路径。",
101
- "parseError": "解析会话数据时出错。",
102
- "deleteError": "删除会话时出错。",
103
- "nameError": "更新会话名称时出错。"
104
- }
105
- },
106
- "fs": {
107
- "validation": {
108
- "slugRequired": "请输入项目标识。",
109
- "pathRequired": "path查询参数为必填项",
110
- "contentRequired": "请求体中content必须为字符串",
111
- "typeRequired": "type必须为\"file\"或\"directory\"",
112
- "newPathRequired": "newPath查询参数为必填项",
113
- "queryRequired": "query参数为必填项"
114
- },
115
- "error": {
116
- "pathTraversal": "检测到路径遍历攻击。",
117
- "fileNotFound": "未找到文件。",
118
- "directoryNotFound": "未找到目录。",
119
- "notADirectory": "不是目录。",
120
- "readError": "文件读取错误。",
121
- "writeError": "文件写入错误。",
122
- "fileAlreadyExists": "文件已存在。",
123
- "protectedPath": "受保护的路径。",
124
- "renameTargetExists": "重命名目标已存在。",
125
- "parentNotFound": "未找到父目录。"
126
- }
127
- },
128
- "git": {
129
- "validation": {
130
- "slugRequired": "projectSlug为必填项",
131
- "fileRequired": "file查询参数为必填项",
132
- "filesRequired": "files数组为必填项且不能为空",
133
- "commitMessageRequired": "提交信息为必填项且不能为空",
134
- "commitMessageTooLong": "提交信息超过10,000字符的最大长度",
135
- "branchRequired": "分支名称为必填项",
136
- "invalidBranchName": "无效的分支名称: 包含无效字符",
137
- "invalidStartPoint": "无效的startPoint: 包含无效字符",
138
- "startPointFormat": "startPoint(如提供)必须为非空字符串"
139
- },
140
- "success": {
141
- "initialized": "Git仓库已初始化",
142
- "staged": "文件暂存成功",
143
- "unstaged": "文件取消暂存成功",
144
- "committed": "更改提交成功",
145
- "pushed": "推送到远程仓库成功",
146
- "pulled": "拉取远程仓库成功",
147
- "switchedBranch": "已切换到分支 {{value}}",
148
- "branchCreated": "分支 {{value}} 创建成功"
149
- },
150
- "error": {
151
- "operationFailed": "Git操作失败。",
152
- "notInitialized": "Git仓库未初始化。",
153
- "conflict": "检测到Git冲突。",
154
- "nothingToCommit": "没有可提交的更改。",
155
- "branchExists": "分支已存在。"
156
- }
157
- },
158
- "queue": {
159
- "validation": {
160
- "slugRequired": "projectSlug为必填项",
161
- "itemsRequired": "items数组不能为空",
162
- "invalidInput": "无效的队列输入:{{value}}"
163
- },
164
- "error": {
165
- "alreadyRunning": "该项目的队列已在运行中",
166
- "noRunningQueue": "该项目没有正在运行的队列",
167
- "sdkError": "SDK错误: {{value}}",
168
- "queueStopDetected": "响应中检测到QUEUE_STOP",
169
- "sessionNotFound": "未找到会话名称 \"{{value}}\"",
170
- "sessionBusy": "会话正在流式传输中——队列已暂停以避免冲突"
171
- },
172
- "pause": {
173
- "userPaused": "用户已暂停",
174
- "waitingForPermission": "等待{{value}}: {{toolName}}",
175
- "userAnswer": "用户回答",
176
- "permissionApproval": "权限"
177
- }
178
- },
179
- "queueTemplate": {
180
- "error": {
181
- "listFailed": "获取模板列表失败",
182
- "createFailed": "创建模板失败",
183
- "updateFailed": "更新模板失败",
184
- "deleteFailed": "删除模板失败",
185
- "notFound": "未找到模板",
186
- "projectPathFailed": "解析项目路径失败",
187
- "bmadConfigNotFound": "该项目未找到BMad配置",
188
- "prdNotFound": "未找到PRD文件"
189
- },
190
- "validation": {
191
- "nameTemplateRequired": "name和template为必填的非空字符串"
192
- }
193
- },
194
- "notification": {
195
- "permission": {
196
- "title": "需要权限"
197
- },
198
- "question": {
199
- "title": "提问"
200
- },
201
- "complete": {
202
- "title": "完成",
203
- "lastMessage": "最后回复:",
204
- "queueProgress": "队列: {{current}}/{{total}} ({{pct}}%)"
205
- },
206
- "error": {
207
- "title": "错误",
208
- "configRequired": "Bot Token和Chat ID必须同时配置。"
209
- },
210
- "queueStart": {
211
- "title": "队列已启动",
212
- "body": "共{{value}}个项目待执行"
213
- },
214
- "queueComplete": {
215
- "title": "队列完成",
216
- "body": "所有项目已处理完毕"
217
- },
218
- "queuePaused": {
219
- "title": "队列已暂停"
220
- },
221
- "inputRequired": {
222
- "title": "需要输入",
223
- "body": "等待用户响应"
224
- },
225
- "test": {
226
- "message": "这是一条测试通知。Telegram通知功能正常运行!"
227
- }
228
- },
229
- "ws": {
230
- "error": {
231
- "queueSessionLocked": "无法向正在运行队列的会话发送消息。",
232
- "queueAlreadyRunning": "该项目的队列已在运行中",
233
- "maxImages": "最多可附加{{value}}张图片。",
234
- "unsupportedImageFormat": "不支持的图片格式: {{value}}",
235
- "imageSizeExceeded": "图片大小超过10MB: {{value}}",
236
- "projectPathNotFound": "指定的项目路径不存在。",
237
- "sessionNotFound": "未找到会话。请启动新会话。",
238
- "timeout": "响应超时。请重试。",
239
- "sessionListFailed": "获取会话列表失败。",
240
- "terminalDisabled": "终端功能已禁用",
241
- "terminalProjectNotFound": "未找到终端对应的项目路径",
242
- "terminalAccessDenied": "出于安全考虑,不支持从本地网络外部访问终端",
243
- "terminalNotFound": "未找到终端",
244
- "ptySpawnError": "终端进程启动失败",
245
- "chainContentTooLong": "链提示内容超过最大长度。",
246
- "chainMaxExceeded": "最多允许10个链项目。"
247
- }
248
- },
249
- "pathGuard": {
250
- "nullByte": "无效路径: 检测到空字节",
251
- "absolutePath": "无效路径: 不允许使用绝对路径",
252
- "traversal": "无效路径: 检测到路径遍历"
253
- },
254
- "dashboard": {
255
- "error": {
256
- "statusFailed": "获取仪表盘状态失败"
257
- }
258
- },
259
- "cli": {
260
- "error": {
261
- "executionFailed": "运行CLI时发生错误。"
262
- }
263
- },
264
- "command": {
265
- "error": {
266
- "listFailed": "获取命令列表失败"
267
- }
268
- },
269
- "server": {
270
- "error": {
271
- "rebuildDevOnly": "重新构建仅在开发模式下可用。",
272
- "buildInProgress": "构建已在进行中。",
273
- "updateCheckDevOnly": "更新检查在开发模式下不可用。",
274
- "npmCheckFailed": "检查npm注册表失败。",
275
- "useRebuildInDev": "在开发模式下请使用重新构建并重启。",
276
- "operationInProgress": "操作已在进行中。"
277
- },
278
- "info": {
279
- "buildStarted": "构建已启动。请轮询 /api/server/build-status 获取进度。",
280
- "updateStarted": "更新已启动。请轮询 /api/server/build-status 获取进度。"
281
- }
282
- },
283
- "bmadStatus": {
284
- "error": {
285
- "notBmadProject": "这不是BMad项目。",
286
- "configParseError": "解析core-config.yaml时出错。",
287
- "scanError": "扫描项目状态时出错。"
288
- }
289
- },
290
- "preferences": {
291
- "readError": "读取偏好设置时出错。",
292
- "writeError": "保存偏好设置失败。",
293
- "telegram": {
294
- "readError": "加载Telegram设置时出错。",
295
- "invalidBotToken": "无效的Bot Token。",
296
- "invalidChatId": "无效的Chat ID。",
297
- "writeError": "保存Telegram设置失败。",
298
- "testError": "发送测试通知时服务器出错。"
299
- },
300
- "rateLimit": {
301
- "projectCreate": "项目创建请求过多。请稍后再试。",
302
- "pathValidation": "路径验证请求过多。请稍后再试。"
303
- }
304
- }
305
- }
1
+ {
2
+ "error": {
3
+ "notFound": "未找到资源",
4
+ "unauthorized": "未授权",
5
+ "internal": "内部服务器错误",
6
+ "requestFailed": "请求失败 ({{status}} {{statusText}})",
7
+ "rateLimit": "API请求已达上限。请稍后再试。",
8
+ "authRequired": "需要Claude Code CLI认证。请运行 \"claude login\"。",
9
+ "networkError": "网络连接异常。请检查您的网络连接。",
10
+ "invalidPath": "无效路径: {{path}}",
11
+ "serviceUnavailable": "Claude服务暂不可用。请稍后再试。",
12
+ "aborted": "操作已取消。"
13
+ },
14
+ "auth": {
15
+ "validation": {
16
+ "passwordRequired": "请输入密码。",
17
+ "passwordMinLength": "密码至少需要{{value}}个字符。",
18
+ "passwordConfirmRequired": "请确认密码。",
19
+ "invalidRequest": "无效请求。"
20
+ },
21
+ "login": {
22
+ "success": "登录成功",
23
+ "serverError": "登录时服务器错误",
24
+ "invalidPassword": "密码错误。",
25
+ "rateLimitExceeded": "登录尝试次数过多。请稍后再试。"
26
+ },
27
+ "password": {
28
+ "alreadySet": "密码已设置。",
29
+ "mismatch": "两次输入的密码不一致。",
30
+ "setSuccess": "密码设置成功。",
31
+ "setError": "设置密码时服务器错误。",
32
+ "changeSuccess": "密码已更改。请重新登录。",
33
+ "changeError": "更改密码时服务器错误。"
34
+ },
35
+ "logout": {
36
+ "success": "已成功登出",
37
+ "error": "登出时出错"
38
+ }
39
+ },
40
+ "project": {
41
+ "validation": {
42
+ "pathRequired": "请输入项目路径。",
43
+ "slugRequired": "请输入项目标识。",
44
+ "invalidPermissionMode": "无效的权限模式: {{value}}",
45
+ "invalidModelId": "无效的模型ID。",
46
+ "invalidPathFormat": "无效的路径格式。",
47
+ "pathIsFile": "路径为文件而非目录。",
48
+ "pathParameterRequired": "路径为必填项。"
49
+ },
50
+ "error": {
51
+ "createFailed": "创建项目时出错。",
52
+ "bmadVersionsFailed": "获取BMad版本列表时出错。",
53
+ "notFound": "未找到项目。",
54
+ "deleteFailed": "删除项目时出错。",
55
+ "bmadSetupFailed": "BMad设置过程中出错。",
56
+ "validatePathFailed": "路径验证时出错。",
57
+ "settingsLoadFailed": "加载设置时出错。",
58
+ "settingsSaveFailed": "保存设置时出错。",
59
+ "systemPromptFailed": "获取系统提示词时出错。",
60
+ "openExplorerLocalOnly": "打开文件资源管理器仅在 localhost 上可用。",
61
+ "openExplorerFailed": "打开文件资源管理器失败。",
62
+ "scanError": "扫描项目时出错。",
63
+ "dirNotFound": "未找到目录。",
64
+ "permissionDenied": "权限被拒绝。",
65
+ "invalidSessionIndex": "无效的会话索引。",
66
+ "pathNotFound": "未找到路径。",
67
+ "pathNotDirectory": "路径不是目录。",
68
+ "alreadyBmad": "已经是BMad项目。",
69
+ "alreadyExists": "项目已存在。"
70
+ }
71
+ },
72
+ "board": {
73
+ "error": {
74
+ "projectNotFound": "未找到项目: {{value}}",
75
+ "internal": "内部服务器错误",
76
+ "issueNotFound": "未找到问题: {{value}}",
77
+ "storyNotFound": "未找到 Story:{{value}}",
78
+ "statusNotFound": "未找到 Story 的状态:{{value}}"
79
+ },
80
+ "validation": {
81
+ "titleRequired": "标题为必填项",
82
+ "invalidSeverity": "无效的严重程度: {{value}}",
83
+ "invalidIssueType": "无效的问题类型: {{value}}",
84
+ "invalidStatus": "无效的状态: {{value}}",
85
+ "invalidIssueId": "无效的问题ID",
86
+ "fileRequired": "文件为必填项",
87
+ "invalidFileType": "不支持的文件类型",
88
+ "fileTooLarge": "文件大小超过 10MB 限制",
89
+ "maxAttachments": "已达到附件数量上限",
90
+ "invalidFilename": "无效的文件名"
91
+ },
92
+ "success": {
93
+ "issueDeleted": "问题已删除"
94
+ }
95
+ },
96
+ "session": {
97
+ "validation": {
98
+ "deleteIdsRequired": "需要提供要删除的会话ID列表。"
99
+ },
100
+ "error": {
101
+ "saveNameFailed": "保存会话名称时出错。",
102
+ "projectNotFound": "未找到项目。",
103
+ "listError": "获取会话列表时出错。",
104
+ "invalidPath": "检测到无效路径。",
105
+ "parseError": "解析会话数据时出错。",
106
+ "deleteError": "删除会话时出错。",
107
+ "nameError": "更新会话名称时出错。"
108
+ }
109
+ },
110
+ "fs": {
111
+ "validation": {
112
+ "slugRequired": "请输入项目标识。",
113
+ "pathRequired": "path查询参数为必填项",
114
+ "contentRequired": "请求体中content必须为字符串",
115
+ "typeRequired": "type必须为\"file\"或\"directory\"",
116
+ "newPathRequired": "newPath查询参数为必填项",
117
+ "queryRequired": "query参数为必填项"
118
+ },
119
+ "error": {
120
+ "pathTraversal": "检测到路径遍历攻击。",
121
+ "fileNotFound": "未找到文件。",
122
+ "directoryNotFound": "未找到目录。",
123
+ "notADirectory": "不是目录。",
124
+ "readError": "文件读取错误。",
125
+ "writeError": "文件写入错误。",
126
+ "fileAlreadyExists": "文件已存在。",
127
+ "protectedPath": "受保护的路径。",
128
+ "renameTargetExists": "重命名目标已存在。",
129
+ "parentNotFound": "未找到父目录。"
130
+ }
131
+ },
132
+ "git": {
133
+ "validation": {
134
+ "slugRequired": "projectSlug为必填项",
135
+ "fileRequired": "file查询参数为必填项",
136
+ "filesRequired": "files数组为必填项且不能为空",
137
+ "commitMessageRequired": "提交信息为必填项且不能为空",
138
+ "commitMessageTooLong": "提交信息超过10,000字符的最大长度",
139
+ "branchRequired": "分支名称为必填项",
140
+ "invalidBranchName": "无效的分支名称: 包含无效字符",
141
+ "invalidStartPoint": "无效的startPoint: 包含无效字符",
142
+ "startPointFormat": "startPoint(如提供)必须为非空字符串"
143
+ },
144
+ "success": {
145
+ "initialized": "Git仓库已初始化",
146
+ "staged": "文件暂存成功",
147
+ "unstaged": "文件取消暂存成功",
148
+ "committed": "更改提交成功",
149
+ "pushed": "推送到远程仓库成功",
150
+ "pulled": "拉取远程仓库成功",
151
+ "switchedBranch": "已切换到分支 {{value}}",
152
+ "branchCreated": "分支 {{value}} 创建成功"
153
+ },
154
+ "error": {
155
+ "operationFailed": "Git操作失败。",
156
+ "notInitialized": "Git仓库未初始化。",
157
+ "conflict": "检测到Git冲突。",
158
+ "nothingToCommit": "没有可提交的更改。",
159
+ "branchExists": "分支已存在。"
160
+ }
161
+ },
162
+ "queue": {
163
+ "validation": {
164
+ "slugRequired": "projectSlug为必填项",
165
+ "itemsRequired": "items数组不能为空",
166
+ "invalidInput": "无效的队列输入:{{value}}"
167
+ },
168
+ "error": {
169
+ "alreadyRunning": "该项目的队列已在运行中",
170
+ "noRunningQueue": "该项目没有正在运行的队列",
171
+ "sdkError": "SDK错误: {{value}}",
172
+ "queueStopDetected": "响应中检测到QUEUE_STOP",
173
+ "sessionNotFound": "未找到会话名称 \"{{value}}\"",
174
+ "sessionBusy": "会话正在流式传输中——队列已暂停以避免冲突"
175
+ },
176
+ "pause": {
177
+ "userPaused": "用户已暂停",
178
+ "waitingForPermission": "等待{{value}}: {{toolName}}",
179
+ "userAnswer": "用户回答",
180
+ "permissionApproval": "权限"
181
+ }
182
+ },
183
+ "queueTemplate": {
184
+ "error": {
185
+ "listFailed": "获取模板列表失败",
186
+ "createFailed": "创建模板失败",
187
+ "updateFailed": "更新模板失败",
188
+ "deleteFailed": "删除模板失败",
189
+ "notFound": "未找到模板",
190
+ "projectPathFailed": "解析项目路径失败",
191
+ "bmadConfigNotFound": "该项目未找到BMad配置",
192
+ "prdNotFound": "未找到PRD文件"
193
+ },
194
+ "validation": {
195
+ "nameTemplateRequired": "name和template为必填的非空字符串"
196
+ }
197
+ },
198
+ "notification": {
199
+ "permission": {
200
+ "title": "需要权限"
201
+ },
202
+ "question": {
203
+ "title": "提问"
204
+ },
205
+ "complete": {
206
+ "title": "完成",
207
+ "lastMessage": "最后回复:",
208
+ "queueProgress": "队列: {{current}}/{{total}} ({{pct}}%)"
209
+ },
210
+ "error": {
211
+ "title": "错误",
212
+ "configRequired": "Bot Token和Chat ID必须同时配置。"
213
+ },
214
+ "queueStart": {
215
+ "title": "队列已启动",
216
+ "body": "共{{value}}个项目待执行"
217
+ },
218
+ "queueComplete": {
219
+ "title": "队列完成",
220
+ "body": "所有项目已处理完毕"
221
+ },
222
+ "queuePaused": {
223
+ "title": "队列已暂停"
224
+ },
225
+ "inputRequired": {
226
+ "title": "需要输入",
227
+ "body": "等待用户响应"
228
+ },
229
+ "test": {
230
+ "message": "这是一条测试通知。Telegram通知功能正常运行!"
231
+ }
232
+ },
233
+ "ws": {
234
+ "error": {
235
+ "queueSessionLocked": "无法向正在运行队列的会话发送消息。",
236
+ "queueAlreadyRunning": "该项目的队列已在运行中",
237
+ "maxImages": "最多可附加{{value}}张图片。",
238
+ "unsupportedImageFormat": "不支持的图片格式: {{value}}",
239
+ "imageSizeExceeded": "图片大小超过10MB: {{value}}",
240
+ "projectPathNotFound": "指定的项目路径不存在。",
241
+ "sessionNotFound": "未找到会话。请启动新会话。",
242
+ "timeout": "响应超时。请重试。",
243
+ "sessionListFailed": "获取会话列表失败。",
244
+ "terminalDisabled": "终端功能已禁用",
245
+ "terminalProjectNotFound": "未找到终端对应的项目路径",
246
+ "terminalAccessDenied": "出于安全考虑,不支持从本地网络外部访问终端",
247
+ "terminalNotFound": "未找到终端",
248
+ "ptySpawnError": "终端进程启动失败",
249
+ "chainContentTooLong": "链提示内容超过最大长度。",
250
+ "chainMaxExceeded": "最多允许10个链项目。",
251
+ "rewindMissingParams": "sessionId and messageUuid are required for rewind",
252
+ "rewindFailed": "Failed to rewind files: {{error}}"
253
+ }
254
+ },
255
+ "pathGuard": {
256
+ "nullByte": "无效路径: 检测到空字节",
257
+ "absolutePath": "无效路径: 不允许使用绝对路径",
258
+ "traversal": "无效路径: 检测到路径遍历"
259
+ },
260
+ "dashboard": {
261
+ "error": {
262
+ "statusFailed": "获取仪表盘状态失败"
263
+ }
264
+ },
265
+ "cli": {
266
+ "error": {
267
+ "executionFailed": "运行CLI时发生错误。"
268
+ }
269
+ },
270
+ "command": {
271
+ "error": {
272
+ "listFailed": "获取命令列表失败"
273
+ }
274
+ },
275
+ "server": {
276
+ "error": {
277
+ "rebuildDevOnly": "重新构建仅在开发模式下可用。",
278
+ "buildInProgress": "构建已在进行中。",
279
+ "updateCheckDevOnly": "更新检查在开发模式下不可用。",
280
+ "npmCheckFailed": "检查npm注册表失败。",
281
+ "useRebuildInDev": "在开发模式下请使用重新构建并重启。",
282
+ "operationInProgress": "操作已在进行中。"
283
+ },
284
+ "info": {
285
+ "buildStarted": "构建已启动。请轮询 /api/server/build-status 获取进度。",
286
+ "updateStarted": "更新已启动。请轮询 /api/server/build-status 获取进度。"
287
+ }
288
+ },
289
+ "bmadStatus": {
290
+ "error": {
291
+ "notBmadProject": "这不是BMad项目。",
292
+ "configParseError": "解析core-config.yaml时出错。",
293
+ "scanError": "扫描项目状态时出错。"
294
+ }
295
+ },
296
+ "preferences": {
297
+ "readError": "读取偏好设置时出错。",
298
+ "writeError": "保存偏好设置失败。",
299
+ "telegram": {
300
+ "readError": "加载Telegram设置时出错。",
301
+ "invalidBotToken": "无效的Bot Token。",
302
+ "invalidChatId": "无效的Chat ID。",
303
+ "writeError": "保存Telegram设置失败。",
304
+ "testError": "发送测试通知时服务器出错。"
305
+ },
306
+ "rateLimit": {
307
+ "projectCreate": "项目创建请求过多。请稍后再试。",
308
+ "pathValidation": "路径验证请求过多。请稍后再试。"
309
+ }
310
+ }
311
+ }