@agent-spaces/server 0.3.64 → 0.3.67

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 (332) hide show
  1. package/dist/adapters/agent-runtime.js +4 -0
  2. package/dist/adapters/claude-code-runtime/index.js +68 -2
  3. package/dist/adapters/claude-code-runtime/message-format.js +26 -0
  4. package/dist/adapters/claude-code-runtime/sdk-config.js +12 -0
  5. package/dist/adapters/codex-function-tool-bridge.js +144 -0
  6. package/dist/adapters/codex-runtime.js +23 -4
  7. package/dist/adapters/git.js +25 -7
  8. package/dist/adapters/hermes-runtime.js +210 -0
  9. package/dist/agents/agent-message-parts.js +1 -1
  10. package/dist/agents/commit-agent.js +4 -2
  11. package/dist/agents/issue-task-controller.js +75 -4
  12. package/dist/agents/pull-request-agent.js +115 -0
  13. package/dist/agents/scheduler-agent.js +1 -1
  14. package/dist/app.js +12 -70
  15. package/dist/middleware/auth.js +1 -1
  16. package/dist/package.json +2 -1
  17. package/dist/routes/agent-sse.js +2 -0
  18. package/dist/routes/agent.js +3 -0
  19. package/dist/routes/database.js +1 -0
  20. package/dist/routes/git.js +197 -317
  21. package/dist/routes/issue.js +1 -1
  22. package/dist/routes/notification.js +10 -0
  23. package/dist/routes/robot-account.js +68 -0
  24. package/dist/routes/version.js +94 -0
  25. package/dist/routes/worktree.js +93 -0
  26. package/dist/services/agent.js +37 -3
  27. package/dist/services/builtin-tools/kanban-tools.js +4 -0
  28. package/dist/services/git-operation-log.js +40 -0
  29. package/dist/services/global-wechat-qr.js +72 -0
  30. package/dist/services/hook-engine.js +175 -17
  31. package/dist/services/notification-center.js +9 -0
  32. package/dist/services/notification-hub/bot-agent.js +3 -1
  33. package/dist/services/notification-hub/service.js +12 -2
  34. package/dist/services/robot-account.js +34 -0
  35. package/dist/services/version.js +59 -0
  36. package/dist/services/workflow-command-runner.js +23 -0
  37. package/dist/services/workflow.js +25 -8
  38. package/dist/services/workspace.js +25 -1
  39. package/dist/services/worktree.js +207 -0
  40. package/dist/storage/robot-account-store.js +39 -0
  41. package/dist/storage/worktree-store.js +33 -0
  42. package/dist/web/404.html +1 -1
  43. package/dist/web/__next.__PAGE__.txt +4 -4
  44. package/dist/web/__next._full.txt +23 -25
  45. package/dist/web/__next._head.txt +4 -4
  46. package/dist/web/__next._index.txt +13 -13
  47. package/dist/web/__next._tree.txt +2 -2
  48. package/dist/web/_next/static/chunks/{0n6_4so_afuwk.js → 0-92u-tiuy40a.js} +4 -4
  49. package/dist/web/_next/static/chunks/{0vbqaynjq8ga..js → 0-yizd8osmas2.js} +1 -1
  50. package/dist/web/_next/static/chunks/0.ln~3mnv8.69.js +1 -0
  51. package/dist/web/_next/static/chunks/{0iuf30t0rjsjv.js → 01y3e9pemva7b.js} +10 -10
  52. package/dist/web/_next/static/chunks/02802taez976w.js +67 -0
  53. package/dist/web/_next/static/chunks/02l~tmzrgny.~.js +1 -0
  54. package/dist/web/_next/static/chunks/033.awk90g6eh.js +1 -0
  55. package/dist/web/_next/static/chunks/03f1bwuynjdmk.js +1 -0
  56. package/dist/web/_next/static/chunks/04cb4kc9r2pd1.js +1 -0
  57. package/dist/web/_next/static/chunks/04de6ha5_e3pp.js +1 -0
  58. package/dist/web/_next/static/chunks/06.kdsa9rr2h1.js +1 -0
  59. package/dist/web/_next/static/chunks/09he0p79ov1rn.js +1 -0
  60. package/dist/web/_next/static/chunks/09vpocs4zuc8h.js +1 -0
  61. package/dist/web/_next/static/chunks/0_o2exgr0e_nh.js +1 -0
  62. package/dist/web/_next/static/chunks/{0xbaakj0dfc0..js → 0_y9nskc-xt2k.js} +1 -1
  63. package/dist/web/_next/static/chunks/0clnj-1fi6u8j.js +3 -0
  64. package/dist/web/_next/static/chunks/0gv40by0zzxs_.js +1 -0
  65. package/dist/web/_next/static/chunks/0iusr8y88.kjg.js +1 -0
  66. package/dist/web/_next/static/chunks/{04a4vsq2wknm4.js → 0j-8418fxvkd1.js} +1 -1
  67. package/dist/web/_next/static/chunks/0j-l7l_k9jt45.js +1 -0
  68. package/dist/web/_next/static/chunks/0j.wxxyoclma5.js +1 -0
  69. package/dist/web/_next/static/chunks/0jq.16sozqik..js +3 -0
  70. package/dist/web/_next/static/chunks/0jw8xdk_fpnp0.css +1 -0
  71. package/dist/web/_next/static/chunks/0l1lkd-wcotma.js +1 -0
  72. package/dist/web/_next/static/chunks/0ncxf_zr4n839.js +1 -0
  73. package/dist/web/_next/static/chunks/0ndo7um~v7vco.js +1 -0
  74. package/dist/web/_next/static/chunks/0ngk.~kan8wq_.js +1 -0
  75. package/dist/web/_next/static/chunks/0p3h-h3zj5ujg.js +30 -0
  76. package/dist/web/_next/static/chunks/0pm-un~-sy3rl.js +1 -0
  77. package/dist/web/_next/static/chunks/0rt9bofnn6qvn.js +1 -0
  78. package/dist/web/_next/static/chunks/0t64.9jd00hio.js +3 -0
  79. package/dist/web/_next/static/chunks/0taui9--5n6-5.js +1 -0
  80. package/dist/web/_next/static/chunks/0ty39169lh~z3.js +1 -0
  81. package/dist/web/_next/static/chunks/0uxzi~9b~k4mn.js +31 -0
  82. package/dist/web/_next/static/chunks/0v8nof~waedlu.js +1 -0
  83. package/dist/web/_next/static/chunks/{0ctg5qmw7uu.1.js → 0vcfoagnpf.aw.js} +3 -3
  84. package/dist/web/_next/static/chunks/{08ckpwmmwlors.js → 0wwwq.gyyz0vg.js} +3 -3
  85. package/dist/web/_next/static/chunks/0x5lak8yz7pm7.js +1 -0
  86. package/dist/web/_next/static/chunks/0xon_.4-o0_zq.js +7 -0
  87. package/dist/web/_next/static/chunks/0zjnrbt7inime.js +1 -0
  88. package/dist/web/_next/static/chunks/0zncg76rgtbm-.js +1 -0
  89. package/dist/web/_next/static/chunks/0zwebpitvpuv1.js +1 -0
  90. package/dist/web/_next/static/chunks/0~02o4g-o6n~m.js +1 -0
  91. package/dist/web/_next/static/chunks/{10l-9myrdo3x9.js → 0~fjezp.k4qk3.js} +1 -1
  92. package/dist/web/_next/static/chunks/0~sh93re1-_rp.js +1 -0
  93. package/dist/web/_next/static/chunks/10_niiq0k6o-p.js +5 -0
  94. package/dist/web/_next/static/chunks/12tjr0_2ccrtq.js +2 -0
  95. package/dist/web/_next/static/chunks/12x5.go_x9mfk.js +1 -0
  96. package/dist/web/_next/static/chunks/{1442stwa0gbxe.js → 12~5dk9i9d16t.js} +2 -2
  97. package/dist/web/_next/static/chunks/13iye4rv5p31b.js +1 -0
  98. package/dist/web/_next/static/chunks/{01~quun6sefgl.js → 13~y-b.b9rrw4.js} +1 -1
  99. package/dist/web/_next/static/chunks/151wzhb5q0lo5.js +1 -0
  100. package/dist/web/_next/static/chunks/18c7g84y01mj0.js +1 -0
  101. package/dist/web/_next/static/chunks/{turbopack-0ndm2zc_pdptk.js → turbopack-11qjwlynmfc-n.js} +1 -1
  102. package/dist/web/_not-found/__next._full.txt +30 -29
  103. package/dist/web/_not-found/__next._head.txt +4 -4
  104. package/dist/web/_not-found/__next._index.txt +13 -13
  105. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  106. package/dist/web/_not-found/__next._not-found.txt +3 -3
  107. package/dist/web/_not-found/__next._tree.txt +2 -2
  108. package/dist/web/_not-found.html +1 -1
  109. package/dist/web/_not-found.txt +30 -29
  110. package/dist/web/index.html +1 -1
  111. package/dist/web/index.txt +23 -25
  112. package/dist/web/login/__next._full.txt +28 -28
  113. package/dist/web/login/__next._head.txt +4 -4
  114. package/dist/web/login/__next._index.txt +13 -13
  115. package/dist/web/login/__next._tree.txt +2 -2
  116. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  117. package/dist/web/login/__next.login.txt +3 -3
  118. package/dist/web/login.html +1 -1
  119. package/dist/web/login.txt +28 -28
  120. package/dist/web/settings/__next._full.txt +33 -32
  121. package/dist/web/settings/__next._head.txt +4 -4
  122. package/dist/web/settings/__next._index.txt +13 -13
  123. package/dist/web/settings/__next._tree.txt +2 -2
  124. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  125. package/dist/web/settings/__next.settings.txt +5 -5
  126. package/dist/web/settings/agents/__next._full.txt +24 -24
  127. package/dist/web/settings/agents/__next._head.txt +4 -4
  128. package/dist/web/settings/agents/__next._index.txt +13 -13
  129. package/dist/web/settings/agents/__next._tree.txt +2 -2
  130. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  131. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  132. package/dist/web/settings/agents/__next.settings.txt +5 -5
  133. package/dist/web/settings/agents.html +1 -1
  134. package/dist/web/settings/agents.txt +24 -24
  135. package/dist/web/settings/mcps/__next._full.txt +24 -24
  136. package/dist/web/settings/mcps/__next._head.txt +4 -4
  137. package/dist/web/settings/mcps/__next._index.txt +13 -13
  138. package/dist/web/settings/mcps/__next._tree.txt +2 -2
  139. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  140. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  141. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  142. package/dist/web/settings/mcps.html +1 -1
  143. package/dist/web/settings/mcps.txt +24 -24
  144. package/dist/web/settings/models/__next._full.txt +24 -24
  145. package/dist/web/settings/models/__next._head.txt +4 -4
  146. package/dist/web/settings/models/__next._index.txt +13 -13
  147. package/dist/web/settings/models/__next._tree.txt +2 -2
  148. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  149. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  150. package/dist/web/settings/models/__next.settings.txt +5 -5
  151. package/dist/web/settings/models.html +1 -1
  152. package/dist/web/settings/models.txt +24 -24
  153. package/dist/web/settings/output-styles/__next._full.txt +24 -24
  154. package/dist/web/settings/output-styles/__next._head.txt +4 -4
  155. package/dist/web/settings/output-styles/__next._index.txt +13 -13
  156. package/dist/web/settings/output-styles/__next._tree.txt +2 -2
  157. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +4 -4
  158. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +3 -3
  159. package/dist/web/settings/output-styles/__next.settings.txt +5 -5
  160. package/dist/web/settings/output-styles.html +1 -1
  161. package/dist/web/settings/output-styles.txt +24 -24
  162. package/dist/web/settings/prompts/__next._full.txt +24 -24
  163. package/dist/web/settings/prompts/__next._head.txt +4 -4
  164. package/dist/web/settings/prompts/__next._index.txt +13 -13
  165. package/dist/web/settings/prompts/__next._tree.txt +2 -2
  166. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  167. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  168. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  169. package/dist/web/settings/prompts.html +1 -1
  170. package/dist/web/settings/prompts.txt +24 -24
  171. package/dist/web/settings/providers/__next._full.txt +24 -24
  172. package/dist/web/settings/providers/__next._head.txt +4 -4
  173. package/dist/web/settings/providers/__next._index.txt +13 -13
  174. package/dist/web/settings/providers/__next._tree.txt +2 -2
  175. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  176. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  177. package/dist/web/settings/providers/__next.settings.txt +5 -5
  178. package/dist/web/settings/providers.html +1 -1
  179. package/dist/web/settings/providers.txt +24 -24
  180. package/dist/web/settings/skills/__next._full.txt +24 -24
  181. package/dist/web/settings/skills/__next._head.txt +4 -4
  182. package/dist/web/settings/skills/__next._index.txt +13 -13
  183. package/dist/web/settings/skills/__next._tree.txt +2 -2
  184. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  185. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  186. package/dist/web/settings/skills/__next.settings.txt +5 -5
  187. package/dist/web/settings/skills.html +1 -1
  188. package/dist/web/settings/skills.txt +24 -24
  189. package/dist/web/settings/tools/__next._full.txt +24 -24
  190. package/dist/web/settings/tools/__next._head.txt +4 -4
  191. package/dist/web/settings/tools/__next._index.txt +13 -13
  192. package/dist/web/settings/tools/__next._tree.txt +2 -2
  193. package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +4 -4
  194. package/dist/web/settings/tools/__next.settings.tools.txt +3 -3
  195. package/dist/web/settings/tools/__next.settings.txt +5 -5
  196. package/dist/web/settings/tools.html +1 -1
  197. package/dist/web/settings/tools.txt +24 -24
  198. package/dist/web/settings.html +1 -1
  199. package/dist/web/settings.txt +33 -32
  200. package/dist/web/workflows/__next._full.txt +31 -33
  201. package/dist/web/workflows/__next._head.txt +4 -4
  202. package/dist/web/workflows/__next._index.txt +13 -13
  203. package/dist/web/workflows/__next._tree.txt +2 -2
  204. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  205. package/dist/web/workflows/__next.workflows.txt +3 -3
  206. package/dist/web/workflows.html +1 -1
  207. package/dist/web/workflows.txt +31 -33
  208. package/dist/web/workspace/_/__next._full.txt +28 -29
  209. package/dist/web/workspace/_/__next._head.txt +4 -4
  210. package/dist/web/workspace/_/__next._index.txt +13 -13
  211. package/dist/web/workspace/_/__next._tree.txt +2 -2
  212. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -3
  213. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  214. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  215. package/dist/web/workspace/_.html +1 -1
  216. package/dist/web/workspace/_.txt +28 -29
  217. package/dist/web/workspaces/__next._full.txt +29 -31
  218. package/dist/web/workspaces/__next._head.txt +4 -4
  219. package/dist/web/workspaces/__next._index.txt +13 -13
  220. package/dist/web/workspaces/__next._tree.txt +2 -2
  221. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  222. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  223. package/dist/web/workspaces.html +1 -1
  224. package/dist/web/workspaces.txt +29 -31
  225. package/dist/ws/agent-prompt.js +32 -3
  226. package/dist/ws/agent-runner.js +83 -6
  227. package/package.json +11 -11
  228. package/dist/web/_next/static/chunks/0-9194nbxy_6d.js +0 -1
  229. package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +0 -1
  230. package/dist/web/_next/static/chunks/02mf61htij8g0.js +0 -31
  231. package/dist/web/_next/static/chunks/04dg4l4hv11q2.js +0 -3
  232. package/dist/web/_next/static/chunks/04fxddw-y20~-.js +0 -7
  233. package/dist/web/_next/static/chunks/04w7~5ooz_pwm.js +0 -1
  234. package/dist/web/_next/static/chunks/05oc21sj24wtq.js +0 -1
  235. package/dist/web/_next/static/chunks/08kfx8on9oty~.js +0 -1
  236. package/dist/web/_next/static/chunks/08k~meqbd8d6v.js +0 -1
  237. package/dist/web/_next/static/chunks/099h96wjsdb25.js +0 -2
  238. package/dist/web/_next/static/chunks/09h23logvq65m.js +0 -1
  239. package/dist/web/_next/static/chunks/0a5y-vhf4i5id.js +0 -3
  240. package/dist/web/_next/static/chunks/0ake2f3x2uan4.js +0 -24
  241. package/dist/web/_next/static/chunks/0ck8dw_9-1cdx.js +0 -1
  242. package/dist/web/_next/static/chunks/0ewceguykiut5.js +0 -1
  243. package/dist/web/_next/static/chunks/0f7cb9li~3jra.js +0 -67
  244. package/dist/web/_next/static/chunks/0ghs9on7wodrm.js +0 -1
  245. package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +0 -1
  246. package/dist/web/_next/static/chunks/0h9cu-k6z5o08.js +0 -1
  247. package/dist/web/_next/static/chunks/0jb4~3qqkw2ps.js +0 -1
  248. package/dist/web/_next/static/chunks/0nb8.iteznuvx.js +0 -1
  249. package/dist/web/_next/static/chunks/0os58q93stt7j.js +0 -3
  250. package/dist/web/_next/static/chunks/0s9lmk8iauou3.js +0 -1
  251. package/dist/web/_next/static/chunks/0sp_zbx~w0am7.js +0 -1
  252. package/dist/web/_next/static/chunks/0tel~zsv4z8l_.js +0 -1
  253. package/dist/web/_next/static/chunks/0twamv4wr_dbv.js +0 -1
  254. package/dist/web/_next/static/chunks/0uhol5wafdbl~.js +0 -1
  255. package/dist/web/_next/static/chunks/0v3a_x4vt42kx.js +0 -5
  256. package/dist/web/_next/static/chunks/0v7q4mys.mnm..css +0 -1
  257. package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +0 -1
  258. package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +0 -1
  259. package/dist/web/_next/static/chunks/0~3xm80~j9ddg.js +0 -1
  260. package/dist/web/_next/static/chunks/14s37n6h0_q3x.js +0 -16
  261. package/dist/web/_next/static/chunks/161ik5kfyuwtd.js +0 -1
  262. package/dist/web/_next/static/chunks/17k~zbv0_4rep.js +0 -1
  263. package/public/output-styles/carmack-mode.md +0 -381
  264. package/public/output-styles/codex-rigor-mode.md +0 -114
  265. package/public/output-styles/dhh-mode.md +0 -265
  266. package/public/output-styles/evan-you-mode.md +0 -539
  267. package/public/output-styles/index.json +0 -37
  268. package/public/output-styles/jobs-mode.md +0 -369
  269. package/public/output-styles/linus-mode.md +0 -135
  270. package/public/output-styles/uncle-bob-mode.md +0 -221
  271. package/public/prompt/andrej-karpathy-skills.md +0 -65
  272. package/public/prompt/claude-token-efficient-coding.md +0 -35
  273. package/public/prompt/index.json +0 -12
  274. package/public/skills/index.json +0 -92
  275. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +0 -243
  276. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +0 -44
  277. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +0 -46
  278. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +0 -124
  279. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +0 -124
  280. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +0 -438
  281. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +0 -29
  282. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +0 -40
  283. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +0 -58
  284. package/public/skills/superpowers/brainstorming/SKILL.md +0 -164
  285. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +0 -214
  286. package/public/skills/superpowers/brainstorming/scripts/helper.js +0 -88
  287. package/public/skills/superpowers/brainstorming/scripts/server.cjs +0 -354
  288. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +0 -148
  289. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +0 -56
  290. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +0 -49
  291. package/public/skills/superpowers/brainstorming/visual-companion.md +0 -287
  292. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -182
  293. package/public/skills/superpowers/executing-plans/SKILL.md +0 -70
  294. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +0 -251
  295. package/public/skills/superpowers/receiving-code-review/SKILL.md +0 -213
  296. package/public/skills/superpowers/requesting-code-review/SKILL.md +0 -103
  297. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +0 -168
  298. package/public/skills/superpowers/subagent-driven-development/SKILL.md +0 -279
  299. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
  300. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
  301. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  302. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +0 -119
  303. package/public/skills/superpowers/systematic-debugging/SKILL.md +0 -296
  304. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +0 -158
  305. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -115
  306. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +0 -122
  307. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +0 -63
  308. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -169
  309. package/public/skills/superpowers/systematic-debugging/test-academic.md +0 -14
  310. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +0 -58
  311. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +0 -68
  312. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +0 -69
  313. package/public/skills/superpowers/test-driven-development/SKILL.md +0 -371
  314. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -299
  315. package/public/skills/superpowers/using-git-worktrees/SKILL.md +0 -215
  316. package/public/skills/superpowers/using-superpowers/SKILL.md +0 -117
  317. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +0 -59
  318. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +0 -42
  319. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +0 -51
  320. package/public/skills/superpowers/verification-before-completion/SKILL.md +0 -139
  321. package/public/skills/superpowers/writing-plans/SKILL.md +0 -152
  322. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
  323. package/public/skills/superpowers/writing-skills/SKILL.md +0 -655
  324. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +0 -1150
  325. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  326. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +0 -172
  327. package/public/skills/superpowers/writing-skills/persuasion-principles.md +0 -187
  328. package/public/skills/superpowers/writing-skills/render-graphs.js +0 -168
  329. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +0 -384
  330. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_buildManifest.js +0 -0
  331. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_clientMiddlewareManifest.js +0 -0
  332. /package/dist/web/_next/static/{e8w3vd9Eov_LDYWj_0zsE → rGXyAK8rgod1NjF3bLZAY}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,740761,(e,t,a)=>{t.exports={provider:{anthropicMessages:"Anthropic Messages",openaiChatCompletions:"OpenAI Chat Completions",openaiResponses:"OpenAI Responses API",openaiResponsesToAnthropic:"OpenAI Responses To Anthropic Messages",openaiChatToAnthropic:"OpenAI Chat Completions To Anthropic Messages",geminiGenerateContent:"Gemini Native generateContent"},runtime:{openAgentSdk:"Open Agent SDK",claudeCode:"Claude Code",codex:"Codex",langchain:"LangChain",hermes:"Hermes"},role:{agent:{name:"Agent"},scheduler:{name:"Scheduler"},task_creator:{name:"Task Creator"},bot:{name:"Bot Agent"}},defaultName:"New Agent",error:{loadFailed:"Failed to load agent presets",saveFailed:"Failed to save agent preset",connectionTestFailed:"Connection test failed",noWorkspace:"Open a workspace before adding agent presets",deleteFailed:"Failed to delete agent preset",syncFailed:"Failed to sync agent templates"},dialog:{title:"Agent Presets",editDescription:"Configure agent behavior, tools, and model settings",listDescription:"Manage agent presets for workspace automation",add:"Add",addEmpty:"Empty",syncTemplates:"Sync templates",noWorkspace:"No workspace selected",loading:"Loading agent presets..."},list:{noDescription:"No description",empty:"No agent presets yet"},detail:{uploadAvatar:"Upload",removeAvatar:"Remove",name:"Name",role:"Role",description:"Description",agentRuntime:"Agent Runtime",runtimePlaceholder:"Select agent runtime...",runtimeSearchPlaceholder:"Search agent runtime...",workingDirectory:"Working Directory",workingDirPlaceholder:"/workspace",systemPrompt:"System Prompt",systemPromptPlaceholder:"Enter system prompt...",optimizePrompt:"Optimize Prompt",optimizePromptDescription:"Enter your requirement and the current prompt. The system will rewrite it into a fresh system prompt.",optimizePromptPlaceholder:"For example: make the prompt stricter, add output constraints, and improve structure.",optimizeConfirm:"Generate Optimized Prompt",optimizeRequest:"User Request",optimizedPrompt:"New Prompt",optimizePreviewTitle:"Optimized Prompt Preview",optimizePreviewDescription:"Review the diff and apply the new prompt if it looks right.",applyOptimizedPrompt:"Apply New Prompt",cancel:"Cancel",optimizing:"Generating...",outputStyle:"Output Style",outputStylePlaceholder:"Define the Agent's response style, tone, format requirements...",mcpServers:"MCP Servers",tools:"Tools",skills:"Skills",uploadSkills:"Upload Markdown skills",model:"Model",provider:"Provider",providerPlaceholder:"Select provider...",providerSearchPlaceholder:"Search provider...",modelField:"Model",selectProviderFirst:"Select a provider first...",modelPlaceholder:"Select model...",modelSearchPlaceholder:"Search or type custom model...",apiMessageType:"API Message Type",apiMessageTypePlaceholder:"Select API message type...",apiMessageTypeSearchPlaceholder:"Search API message type...",apiBase:"API Base",apiBasePlaceholder:"https://api.example.com/v1",apiKey:"API Key",apiKeyPlaceholder:"sk-...",validateHelper:"Validate provider credentials before saving.",testing:"Testing...",test:"Test",temperature:"Temperature",maxTokens:"Max Tokens",basic:"Basic",enabledToolsCount:"{count}/{total} tools enabled"},debug:{status:"status:",provider:"provider:",url:"url:",model:"model:",body:"body:"}}},603391,(e,t,a)=>{t.exports={title:"Commands",description:"Manage command files in agent template directories",search:"Search commands...",empty:"No command files",create:"New",createTitle:"New Command",editTitle:"Edit Command - {name}",editDescription:"Edit command content",namePlaceholder:"Command name",groupPlaceholder:"Group (optional)",delete:"Delete",import:"Import",importTitle:"Import Command Files",importPlaceholder:"Drag .md or .txt files here, or click to select",importConfirm:"Confirm Import",selectAgent:"Select Agent",allAgents:"All Agents",noAgents:"No agent templates",filterGroups:"Groups",filterNoGroup:"Ungrouped",apply:"Apply",applyTitle:"Apply to Agents - {name}",applyDescription:"Select agents to copy this command to",applyConfirm:"Apply to {count} agents"}},895746,(e,t,a)=>{t.exports={channel:{general:"General",issue:"Issue",agent:"Agent",edit:"Edit Channel",create:"Create Channel",selectType:"Select type",addMember:"Add Member",info:"Channel Info",members:"Members",type:"Type:",channelId:"Channel ID",memberCount:"Member count",createdAt:"Created",noMembers:"No members yet",delete:"Delete Channel",deleteConfirm:'Are you sure you want to delete channel "{name}"? This action cannot be undone.',namePlaceholder:"Channel name",archive:"Archive",unarchive:"Unarchive",archived:"Archived",clearArchived:"Clear Archived",clearArchivedConfirm:"Delete {count} archived {count, plural, one {channel} other {channels}}? This cannot be undone.",initialMessage:"Initial message",initialMessagePlaceholder:"Type a message to send to the member after creation",created:"Channel created",createFailed:"Failed to create channel",creating:"Creating..."},channelType:{general:"General",issue:"Issue",agent:"Agent"},emptyState:"Select a channel to start chatting",status:{idle:"Idle",waitingForUser:"Waiting for confirmation",running:"Running",success:"Success",error:"Failed"},viewRelatedIssue:"View related issue",deleteMessage:{title:"Delete Message",description:"Are you sure you want to delete this message? This action cannot be undone."},clearMessages:{title:"Clear Channel Messages",description:"Are you sure you want to clear all messages in #{channel}? This action cannot be undone.",confirm:"Clear"},pendingQuestion:{placeholder:"Type your answer..."},untitledTodo:"Untitled todo",input:{placeholder:"Message #{channel}... Use @ to mention agents, / for commands",attachFiles:"Attach Files",autoMode:"Auto",unpinAgent:"Unpin Agent",pinAgent:"Pin Agent",mcp:"MCP",noMcp:"No MCP configured",skill:"Skill",noSkills:"No skills configured",tools:"Tools",noTools:"No tools configured",todos:"Todos",clearTodos:"Clear Todos",uploadFailed:"Upload failed: {name}",voiceStart:"Voice Input",voiceStop:"Stop Recording",manageMembers:"Manage channel members",notifyOnComplete:"Notify on AI reply complete"},messageParts:{agentProcessing:"Agent is processing...",agentThinking:"Agent is thinking",aiIntermediateOutput:"AI intermediate output",streamingResponse:"Streaming response",intermediateMessage:"Intermediate message",chainSteps:"{count, plural, one {# chain step} other {# chain steps}}",reject:"Reject",approve:"Approve",result:"Result",aiMessage:"AI message",failedToLoadDetails:"Failed to load details.",loadingDetails:"Loading details...",noDetails:"No details available.",raw:"Raw",input:"Input",output:"Output",copy:"Copy",view:"View"},chainOfThought:{defaultHeader:"Chain of Thought"},commit:{clipboardUnavailable:"Clipboard API not available"},subagent:{instructions:"Instructions",tools:"Tools",noDescription:"No description",outputSchema:"Output Schema"},terminal:{title:"Terminal",running:"Running...",clipboardUnavailable:"Clipboard API not available"},context:{totalCost:"Total cost",input:"Input",output:"Output",reasoning:"Reasoning",cache:"Cache"},attachments:{source:"Source",image:"Image",attachment:"Attachment",imageAlt:"Image",remove:"Remove",noAttachments:"No attachments"},askUser:{placeholder:"Type an answer..."},readonlyCodeBlock:{loading:"Loading code..."}}},506978,(e,t,a)=>{t.exports={title:"Command Palette",description:"Search and run commands",placeholder:"Type a command or search...",empty:"No results found.",noResults:"No search results",typeKeyword:"Type a keyword to search..."}},133154,(e,t,a)=>{t.exports={title:"Commands",addCommand:"Add Command",editCommand:"Edit Command",name:"Name",command:"Command",workingDirectory:"Working Directory",shell:"Shell",environmentVariables:"Environment Variables",autoRestart:"Auto Restart",run:"Run",stop:"Stop",save:"Save",cancel:"Cancel",delete:"Delete",noCommands:"No commands",searchPlaceholder:"Search commands...",import:"Import",importTitle:"Import Commands from package.json",importDescription:"Select a project directory to parse scripts from package.json",selectProject:"Select project directory",parsedScripts:"Parsed Scripts",noScripts:"No scripts found",addSelected:"Add Selected",customCommands:"Custom Commands",folder:"Folder"}},527759,(e,t,a)=>{t.exports={save:"Save",saved:"Saved",cancel:"Cancel",delete:"Delete",confirm:"Confirm",search:"Search",loading:"Loading...",noData:"No data",upload:"Upload",remove:"Remove",add:"Add",edit:"Edit",open:"Open",close:"Close",back:"Back",next:"Next",retry:"Retry",reset:"Reset",error:"Error",success:"Success",manage:"Manage",active:"Active",name:"Name",description:"Description",status:"Status",actions:"Actions",copy:"Copy",copied:"Copied",create:"Create",saving:"Saving...",you:"You",user:"User",refresh:"Refresh",new:"New",timeToday:"Today",timeYesterday:"Yesterday",timeThisWeek:"This Week",timeEarlier:"Earlier",groupNone:"No Grouping",groupByTime:"Group by Time",groupByStatus:"Group by Status",sortByCreated:"By Created Time",sortByLastReply:"By Last Reply",sortByStatus:"By Status",sortAsc:"Ascending",sortDesc:"Descending"}},210846,(e,t,a)=>{t.exports={openDialog:"Open Dialog",newContent:"New Content",placeholder:"Type content, use @ to mention, / to open commands",heading:"Heading",quote:"Quote",divider:"Divider",addFile:"Add File",dropzoneHint:'Tip: drag files here, or click "Add File"',send:"Send",sending:"Sending...",uploadFailed:"Upload failed: {name}",noMatch:"No matches",selectOption:"Select an option"}},273652,(e,t,a)=>{t.exports={autoSaved:"Content auto-saved",untitled:"Untitled",knowledgeBase:"Knowledge Base",parentDir:"Parent",currentDoc:"Current Document",knowledgeTree:"Multi-level Knowledge Tree",notionEditor:"Notion Editor",markdownEditor:"Markdown Editor",closeToc:"Close TOC",openToc:"Open TOC",typographyAndFont:"Typography & Font",themeSans:"Sans-serif Modern",themeSerif:"Serif Elegant",themeMono:"Monospace",viewHistory:"View Version History",pageWidth:"Page Width",restoreWidth:"Restore Default Width",fullWidth:"Full Width",cover:"Cover:",autoSaveEnabled:"Auto-save enabled",wordCount:"Words:",createdAt:"Created:",modifiedAt:"Modified:",knowledgeEditor:"Knowledge Editor",emptyHint:"Click a page in the sidebar tree to start editing, or create a new document.",shortcuts:"Shortcuts",globalSearch:"Global Search",editorModeSwitch:"Editor Mode Switch",topRightTab:"Top-right tab",nestedArchive:"Nested Archive",sidebarDrag:"Sidebar drag",quickCreateFirst:"Quick Create First Document",historyVersions:"Version History",loadingHistory:"Loading...",loadHistoryFailed:"Failed to load version history",noHistory:"No version history",selectVersionDiff:"Select a version to view diff",deleteConfirm:'Delete database "{name}" and all nodes inside it?',createDatabase:"Create database",editDatabase:"Edit database",vectorSettings:"Vector settings",deleteDatabase:"Delete database",sidebarTree:"Knowledge Tree",filterPlaceholder:"Filter documents...",newItem:"New",newFolder:"New Folder",newDocument:"New Document",importMarkdown:"Import Markdown",noMatch:"No matching items",emptyState:"No pages yet. Click above to create one.",recentEdits:"Recent Edits",trashBin:"Trash",versions:"versions",justNow:"just now",minutesAgo:"min ago",hoursAgo:"hr ago",daysAgo:"days ago",restore:"Restore"}},377073,(e,t,a)=>{t.exports={newFolder:"New Folder",folderNamePlaceholder:"Folder name",select:"Select",selectDirectory:"Select a directory to check permissions"}},800407,(e,t,a)=>{t.exports={changes:{title:"Changes",staged:"Staged",unstaged:"Unstaged",commitMessagePlaceholder:"Commit message (⌘+Enter)",commit:"Commit",committing:"Committing...",syncChanges:"Sync Changes",syncing:"Syncing...",discardAll:"Discard all changes",discard:"Discard",confirmDiscardAll:"Are you sure you want to discard all uncommitted changes? This action cannot be undone.",confirmDiscardFile:"Are you sure you want to discard changes for {file}? This action cannot be undone.",refresh:"Refresh",editGitignore:"Edit .gitignore",noChanges:"No changes",noBranches:"No branches",selectFileDiff:"Select a file to view diff",noChangesToShow:"No changes to show",ignoreThisFile:"Ignore this file",ignoreFilePath:"Ignore {path}",syncedSuccessfully:"Synced successfully",syncFailed:"Sync failed",failedCommitMessage:"Failed to generate commit message",committedSuccessfully:"Committed successfully",commitFailed:"Commit failed",discardedSuccessfully:"Changes discarded",discardFailed:"Discard failed",viewDiff:"View unstaged diff",unstagedChanges:"Unstaged Changes"},commits:{title:"Commits",titleWithCount:"Commits ({count})",pushNCommits:"Push {count} commits",pullNCommits:"Pull {count} commits",noCommits:"No commits",operationLog:"Operation Log",operationLogTitle:"Git Operation Log ({count} entries)",noOperations:"No operations recorded",settingsTitle:"Git Settings",remoteTrackingBranch:"Remote tracking branch",pushedSuccessfully:"Pushed successfully",pushFailed:"Push failed",pulledSuccessfully:"Pulled successfully",pullFailed:"Pull failed",remoteAdded:"Remote added",detailFileCount:"{count} files",contextMenu:{openChanges:"Open Changes",openOnGitHub:"Open on GitHub",checkout:"Checkout",checkoutDetached:"Checkout (Detached)",createBranch:"Create Branch...",deleteBranch:"Delete Branch",createTag:"Create Tag...",cherryPick:"Cherry Pick",compareWithRemote:"Compare with Remote",compareWithMergeBase:"Compare with Merge Base",compareWith:"Compare with...",copyCommitId:"Copy Commit ID",copyCommitMessage:"Copy Commit Message",addToChat:"Add to Chat",explainChanges:"Explain Changes",branchName:"Branch name",tagName:"Tag name",branchToDelete:"Branch to delete",comparingWith:"Comparing with {hash}",checkedOut:"Checked out",cherryPicked:"Cherry-picked",branchCreated:"Branch created",branchDeleted:"Branch deleted",tagCreated:"Tag created",commitIdCopied:"Commit ID copied",commitMessageCopied:"Commit message copied",failed:"Operation failed"}},graph:{title:"Graph"},remote:{bindTitle:"Bind Remote Repository",nameLabel:"Remote name",namePlaceholder:"origin",urlLabel:"Remote URL",urlPlaceholder:"https://github.com/user/repo.git",adding:"Adding...",addRemote:"Add Remote"},notInitialized:{message:"Not a Git repository",initializing:"Initializing...",initialize:"Initialize Git Repository"},settings:{title:"Git Settings",globalScope:"Global Settings",localScope:"Repository Settings",globalScopeDescription:"These settings apply to all Git repositories",localScopeDescription:"These settings apply only to the current repository",name:"User Name",namePlaceholder:"Enter Git user name",email:"Email",emailPlaceholder:"Enter Git email",proxy:"HTTP Proxy",proxyPlaceholder:"e.g. http://127.0.0.1:7890",remoteUrl:"Remote URL",remoteUrlPlaceholder:"e.g. https://github.com/user/repo.git",saved:"Settings saved",saveFailed:"Failed to save settings",loading:"Loading..."}}},146674,(e,t,a)=>{t.exports={table:{agent:"Agent",model:"Model",modelUnknown:"unknown",summary:"Summary",cost:"Cost",total:"Total:",cacheHit:"Cache hit:",tokensIn:"in",tokensOut:"out",status:"Status",duration:"Duration",time:"Time",emptyMessage:"Usage appears here after an agent run completes.",noResults:"No results."},period:{today:"Today","7d":"7 days","30d":"30 days","1y":"1 year",custom:"Custom"},title:"Agent Usage",metric:{agentRuns:"Agent Runs",agentRunsHelper:"completed runs",tokensUsed:"Tokens Used",tokensIn:"in",totalCost:"Total Cost",totalCostHelper:"estimated spend",avgDuration:"Avg Duration",avgDurationHelper:"per run"},chart:{dailyTokenUsage:"Daily Token Usage",input:"Input",output:"Output",costByModel:"Cost by Model",noUsageRecords:"No completed usage records yet.",tokenDistribution:"Token Distribution",costDistribution:"Cost Distribution",tokens:"tokens",totalCost:"total cost",noCostData:"No cost data yet.",noTokenData:"No token data"},pagination:{showing:"Showing",to:"to",of:"of",entries:"entries",prevAriaLabel:"Go to previous page",previous:"Previous",nextAriaLabel:"Go to next page",next:"Next"},time:{justNow:"just now",minutesAgo:"{n}m ago",hoursAgo:"{n}h ago",daysAgo:"{n}d ago"},subscription:{planTitle:"Subscription Plans",addPlatform:"Subscriptions",title:"Manage Subscriptions",empty:"No subscriptions yet. Click below to add one.",add:"Add Platform",cancel:"Cancel",save:"Save",platform:"Platform",label:"Label",labelPlaceholder:"Optional name for this config",loading:"Loading...",resetAt:"Resets at",headers:"Extra Headers",addHeader:"Add",noHeaders:"No headers",cookiePlaceholder:"Paste browser Cookie",editTitle:"Edit Subscription",networkError:"Network error",limitTypes:{TIME_LIMIT:"Time Limit",TOKENS_LIMIT:"Token Limit","MiniMax-M*":"MiniMax-M*","coding-plan-vlm":"Coding Plan VLM","coding-plan-search":"Coding Plan Search",balance:"Balance",bonusBalance:"Bonus Balance"}}}},393680,(e,t,a)=>{t.exports={status:{draft:"Draft",planned:"Planned",in_progress:"In Progress",review_pending:"Review Pending",changes_requested:"Changes Requested",approved:"Approved",completed:"Completed",archived:"Archived",error:"Error"},list:{title:"Issues",emptyTitle:"No issues yet",emptyDescription:"Create an issue to start collaborating",addIssue:"Add Issue",taskCount:"{count, plural, one {# task} other {# tasks}}",archive:"Archive",unarchive:"Unarchive",archived:"Archived",clearArchived:"Clear Archived",clearArchivedConfirm:"Delete {count} archived {count, plural, one {issue} other {issues}}? This cannot be undone."},detail:{selectIssue:"Select an issue to view details",commentPlaceholder:"Write a comment... Use @ to mention agents, / for commands",openChatChannel:"Open chat channel",memberCount:"{count, plural, one {# member} other {# members}}",created:"Created",updated:"Updated",pr:"PR:",start:"Start",continue:"Continue",interrupt:"Interrupt",continuousRun:"Continuous",resumeFailed:"Resume failed tasks",retryPaused:"Automatic retry paused after {failed}/{total} attempts.",tasks:"Tasks ({count})",editTask:"Edit Task",addTask:"Add Task",taskTitlePlaceholder:"Task title",taskDescriptionPlaceholder:"Description (optional)",noTasks:"No tasks yet",noAgent:"No agent assigned",comments:"Comments ({count})",author:"Author",commented:"commented",comment:"Comment",tabInfo:"Info",tabMembers:"Members",infoStatus:"Status",infoIssueId:"Issue ID",infoTaskCount:"Tasks",infoMemberCount:"Members",infoCreatedAt:"Created",infoUpdatedAt:"Updated",infoBranch:"Branch",infoPr:"PR",infoDescription:"Description",addMember:"Add member",deleteIssue:"Delete Issue"},message:{task:"task {taskId}",openMessage:"Open message",expandMore:"Show more",collapse:"Collapse"},edit:{title:"Edit Issue",description:"Modify issue info, status and members",titlePlaceholder:"Title",descriptionPlaceholder:"Description",statusLabel:"Status",membersLabel:"Members",searchAgent:"Search Agent...",noAgents:"No agents available"},create:{title:"Create Issue",description:"Create a new issue and assign members",titlePlaceholder:"Title",descriptionPlaceholder:"Description (optional)",membersLabel:"Members",searchAgent:"Search Agent...",noAgents:"No agents available",submit:"Create"}}},587985,(e,t,a)=>{t.exports={searchPlaceholder:"Search...",priorityAll:"All",priorityHigh:"High",priorityMedium:"Medium",priorityLow:"Low",newCard:"New Card",section:"Section",vertical:"Vertical",horizontal:"Horizontal",noSections:"No sections",addSection:"Add Section",newSection:"New Section",emptySection:"Empty Section",dropHint:"Cards can be dropped here",addTask:"Add Task",confirm:"Confirm",no:"No",taskDetails:"Task Details",title:"Title",titlePlaceholder:"Task title",descriptionLabel:"Description",descriptionPlaceholder:"Task description...",sectionLabel:"Section",selectSection:"Select section...",dueDate:"Due Date",priority:"Priority",high:"High",medium:"Medium",low:"Low",done:"Done",archived:"Archived",deleteConfirm:"Delete?",yes:"Yes",editSection:"Edit Section",sectionName:"Section Name",sectionNamePlaceholder:"e.g. Backlog, Review",theme:"Theme",newTask:"New Task",useTemplate:"Use Template",manageSections:"Manage Sections"}},289823,(e,t,a)=>{t.exports={subtitle:"Enter your secret key to continue",secretPlaceholder:"Secret key (leave empty if not set)",verifying:"Verifying...",login:"Login",loginFailed:"Login failed",networkError:"Network error",manageServers:"Manage Servers"}},469656,(e,t,a)=>{t.exports={title:"MCP Servers",description:"Manage and import MCP server configs, bind to agents",import:"Import",importTitle:"Import MCP Config",importConfirm:"Confirm Import",importInvalidJson:"Invalid JSON format",importFailed:"Import failed",filterAll:"All",filterFavorites:"Favorites",filterByAgent:"Filter by Agent",search:"Search MCP servers...",empty:"No MCP servers configured",apply:"Apply",delete:"Delete",editTitle:"Edit MCP - {name}",editDescription:"Edit MCP server config (JSON)",bindTitle:"Bind Agents - {name}",bindDescription:"Select agents to bind this MCP server to"}},128845,(e,t,a)=>{t.exports={capability:{vision:"Vision",reasoning:"Reasoning",embedding:"Embedding"},error:{saveFailed:"Failed to save model",deleteFailed:"Failed to delete model"},confirm:{delete:"Delete this model?"},dialog:{editTitle:"Edit Model",addTitle:"Add Model",title:"Models",editDescription:"Configure model properties and capabilities",listDescription:"Manage available LLM models",add:"Add",loading:"Loading models..."},list:{contextAbbr:"ctx",empty:"No models yet"},form:{details:"Details",modelId:"Model ID",modelIdPlaceholder:"e.g. gpt-4o",displayName:"Display Name",displayNamePlaceholder:"e.g. GPT-4o",provider:"Provider",context:"Context",maxContextTokens:"Max context tokens",customContextPlaceholder:"128000",thinking:"Thinking",enableThinking:"Enable thinking",enableThinkingHelper:"Send reasoning/thinking options with model requests.",effort:"Effort",cost:"Cost",inputPerMillion:"Input / 1M tokens",outputPerMillion:"Output / 1M tokens",costPlaceholder:"0.00",capabilities:"Capabilities"}}},218483,(e,t,a)=>{t.exports={title:"Output Styles",description:"Manage output style templates that define Agent response style, tone and format",search:"Search output styles...",empty:"No output style templates",create:"New",createTitle:"New Output Style",editTitle:"Edit Output Style - {name}",editDescription:"Edit output style content",namePlaceholder:"Style name",descriptionPlaceholder:"Style description (optional)",contentPlaceholder:"Define response style, tone, format requirements. e.g.: Reply in concise English, use TypeScript for code, be straightforward...",delete:"Delete",import:"Import",importTitle:"Import Output Style Files",importPlaceholder:"Drag .md or .txt files here, or click to select",importConfirm:"Confirm Import",tabLocal:"Local",tabStore:"Store",storeEmpty:"No output styles in store",importTo:"Import",imported:"Imported",importing:"Importing...",apply:"Apply",applyTitle:'Apply "{name}" to Agents',applyDescription:"Select agents to apply this output style",applyConfirm:"Apply to {count} agents"}},849212,(e,t,a)=>{t.exports={title:"Project Settings",loading:"Loading...",workspaceNotFound:"Workspace not found",info:{title:"Info",path:"Path",channels:"Channels",issues:"Issues"},automation:{title:"Automation",autoProcess:"Auto Process Issues",autoProcessDescription:"Scheduler will automatically plan and execute open issues"},hooks:{title:"Hooks",enableHooks:"Enable Hooks",enableHooksDescription:"Enable per-tool-call hooks for this workspace"},notifications:{title:"Notifications",messageNotifications:"Message Notifications",messageNotificationsDescription:"Push issue progress and final task results to external chat platforms",lark:"Feishu",wechat:"WeChat",appId:"app_id",appSecret:"app_secret",stopService:"Stop Service",startService:"Start Service",testSend:"Test Send",saveSuccess:"Notification settings saved",saveFailed:"Failed to save notification settings",startSuccess:"Notification service started",startFailed:"Failed to start notification service",stopSuccess:"Notification service stopped",stopFailed:"Failed to stop notification service",testSuccess:"Test notification sent",testFailed:"Failed to send test notification",native:"System",nativeDescription:"Push issue progress and task results via native OS notifications",nativePermissionGranted:"Granted",nativePermissionDenied:"Denied",nativePermissionDefault:"Not granted",nativePermissionUnsupported:"Unsupported",nativeRequestPermission:"Grant Permission",nativeTestSuccess:"System notification sent",nativeTestSent:"Notification sent. If not visible, check System Settings > Notifications > Browser",nativeTestFailed:"Failed to send system notification",nativePermissionGrantedToast:"Notification permission granted",nativePermissionDeniedToast:"Notification permission denied",androidOngoingTaskNotification:"Ongoing task notification",androidOngoingTaskNotificationDescription:"Update an ongoing notification in the system notification panel when tasks change. Android only; foreground service support may be required.",selectRobotAccount:"Select Robot Account",noRobotAccount:"No accounts yet. Add one in Settings first.",addRobotAccount:"Add Account"},wechat:{robot:"WeChat iLink Robot",connected:"Connected: {accountId}",scanned:"Scanned. Confirm login on your phone.",expired:"QR code expired. Refresh to get a new one.",scanQr:"Scan the QR code with WeChat to authorize the robot.",refreshLogin:"Refresh Login",getQr:"Get QR",status:"Status: {status}",loginUrl:"Login URL: {url}",connectedToast:"WeChat robot connected",pollFailed:"Failed to poll WeChat QR status",getQrFailed:"Failed to get WeChat QR code"},botAgent:{title:"Bot Agent",selectAgent:"No agent selected",manage:"Manage"},events:{title:"Notification Events",issueStarted:"Issue Started",issueCompleted:"Issue Completed",taskCompleted:"Task Completed",channelAgentCompleted:"Channel Agent Reply Completed"},prompt:{title:"Prompt",workspacePrompt:"Workspace Prompt",description:"Applied to every agent run in this workspace",savePrompt:"Save Prompt",saveSuccess:"Workspace prompt saved",saveFailed:"Failed to save workspace prompt"}}},102882,(e,t,a)=>{t.exports={title:"Prompt Templates",description:"Manage prompt templates and apply to agents",search:"Search prompts...",empty:"No prompt templates",create:"New",createTitle:"New Prompt Template",editTitle:"Edit Prompt - {name}",editDescription:"Edit prompt content",namePlaceholder:"Prompt template name",apply:"Apply",applyTitle:"Apply to Agents - {name}",applyDescription:"Select agents to apply this prompt. This will replace their system prompt.",applyConfirm:"Apply to {count} agents",searchAgents:"Search agents...",noAgents:"No agents found",delete:"Delete",import:"Import",importTitle:"Import Prompt Files",importPlaceholder:"Drag .md or .txt files here, or click to select",importConfirm:"Confirm Import",tabLocal:"Local",tabStore:"Store",storeEmpty:"No prompts in store",importTo:"Import",imported:"Imported",importing:"Importing..."}},315325,(e,t,a)=>{t.exports={error:{saveFailed:"Failed to save provider",deleteFailed:"Failed to delete provider"},confirm:{delete:"Delete this provider?"},dialog:{editTitle:"Edit Provider",addTitle:"Add Provider",title:"Providers",editDescription:"Configure provider connection settings",listDescription:"Manage LLM API providers",add:"Add",loading:"Loading providers..."},list:{noApiBase:"No API base configured",modelsCount:"models",addModel:"Add model",empty:"No providers yet"},form:{connection:"Connection",name:"Name",namePlaceholder:"e.g. Anthropic",apiBase:"API Base",apiBasePlaceholder:"https://api.anthropic.com",apiKey:"API Key",apiKeyPlaceholder:"sk-..."}}},394291,(e,t,a)=>{t.exports={title:"Robot Accounts",description:"Manage Feishu and WeChat bot credentials. Workspace notification settings can reference these accounts.",addAccount:"Add Account",editAccount:"Edit Account",deleteAccount:"Delete Account",deleteConfirm:"Delete this account? Linked workspace notifications will stop working.",name:"Name",namePlaceholder:"e.g. Company Feishu Bot",type:"Type",noAccounts:"No Robot Accounts",noAccountsDesc:'Click "Add Account" above to create a Feishu or WeChat bot account.',lark:"Feishu",wechat:"WeChat",addLark:"Add Feishu Account",addWechat:"Add WeChat Account",larkFields:{appId:"App ID",appSecret:"App Secret"},wechatFields:{token:"Token",accountId:"Account ID",baseUrl:"Base URL"},createSuccess:"Account created",createFailed:"Failed to create account",updateSuccess:"Account updated",updateFailed:"Failed to update account",deleteSuccess:"Account deleted",deleteFailed:"Failed to delete account",wechatQrDescription:"Scan the QR code with WeChat. An account will be created automatically after login.",getQr:"Get QR Code",refreshQr:"Refresh QR Code",wechatWaitScan:"Waiting for scan...",wechatScanned:"Scanned. Confirm login on your phone.",wechatExpired:"QR code expired. Please refresh.",save:"Save",cancel:"Cancel"}},147816,(e,t,a)=>{t.exports={title:"Settings",description:"Customize your workspace appearance",userAvatar:"User Avatar",theme:"Theme",themeLight:"Light",themeDark:"Dark",themeSystem:"System",language:"Language",languageZh:"中文",languageEn:"English",security:"Security",robots:"Robot Accounts",newSecretPlaceholder:"New secret key (leave empty to remove)",redirecting:"Redirecting to login...",zoom:"Page Zoom",zoomReset:"Reset",showWorkspaceTabs:"Show Workspace Tabs",autoActivateWorkspace:"Auto-open last workspace on startup",layout:"Layout",resetLayout:"Reset to Default",speech:"Speech Recognition",speechDescription:"Configure speech recognition provider credentials",speechProvider:"Provider",speechTencent:"Tencent Cloud",speechAppId:"App ID",speechSecretId:"Secret ID",speechSecretKey:"Secret Key",speechNoConfig:"No speech recognition configured",speechAddConfig:"Add Config",git:"Git",agentStore:"Agent Store",storeApiBase:"Store API Base URL",storeApiBaseDesc:"Configure the online Agent resource store base URL. Leave empty to use built-in local resources. Used for fetching output-styles, prompt templates, skills etc.",save:"Save",font:"Font",fontPlaceholder:"Default font",fontSearch:"Search fonts...",addCustomFont:"Add Custom Font",addCustomFontDesc:"Upload a font file or enter an online font URL",fontUpload:"Upload Font",fontOnlineUrl:"Online Font",fontUploadPlaceholder:"Drop font file here, supports .ttf .otf .woff .woff2",fontUrlHint:"Enter a direct URL to a font file (e.g., Google Fonts woff2 file URL)",fontAdded:"Font added",fontAddFailed:"Failed to add font",about:"About",aboutInfo:"Information",aboutVersion:"Current Version",aboutLatestVersion:"Latest Version",aboutPlatform:"Platform",aboutLinks:"Links",aboutUpdates:"Updates",aboutAutoCheck:"Auto-check for updates",aboutCheckNow:"Check for Updates",aboutChecking:"Checking...",aboutCheckFailed:"Failed to check for updates",aboutNewVersion:"New version available: v{version}",aboutUpdateNow:"Update Now",aboutUpToDate:"Already up to date",aboutUpdateConfirmTitle:"Confirm Update",aboutUpdateConfirmDesc:"The application will stop and restart to install the update. Make sure all work is saved.",aboutUpdating:"Updating and restarting...",aboutDevMode:"Update checking is disabled in development mode",shortcuts:"Keyboard Shortcuts",openCommandPalette:"Open Command Palette",toggleSidebar:"Toggle Sidebar",recordingShortcut:"Press shortcut...",recordShortcut:"Record Shortcut",resetShortcut:"Reset Shortcut"}},155778,(e,t,a)=>{t.exports={nav:{home:"Home",workspaces:"Workspaces",addWorkspace:"Add Workspace",settings:"Settings",general:"General",agents:"Agents",skills:"Skills",prompts:"Prompts",outputStyles:"Output Styles",mcps:"MCP Servers",models:"Models",providers:"Providers",workflows:"Workflows",hooks:"Hooks",tools:"Tools",commands:"Commands"},notifications:{openAriaLabel:"Open notifications",title:"Notifications",viewAll:"View all notifications",centerTitle:"Notification Center",empty:"No notifications",clearAll:"Clear all",markAllRead:"Mark all read",backToList:"Back to list",type:{issue_completed:"Issue Completed",issue_failed:"Issue Failed",task_completed:"Task Completed",task_failed:"Task Failed",channel_agent_completed:"Agent Completed"},delete:"Delete"},server:{servers:"Servers",addServer:"Add Server",manageServers:"Manage Servers",editServer:"Edit Server",editDescription:"Update server connection details.",addDescription:"Add an API server to connect to.",manageDescription:"Add, edit, or remove API server connections.",url:"URL",secret:"Secret",secretPlaceholder:"Optional API secret",secretOptionalPlaceholder:"Secret (optional)",newServer:"New Server",switch:"Switch"}}},340508,(e,t,a)=>{t.exports={title:"Skills Management",description:"Manage and import skills, bind to agents",import:"Import",importTitle:"Import Skill Files",importPlaceholder:"Drag .md files here, or click to select",importConfirm:"Confirm Import",filterAll:"All Skills",filterFavorites:"Favorites",filterByAgent:"Filter by Agent",search:"Search skills...",empty:"No skills found",manageAgents:"Manage",apply:"Apply",delete:"Delete",revealFolder:"Reveal in File Manager",editTitle:"Edit Skill - {name}",editDescription:"Edit skill Markdown content",bindTitle:"Bind Agents - {name}",bindDescription:"Select agents to bind this skill to",searchAgents:"Search agents...",syncToAgents:"Sync to Agents",syncTitle:"Sync Skills to Agents",syncDescription:"The following agent skill files are outdated. Select items to update.",syncEmpty:"All agent skills are up to date",syncConfirm:"Confirm Update",syncSuccess:"Updated {count} skill files",importFromMd:"Import .md File",importFromFolder:"Import Folder",importFromZip:"Import ZIP",importFromGit:"Import from Git",importFromGitDesc:"Enter a Git repository URL to clone and find SKILL.md files",importPreviewTitle:"Import Preview",importPreviewGroupPlaceholder:"Group name (optional)",importPreviewNamePlaceholder:"Skill name",importPreviewSelected:"Confirm Import ({selected}/{total})",importPreviewSelectAll:"Select All",importPreviewDeselectAll:"Deselect All",importPreviewConfirm:"Confirm Import ({selected}/{total})",importPreviewCancel:"Cancel",importPreviewEmpty:"Nothing to import",filterGroups:"Groups",filterNoGroup:"No Group",toggleAll:"Toggle All",applyAllToAgent:"Apply All to Agent",applyAllToAgentDescription:"Select agents to apply all skills to",tabLocal:"Local",tabStore:"Store",storeEmpty:"No skills in store",importTo:"Import",imported:"Imported",importing:"Importing..."}},919800,(e,t,a)=>{t.exports={status:{pending:"Pending",running:"Running",reviewing:"Reviewing",waiting_review:"Waiting Review",retrying:"Retrying",done:"Done",failed:"Failed",cancelled:"Cancelled"}}},856936,(e,t,a)=>{t.exports={newTerminal:"New Terminal",noSession:"No terminal session",selectWorkingDirectory:"Select Working Directory",selectWorkingDirectoryDescription:"This workspace has multiple bound directories. Select which one to use for this terminal.",virtualKeyboard:"Keyboard",sendCtrlC:"Quit",clearScreen:"Clear",editInput:"Edit",sendInput:"Send",mobileInputPlaceholder:"Type terminal input...",pasteCommand:"Paste Commands",pasteCommandDescription:"Edit commands and confirm to send them line by line to the terminal",pasteCommandPlaceholder:"One command per line...",cancel:"Cancel",confirm:"Confirm"}},14315,(e,t,a)=>{t.exports={title:"Tools",search:"Search tools...",empty:"No tools found",filterAll:"All",detailTitle:"Tool Details",enabledCount:"{count}/{total} tools enabled",selectTools:"Select Tools",selectAll:"Select All",deselectAll:"Deselect All",categories:{channel:"Channel",terminal:"Terminal",database:"Database",kanban:"Kanban"}}},985449,(e,t,a)=>{t.exports={dialog:{editTitle:"Edit Workspace",newTitle:"New Workspace",editDescription:"Update workspace settings.",newDescription:"Create a new workspace bound to a local directory.",namePlaceholder:"Workspace name"},agents:"Agents",addAgent:"Add Agent",noAgents:"No agents in this workspace",clone:{createFromGit:"Create from Git",fromGitTooltip:"Clone from a Git repository",selectFolderFirst:"Please select a target folder first",title:"Create from Git",description:"Enter a Git repository URL to clone into the selected folder.",cloneTo:"Will clone to: ",objects:"objects",cloning:"Cloning...",clone:"Clone",cloneFailed:"Clone failed",noResponseBody:"No response body",phase:{counting:"Counting objects...",compressing:"Compressing...",receiving:"Receiving data...",resolving:"Resolving...",done:"Done",error:"Failed"}}}},199296,(e,t,a)=>{t.exports={title:"Workspaces",newWorkspace:"New Workspace",emptyMessage:"No workspaces yet. Create one to get started.",edit:"Edit",reveal:"Reveal in Finder",delete:"Delete Workspace",deleteConfirm:'Are you sure you want to delete workspace "{name}"? This action cannot be undone.'}},405159,(e,t,a)=>{t.exports={panel:{title:"Worktrees",empty:"No Worktrees",emptyHint:"Create isolated branch environments for AI agents",create:"Create Worktree"},card:{active:"Active",merged:"Merged",switch:"Switch",diff:"Review Diff",createPR:"Create PR",viewPR:"View PR",merge:"Merge",delete:"Delete",branch:"Branch",agent:"Agent",issue:"Issue",createdAt:"Created",confirmDelete:"Delete this Worktree? Uncommitted changes will be lost.",current:"Current"},prDialog:{title:"Create PR",prTitle:"Title",body:"PR body",bodyPlaceholder:"Describe the changes for this pull request",generate:"AI generate PR body",cancel:"Cancel",submit:"Create PR"},dialog:{createTitle:"Create Worktree",name:"Name",namePlaceholder:"e.g. feature-auth",branch:"Branch (optional)",branchPlaceholder:"Auto-generated if empty",agent:"Agent (optional)",issue:"Issue (optional)",creating:"Creating..."}}},334040,(e,t,a)=>{t.exports={provider:{anthropicMessages:"Anthropic Messages",openaiChatCompletions:"OpenAI Chat Completions",openaiResponses:"OpenAI Responses API",openaiResponsesToAnthropic:"OpenAI Responses To Anthropic Messages",openaiChatToAnthropic:"OpenAI Chat Completions To Anthropic Messages",geminiGenerateContent:"Gemini Native generateContent"},runtime:{openAgentSdk:"Open Agent SDK",claudeCode:"Claude Code",codex:"Codex",langchain:"LangChain",hermes:"Hermes"},role:{agent:{name:"Agent"},scheduler:{name:"调度者"},task_creator:{name:"任务创建者"},bot:{name:"Bot Agent"}},defaultName:"新 Agent",error:{loadFailed:"加载 Agent 预设失败",saveFailed:"保存 Agent 预设失败",connectionTestFailed:"连接测试失败",noWorkspace:"请先打开工作空间再添加 Agent 预设",deleteFailed:"删除 Agent 预设失败",syncFailed:"同步 Agent 模板失败"},dialog:{title:"Agent 预设",editDescription:"配置 Agent 行为、工具和模型设置",listDescription:"管理工作空间的 Agent 预设",add:"添加",addEmpty:"空白",syncTemplates:"同步模板",noWorkspace:"未选择工作空间",loading:"加载 Agent 预设中..."},list:{noDescription:"无描述",empty:"暂无 Agent 预设"},detail:{uploadAvatar:"上传",removeAvatar:"移除",name:"名称",role:"角色",description:"描述",agentRuntime:"Agent 运行时",runtimePlaceholder:"选择 Agent 运行时...",runtimeSearchPlaceholder:"搜索 Agent 运行时...",workingDirectory:"工作目录",workingDirPlaceholder:"/workspace",systemPrompt:"系统提示",systemPromptPlaceholder:"输入系统提示...",optimizePrompt:"优化提示词",optimizePromptDescription:"输入用户需求和当前提示词,系统会生成一段全新的 system prompt。",optimizePromptPlaceholder:"例如:增强约束、补充输出要求、调整结构。",optimizeConfirm:"生成优化结果",optimizeRequest:"用户需求",optimizedPrompt:"新提示词",optimizePreviewTitle:"优化后的提示词预览",optimizePreviewDescription:"请确认新旧差异,确认后再应用到当前 Agent。",applyOptimizedPrompt:"应用新提示词",cancel:"取消",optimizing:"生成中...",outputStyle:"输出风格",outputStylePlaceholder:"定义 Agent 的回复风格、语气、格式要求...",mcpServers:"MCP 服务器",tools:"工具",skills:"技能",uploadSkills:"上传 Markdown 技能",model:"模型",provider:"供应商",providerPlaceholder:"选择供应商...",providerSearchPlaceholder:"搜索供应商...",modelField:"模型",selectProviderFirst:"请先选择供应商...",modelPlaceholder:"选择模型...",modelSearchPlaceholder:"搜索或输入自定义模型...",apiMessageType:"API 消息类型",apiMessageTypePlaceholder:"选择 API 消息类型...",apiMessageTypeSearchPlaceholder:"搜索 API 消息类型...",apiBase:"API 地址",apiBasePlaceholder:"https://api.example.com/v1",apiKey:"API 密钥",apiKeyPlaceholder:"sk-...",validateHelper:"保存前验证供应商凭据。",testing:"测试中...",test:"测试",temperature:"温度",maxTokens:"最大 Token 数",basic:"基本信息",enabledToolsCount:"已启用 {count}/{total} 个工具"},debug:{status:"状态:",provider:"供应商:",url:"URL:",model:"模型:",body:"请求体:"}}},321811,(e,t,a)=>{t.exports={title:"Commands",description:"管理 Agent 模板目录下的 Command 文件",search:"搜索 commands...",empty:"暂无 command 文件",create:"新建",createTitle:"新建 Command",editTitle:"编辑 Command - {name}",editDescription:"编辑 Command 内容",namePlaceholder:"Command 名称",groupPlaceholder:"分组(可选)",delete:"删除",import:"导入",importTitle:"导入 Command 文件",importPlaceholder:"拖拽 .md 或 .txt 文件到此处,或点击选择",importConfirm:"确认导入",selectAgent:"选择 Agent",allAgents:"所有 Agent",noAgents:"暂无 Agent 模板",filterGroups:"分组",filterNoGroup:"未分组",apply:"应用",applyTitle:"应用到 Agent - {name}",applyDescription:"选择要将此 Command 复制到的 Agent",applyConfirm:"应用到 {count} 个 Agent"}},488180,(e,t,a)=>{t.exports={channel:{general:"通用",issue:"议题",agent:"Agent",edit:"编辑频道",create:"创建频道",selectType:"选择类型",addMember:"添加成员",info:"频道信息",members:"成员",type:"类型:",channelId:"频道 ID",memberCount:"成员数",createdAt:"创建时间",noMembers:"暂无成员",noAgents:"未找到 Agent",delete:"删除频道",deleteConfirm:"确认删除频道「{name}」?此操作不可撤销。",namePlaceholder:"频道名称",archive:"归档",unarchive:"取消归档",archived:"已归档",clearArchived:"清空归档",clearArchivedConfirm:"确认删除 {count} 个已归档的频道?此操作不可撤销。",initialMessage:"初始消息",initialMessagePlaceholder:"输入消息,创建后自动发送给成员",created:"频道已创建",createFailed:"创建频道失败",creating:"创建中..."},channelType:{general:"通用",issue:"议题",agent:"Agent"},emptyState:"选择一个频道开始对话",status:{idle:"空闲中",waitingForUser:"等待用户确认",running:"运行中",success:"成功",error:"失败"},viewRelatedIssue:"查看关联议题",deleteMessage:{title:"删除消息",description:"确认删除这条消息?此操作不可撤销。"},clearMessages:{title:"清空频道消息",description:"确认清空 #{channel} 的所有消息?此操作不可撤销。",confirm:"清空"},pendingQuestion:{placeholder:"输入回答..."},untitledTodo:"未命名待办",input:{placeholder:"发送消息到 #{channel}... 使用 @ 提及 Agent,输入 / 打开命令",attachFiles:"附件",autoMode:"自动",unpinAgent:"取消固定",pinAgent:"固定此 Agent",mcp:"MCP",noMcp:"未配置 MCP",skill:"技能",noSkills:"未配置技能",tools:"工具",noTools:"未配置工具",todos:"待办",clearTodos:"清空待办",uploadFailed:"上传失败:{name}",voiceStart:"语音输入",voiceStop:"停止录音",manageMembers:"管理频道成员",notifyOnComplete:"AI 回复完成时通知"},messageParts:{agentProcessing:"Agent 正在处理...",agentThinking:"Agent 正在思考",aiIntermediateOutput:"AI 中间输出",streamingResponse:"流式响应",intermediateMessage:"中间消息",chainSteps:"{count} 个链式步骤",reject:"拒绝",approve:"批准",result:"结果",aiMessage:"AI 消息",failedToLoadDetails:"加载详情失败。",loadingDetails:"加载详情中...",noDetails:"无可用详情。",raw:"原始数据",input:"输入",output:"输出",copy:"复制",view:"查看"},chainOfThought:{defaultHeader:"思维链"},commit:{clipboardUnavailable:"剪贴板不可用"},subagent:{instructions:"指令",tools:"工具",noDescription:"无描述",outputSchema:"输出模式"},terminal:{title:"终端",running:"运行中...",clipboardUnavailable:"剪贴板不可用"},context:{totalCost:"总费用",input:"输入",output:"输出",reasoning:"推理",cache:"缓存"},attachments:{source:"来源",image:"图片",attachment:"附件",imageAlt:"图片",remove:"移除",noAttachments:"无附件"},askUser:{placeholder:"输入回答..."},readonlyCodeBlock:{loading:"加载代码中..."}}},791728,(e,t,a)=>{t.exports={title:"命令面板",description:"搜索并执行命令",placeholder:"输入命令或搜索...",empty:"未找到匹配结果",noResults:"无搜索结果",typeKeyword:"输入关键词搜索..."}},101920,(e,t,a)=>{t.exports={title:"命令",addCommand:"添加命令",editCommand:"编辑命令",name:"名称",command:"命令",workingDirectory:"工作目录",shell:"Shell",environmentVariables:"环境变量",autoRestart:"自动重启",run:"运行",stop:"停止",save:"保存",cancel:"取消",delete:"删除",noCommands:"暂无命令",searchPlaceholder:"搜索命令...",import:"导入",importTitle:"从 package.json 导入命令",importDescription:"选择项目目录,解析 package.json 中的 scripts 字段",selectProject:"选择项目目录",parsedScripts:"解析的脚本",noScripts:"未找到 scripts",addSelected:"添加选中命令",customCommands:"自定义命令",folder:"分组"}},250044,(e,t,a)=>{t.exports={save:"保存",saved:"已保存",cancel:"取消",delete:"删除",confirm:"确认",search:"搜索",loading:"加载中...",noData:"暂无数据",upload:"上传",remove:"移除",add:"添加",edit:"编辑",open:"打开",close:"关闭",back:"返回",next:"下一步",retry:"重试",reset:"重置",error:"错误",success:"成功",manage:"管理",active:"活跃",name:"名称",description:"描述",status:"状态",actions:"操作",copy:"复制",copied:"已复制",create:"创建",saving:"保存中...",you:"你",user:"用户",refresh:"刷新",new:"新建",timeToday:"今天",timeYesterday:"昨天",timeThisWeek:"本周",timeEarlier:"更早",groupNone:"不分组",groupByTime:"按时间分组",groupByStatus:"按任务状态分组",sortByCreated:"按创建时间",sortByLastReply:"按最后回复",sortByStatus:"按状态",sortAsc:"正序",sortDesc:"倒序"}},55095,(e,t,a)=>{t.exports={openDialog:"打开对话框",newContent:"新建内容",placeholder:"输入内容,支持 @ 艾特人,输入 / 打开命令面板",heading:"标题",quote:"引用",divider:"分割线",addFile:"添加文件",dropzoneHint:"提示:拖拽文件到这里,或点击「添加文件」",send:"发送",sending:"发送中...",uploadFailed:"上传失败: {name}",noMatch:"无匹配结果",selectOption:"选择一个选项"}},291376,(e,t,a)=>{t.exports={autoSaved:"内容已自动保存",untitled:"未命名文档",knowledgeBase:"知识库",parentDir:"母目录",currentDoc:"当前文档",knowledgeTree:"多层级知识树",notionEditor:"Notion 编辑器",markdownEditor:"Markdown 编辑器",closeToc:"关闭目录",openToc:"打开目录",typographyAndFont:"排版风格与字体",themeSans:"无衬线现代 (Sans)",themeSerif:"衬线优雅风格 (Serif)",themeMono:"程序员等宽 (Mono)",viewHistory:"查看历史版本",pageWidth:"页面宽度",restoreWidth:"还原常规宽度",fullWidth:"宽尺寸自适应",cover:"封面:",autoSaveEnabled:"自动保存已开启",wordCount:"字数:",createdAt:"创建:",modifiedAt:"修改:",knowledgeEditor:"知识编辑器",emptyHint:"点击左侧目录树中的页面开始编辑,或点击上方按钮创建新文档。",shortcuts:"快捷键",globalSearch:"全局搜索",editorModeSwitch:"编辑器模式切换",topRightTab:"右上角标签",nestedArchive:"嵌套归档",sidebarDrag:"侧边栏拖拽",quickCreateFirst:"快速创建首篇文档",historyVersions:"历史版本",loadingHistory:"加载中...",loadHistoryFailed:"加载历史版本失败",noHistory:"暂无历史版本",selectVersionDiff:"选择一个版本查看 Diff",deleteConfirm:"确定删除数据库「{name}」及其所有节点?",createDatabase:"新建数据库",editDatabase:"编辑数据库",vectorSettings:"向量设置",deleteDatabase:"删除数据库",sidebarTree:"知识目录树",filterPlaceholder:"过滤文档标题...",newItem:"新建",newFolder:"新建文件夹",newDocument:"新建文档",importMarkdown:"导入 Markdown",noMatch:"未匹配到任何项",emptyState:"没有任何页面,点击上方新建",recentEdits:"最近编辑",trashBin:"回收站",versions:"个版本",justNow:"刚刚",minutesAgo:"分钟前",hoursAgo:"小时前",daysAgo:"天前",restore:"恢复"}},461438,(e,t,a)=>{t.exports={newFolder:"新建文件夹",folderNamePlaceholder:"文件夹名称",select:"选择",selectDirectory:"选择一个目录以检查权限"}},769778,(e,t,a)=>{t.exports={changes:{title:"更改",staged:"已暂存",unstaged:"未暂存",commitMessagePlaceholder:"提交信息 (⌘+Enter)",commit:"提交",committing:"提交中...",syncChanges:"同步更改",syncing:"同步中...",discardAll:"丢弃所有更改",discard:"丢弃",confirmDiscardAll:"确定要丢弃所有未提交的更改吗?此操作不可撤销。",confirmDiscardFile:"确定要丢弃 {file} 的更改吗?此操作不可撤销。",refresh:"刷新",editGitignore:"编辑 .gitignore",noChanges:"暂无更改",noBranches:"暂无分支",selectFileDiff:"选择文件查看差异",noChangesToShow:"没有可显示的更改",ignoreThisFile:"忽略此文件",ignoreFilePath:"忽略 {path}",syncedSuccessfully:"同步成功",syncFailed:"同步失败",failedCommitMessage:"生成提交信息失败",committedSuccessfully:"提交成功",commitFailed:"提交失败",discardedSuccessfully:"已丢弃更改",discardFailed:"丢弃失败",viewDiff:"查看未提交差异",unstagedChanges:"未提交更改"},commits:{title:"提交",titleWithCount:"提交 ({count})",pushNCommits:"推送 {count} 个提交",pullNCommits:"拉取 {count} 个提交",noCommits:"暂无提交",operationLog:"操作日志",operationLogTitle:"Git 操作日志 ({count} 条)",noOperations:"暂无操作记录",settingsTitle:"Git 设置",remoteTrackingBranch:"远程跟踪分支",pushedSuccessfully:"推送成功",pushFailed:"推送失败",pulledSuccessfully:"拉取成功",pullFailed:"拉取失败",remoteAdded:"远程仓库已添加",detailFileCount:"{count} 个文件",contextMenu:{openChanges:"打开更改",openOnGitHub:"在 GitHub 上打开",checkout:"检出",checkoutDetached:"检出 (分离 HEAD)",createBranch:"创建分支...",deleteBranch:"删除分支",createTag:"创建标签...",cherryPick:"Cherry Pick",compareWithRemote:"与远程比较",compareWithMergeBase:"与合并基准比较",compareWith:"与...比较",copyCommitId:"复制 Commit ID",copyCommitMessage:"复制提交信息",addToChat:"添加到聊天",explainChanges:"解释更改",branchName:"分支名称",tagName:"标签名称",branchToDelete:"要删除的分支",comparingWith:"正在与 {hash} 比较",checkedOut:"已检出",cherryPicked:"已 Cherry Pick",branchCreated:"分支已创建",branchDeleted:"分支已删除",tagCreated:"标签已创建",commitIdCopied:"Commit ID 已复制",commitMessageCopied:"提交信息已复制",failed:"操作失败"}},graph:{title:"图谱"},remote:{bindTitle:"绑定远程仓库",nameLabel:"远程名称",namePlaceholder:"origin",urlLabel:"远程 URL",urlPlaceholder:"https://github.com/user/repo.git",adding:"添加中...",addRemote:"添加远程仓库"},notInitialized:{message:"不是 Git 仓库",initializing:"初始化中...",initialize:"初始化 Git 仓库"},settings:{title:"Git 设置",globalScope:"全局设置",localScope:"当前仓库设置",globalScopeDescription:"这些设置将应用到所有 Git 仓库",localScopeDescription:"这些设置仅应用到当前仓库",name:"用户名",namePlaceholder:"输入 Git 用户名",email:"邮箱",emailPlaceholder:"输入 Git 邮箱",proxy:"HTTP 代理",proxyPlaceholder:"例如 http://127.0.0.1:7890",remoteUrl:"远程仓库地址",remoteUrlPlaceholder:"例如 https://github.com/user/repo.git",saved:"设置已保存",saveFailed:"保存设置失败",loading:"加载中..."}}},768922,(e,t,a)=>{t.exports={table:{agent:"Agent",model:"模型",modelUnknown:"未知",summary:"摘要",cost:"费用",total:"总计:",cacheHit:"缓存命中:",tokensIn:"输入",tokensOut:"输出",status:"状态",duration:"耗时",time:"时间",emptyMessage:"Agent 运行完成后,使用记录将显示在此处。",noResults:"暂无结果。"},period:{today:"今日","7d":"7 天","30d":"30 天","1y":"1 年",custom:"自定义"},title:"Agent 用量",metric:{agentRuns:"Agent 运行次数",agentRunsHelper:"已完成运行",tokensUsed:"Token 用量",tokensIn:"输入",totalCost:"总费用",totalCostHelper:"预估花费",avgDuration:"平均耗时",avgDurationHelper:"每次运行"},chart:{dailyTokenUsage:"每日 Token 用量",input:"输入",output:"输出",costByModel:"按模型费用",noUsageRecords:"暂无已完成的用量记录。",tokenDistribution:"Token 分布",costDistribution:"费用分布",tokens:"tokens",totalCost:"总费用",noCostData:"暂无费用数据。",noTokenData:"暂无 Token 数据"},pagination:{showing:"显示",to:"至",of:"共",entries:"条",prevAriaLabel:"上一页",previous:"上一页",nextAriaLabel:"下一页",next:"下一页"},time:{justNow:"刚刚",minutesAgo:"{n} 分钟前",hoursAgo:"{n} 小时前",daysAgo:"{n} 天前"},subscription:{planTitle:"订阅计划",addPlatform:"订阅计划",title:"管理订阅平台",empty:"暂无订阅平台,点击下方按钮添加",add:"添加平台",cancel:"取消",save:"保存",platform:"平台",label:"名称",labelPlaceholder:"给这个配置取个名字(可选)",loading:"加载中...",resetAt:"重置于",headers:"请求头 (Headers)",addHeader:"添加",noHeaders:"暂无请求头",cookiePlaceholder:"粘贴浏览器 Cookie",editTitle:"编辑订阅平台",networkError:"网络错误",limitTypes:{TIME_LIMIT:"时间额度",TOKENS_LIMIT:"Token 额度","MiniMax-M*":"MiniMax-M*","coding-plan-vlm":"Coding Plan VLM","coding-plan-search":"Coding Plan Search",balance:"余额",bonusBalance:"赠送余额"}}}},358389,(e,t,a)=>{t.exports={status:{draft:"草稿",planned:"已规划",in_progress:"进行中",review_pending:"待审核",changes_requested:"需修改",approved:"已批准",completed:"已完成",archived:"已归档",error:"错误"},list:{title:"议题",emptyTitle:"暂无议题",emptyDescription:"创建一个议题开始协作",addIssue:"添加议题",taskCount:"{count} 个任务",archive:"归档",unarchive:"取消归档",archived:"已归档",clearArchived:"清空归档",clearArchivedConfirm:"确认删除 {count} 个已归档的议题?此操作不可撤销。"},detail:{selectIssue:"选择一个议题查看详情",commentPlaceholder:"写评论... 使用 @ 提及 Agent,输入 / 打开命令",openChatChannel:"打开聊天频道",memberCount:"{count} 位成员",created:"创建于",updated:"更新于",pr:"PR:",start:"开始",continue:"继续",interrupt:"中断",continuousRun:"连续运行",resumeFailed:"重试失败任务",retryPaused:"自动重试已在 {failed}/{total} 次尝试后暂停。",tasks:"任务 ({count})",editTask:"编辑任务",addTask:"添加任务",taskTitlePlaceholder:"任务标题",taskDescriptionPlaceholder:"描述(可选)",noTasks:"暂无任务",noAgent:"未分配 Agent",comments:"评论 ({count})",author:"作者",commented:"评论了",comment:"评论",tabInfo:"信息",tabMembers:"成员",infoStatus:"状态",infoIssueId:"议题 ID",infoTaskCount:"任务数",infoMemberCount:"成员数",infoCreatedAt:"创建时间",infoUpdatedAt:"更新时间",infoBranch:"分支",infoPr:"PR",infoDescription:"描述",addMember:"添加成员",deleteIssue:"删除议题"},message:{task:"任务 {taskId}",openMessage:"打开消息",expandMore:"展开更多",collapse:"收起"},edit:{title:"编辑议题",description:"修改议题信息、状态和成员",titlePlaceholder:"标题",descriptionPlaceholder:"描述",statusLabel:"状态",membersLabel:"成员",searchAgent:"搜索 Agent...",noAgents:"无可用 Agent"},create:{title:"创建议题",description:"创建一个新的议题并指定成员",titlePlaceholder:"标题",descriptionPlaceholder:"描述(可选)",membersLabel:"成员",searchAgent:"搜索 Agent...",noAgents:"无可用 Agent",submit:"创建"}}},344160,(e,t,a)=>{t.exports={searchPlaceholder:"搜索...",priorityAll:"全部",priorityHigh:"高",priorityMedium:"中",priorityLow:"低",newCard:"新建卡片",section:"分区",vertical:"垂直",horizontal:"水平",noSections:"暂无分区",addSection:"添加分区",newSection:"新建分区",emptySection:"空分区",dropHint:"卡片可以拖放到这里",addTask:"添加任务",confirm:"确认",no:"否",taskDetails:"任务详情",title:"标题",titlePlaceholder:"任务标题",descriptionLabel:"描述",descriptionPlaceholder:"任务描述...",sectionLabel:"分区",selectSection:"选择分区...",dueDate:"截止日期",priority:"优先级",high:"高",medium:"中",low:"低",done:"已完成",archived:"已归档",deleteConfirm:"删除?",yes:"是",editSection:"编辑分区",sectionName:"分区名称",sectionNamePlaceholder:"例如:待办、审核",theme:"主题",newTask:"新任务",useTemplate:"使用模板",manageSections:"管理分区"}},338832,(e,t,a)=>{t.exports={subtitle:"输入密钥以继续",secretPlaceholder:"密钥(如未设置可留空)",verifying:"验证中...",login:"登录",loginFailed:"登录失败",networkError:"网络错误",manageServers:"管理服务器"}},652137,(e,t,a)=>{t.exports={title:"MCP 服务器管理",description:"管理和导入 MCP 服务器配置,绑定到智能体",import:"导入",importTitle:"导入 MCP 配置",importConfirm:"确认导入",importInvalidJson:"JSON 格式无效",importFailed:"导入失败",filterAll:"全部",filterFavorites:"收藏",filterByAgent:"按智能体过滤",search:"搜索 MCP 服务器...",empty:"暂无 MCP 服务器配置",apply:"应用",delete:"删除",editTitle:"编辑 MCP - {name}",editDescription:"编辑 MCP 服务器配置(JSON)",bindTitle:"绑定智能体 - {name}",bindDescription:"选择要绑定此 MCP 服务器的智能体"}},340074,(e,t,a)=>{t.exports={capability:{vision:"视觉",reasoning:"推理",embedding:"嵌入"},error:{saveFailed:"保存模型失败",deleteFailed:"删除模型失败"},confirm:{delete:"删除此模型?"},dialog:{editTitle:"编辑模型",addTitle:"添加模型",title:"模型",editDescription:"配置模型属性和能力",listDescription:"管理可用的 LLM 模型",add:"添加",loading:"加载模型中..."},list:{contextAbbr:"上下文",empty:"暂无模型"},form:{details:"详情",modelId:"模型 ID",modelIdPlaceholder:"例如 gpt-4o",displayName:"显示名称",displayNamePlaceholder:"例如 GPT-4o",provider:"供应商",context:"上下文",maxContextTokens:"最大上下文 Token",customContextPlaceholder:"128000",thinking:"思考",enableThinking:"启用思考",enableThinkingHelper:"随模型请求发送推理/思考选项。",effort:"投入度",cost:"费用",inputPerMillion:"输入 / 百万 Token",outputPerMillion:"输出 / 百万 Token",costPlaceholder:"0.00",capabilities:"能力"}}},596772,(e,t,a)=>{t.exports={title:"输出风格管理",description:"管理输出风格模板,定义 Agent 的回复风格、语气和格式",search:"搜索输出风格...",empty:"暂无输出风格模板",create:"新建",createTitle:"新建输出风格",editTitle:"编辑输出风格 - {name}",editDescription:"编辑输出风格内容",namePlaceholder:"风格名称",descriptionPlaceholder:"风格描述(可选)",contentPlaceholder:"定义回复风格、语气、格式要求。例如:使用简洁的中文回复,代码使用 TypeScript,解释要直截了当...",delete:"删除",import:"导入",importTitle:"导入输出风格文件",importPlaceholder:"拖拽 .md 或 .txt 文件到此处,或点击选择",importConfirm:"确认导入",tabLocal:"本地",tabStore:"商店",storeEmpty:"商店暂无输出风格",importTo:"导入",imported:"已导入",importing:"导入中...",apply:"应用",applyTitle:"应用「{name}」到 Agent",applyDescription:"选择要应用此输出风格的 Agent",applyConfirm:"应用到 {count} 个 Agent"}},810530,(e,t,a)=>{t.exports={title:"项目设置",loading:"加载中...",workspaceNotFound:"未找到工作空间",info:{title:"信息",path:"路径",channels:"频道",issues:"议题"},automation:{title:"自动化",autoProcess:"自动处理议题",autoProcessDescription:"调度者将自动规划和执行开放议题"},hooks:{title:"Hooks",enableHooks:"启用 Hooks",enableHooksDescription:"为此工作空间启用每次工具调用的钩子"},notifications:{title:"通知",messageNotifications:"消息通知",messageNotificationsDescription:"将议题进度和最终任务结果推送到外部聊天平台",lark:"飞书",wechat:"微信",appId:"app_id",appSecret:"app_secret",stopService:"停止服务",startService:"启动服务",testSend:"测试发送",saveSuccess:"通知设置已保存",saveFailed:"保存通知设置失败",startSuccess:"通知服务已启动",startFailed:"启动通知服务失败",stopSuccess:"通知服务已停止",stopFailed:"停止通知服务失败",testSuccess:"测试通知已发送",testFailed:"发送测试通知失败",native:"系统通知",nativeDescription:"通过操作系统原生通知在本地推送议题进度和任务结果",nativePermissionGranted:"已授权",nativePermissionDenied:"已拒绝",nativePermissionDefault:"未授权",nativePermissionUnsupported:"不支持",nativeRequestPermission:"授权通知",nativeTestSuccess:"系统通知已发送",nativeTestSent:"通知已发送,若未弹出请检查系统设置:设置 > 通知 > 浏览器",nativeTestFailed:"发送系统通知失败",nativePermissionGrantedToast:"通知权限已授权",nativePermissionDeniedToast:"通知权限被拒绝",androidOngoingTaskNotification:"常驻任务通知",androidOngoingTaskNotificationDescription:"任务变化时更新系统通知面板中的常驻通知。仅 Android 生效,可能需要前台服务支持。",selectRobotAccount:"选择 Robot 账号",noRobotAccount:"暂无账号,请先在设置中添加",addRobotAccount:"去添加"},wechat:{robot:"微信 iLink 机器人",connected:"已连接:{accountId}",scanned:"已扫码,请在手机上确认登录。",expired:"二维码已过期,请刷新获取新的。",scanQr:"使用微信扫描二维码以授权机器人。",refreshLogin:"刷新登录",getQr:"获取二维码",status:"状态:{status}",loginUrl:"登录 URL:{url}",connectedToast:"微信机器人已连接",pollFailed:"轮询微信二维码状态失败",getQrFailed:"获取微信二维码失败"},botAgent:{title:"Bot Agent",selectAgent:"未选择 Agent",manage:"管理"},events:{title:"通知事件",issueStarted:"议题开始",issueCompleted:"议题完成",taskCompleted:"任务完成",channelAgentCompleted:"频道 Agent 回复完成"},prompt:{title:"Prompt",workspacePrompt:"工作空间 Prompt",description:"应用于此工作空间中的每次 Agent 运行",savePrompt:"保存 Prompt",saveSuccess:"工作空间 Prompt 已保存",saveFailed:"保存工作空间 Prompt 失败"}}},489504,(e,t,a)=>{t.exports={title:"提示词管理",description:"管理提示词模板,批量应用到智能体",search:"搜索提示词...",empty:"暂无提示词模板",create:"新建",createTitle:"新建提示词模板",editTitle:"编辑提示词 - {name}",editDescription:"编辑提示词内容",namePlaceholder:"提示词模板名称",apply:"应用",applyTitle:"应用到智能体 - {name}",applyDescription:"选择要应用此提示词的智能体,将直接替换其系统提示词",applyConfirm:"应用到 {count} 个智能体",searchAgents:"搜索智能体...",noAgents:"暂无智能体",delete:"删除",import:"导入",importTitle:"导入提示词文件",importPlaceholder:"拖拽 .md 或 .txt 文件到此处,或点击选择",importConfirm:"确认导入",tabLocal:"本地",tabStore:"商店",storeEmpty:"商店暂无提示词",importTo:"导入",imported:"已导入",importing:"导入中..."}},996179,(e,t,a)=>{t.exports={error:{saveFailed:"保存供应商失败",deleteFailed:"删除供应商失败"},confirm:{delete:"删除此供应商?"},dialog:{editTitle:"编辑供应商",addTitle:"添加供应商",title:"供应商",editDescription:"配置供应商连接设置",listDescription:"管理 LLM API 供应商",add:"添加",loading:"加载供应商中..."},list:{noApiBase:"未配置 API 地址",modelsCount:"个模型",addModel:"添加模型",empty:"暂无供应商"},form:{connection:"连接",name:"名称",namePlaceholder:"例如 Anthropic",apiBase:"API 地址",apiBasePlaceholder:"https://api.anthropic.com",apiKey:"API 密钥",apiKeyPlaceholder:"sk-..."}}},754924,(e,t,a)=>{t.exports={title:"Robot 账号",description:"管理飞书和微信 Bot 账号凭证,工作空间通知配置时可直接引用",addAccount:"添加账号",editAccount:"编辑账号",deleteAccount:"删除账号",deleteConfirm:"确定删除此账号?已关联的工作空间通知将无法使用。",name:"名称",namePlaceholder:"例如:公司飞书Bot",type:"类型",noAccounts:"暂无 Robot 账号",noAccountsDesc:"点击上方「添加账号」创建飞书或微信 Bot 账号",lark:"飞书",wechat:"微信",addLark:"添加飞书账号",addWechat:"添加微信账号",larkFields:{appId:"App ID",appSecret:"App Secret"},wechatFields:{token:"Token",accountId:"Account ID",baseUrl:"Base URL"},createSuccess:"账号创建成功",createFailed:"创建账号失败",updateSuccess:"账号更新成功",updateFailed:"更新账号失败",deleteSuccess:"账号已删除",deleteFailed:"删除账号失败",wechatQrDescription:"使用微信扫描二维码,登录后自动创建账号",getQr:"获取二维码",refreshQr:"刷新二维码",wechatWaitScan:"等待扫码...",wechatScanned:"已扫码,请在手机上确认登录",wechatExpired:"二维码已过期,请刷新",save:"保存",cancel:"取消"}},293216,(e,t,a)=>{t.exports={title:"设置",description:"自定义工作空间外观",userAvatar:"用户头像",theme:"主题",themeLight:"浅色",themeDark:"深色",themeSystem:"跟随系统",language:"语言",languageZh:"中文",languageEn:"English",security:"安全",robots:"Robot 账号",newSecretPlaceholder:"新的密钥(留空则移除)",redirecting:"正在跳转到登录页...",zoom:"页面缩放",zoomReset:"重置",showWorkspaceTabs:"显示工作空间标签栏",autoActivateWorkspace:"启动时自动打开上一次工作空间",layout:"布局",resetLayout:"恢复默认布局",speech:"语音识别",speechDescription:"配置语音识别服务商凭据",speechProvider:"服务商",speechTencent:"腾讯云",speechAppId:"App ID",speechSecretId:"Secret ID",speechSecretKey:"Secret Key",speechNoConfig:"暂无语音识别配置",speechAddConfig:"添加配置",git:"Git",agentStore:"在线商店",storeApiBase:"商店 API 地址",storeApiBaseDesc:"配置在线 Agent 资源商店的基础 URL,留空则使用本地内置资源。适用于 output-styles、prompt 模板、skills 等资源的在线获取。",save:"保存",font:"字体",fontPlaceholder:"默认字体",fontSearch:"搜索字体...",addCustomFont:"添加自定义字体",addCustomFontDesc:"上传字体文件或输入在线字体 URL",fontUpload:"上传字体",fontOnlineUrl:"在线字体",fontUploadPlaceholder:"拖拽字体文件到此处,支持 .ttf .otf .woff .woff2",fontUrlHint:"输入字体文件的直链 URL(如 Google Fonts 的 woff2 文件地址)",fontAdded:"字体已添加",fontAddFailed:"字体添加失败",about:"关于",aboutInfo:"项目信息",aboutVersion:"当前版本",aboutLatestVersion:"最新版本",aboutPlatform:"运行平台",aboutLinks:"链接",aboutUpdates:"更新",aboutAutoCheck:"自动检查更新",aboutCheckNow:"检查更新",aboutChecking:"正在检查...",aboutCheckFailed:"检查更新失败",aboutNewVersion:"发现新版本:v{version}",aboutUpdateNow:"立即更新",aboutUpToDate:"已是最新版本",aboutUpdateConfirmTitle:"确认更新",aboutUpdateConfirmDesc:"应用将停止并重启以安装更新,请确保已保存所有工作。",aboutUpdating:"正在更新并重启...",aboutDevMode:"开发模式下更新检查已禁用",shortcuts:"快捷键",openCommandPalette:"打开命令窗口",toggleSidebar:"切换侧边栏",recordingShortcut:"按下快捷键...",recordShortcut:"录制快捷键",resetShortcut:"重置快捷键"}},433509,(e,t,a)=>{t.exports={nav:{home:"首页",workspaces:"工作空间",addWorkspace:"添加工作空间",settings:"设置",general:"通用",agents:"智能体",skills:"技能管理",prompts:"提示词管理",outputStyles:"输出风格",mcps:"MCP 服务器",models:"模型",providers:"供应商",workflows:"工作流",hooks:"Hooks",tools:"工具管理",commands:"Commands"},notifications:{openAriaLabel:"打开通知",title:"通知",viewAll:"查看所有通知",centerTitle:"通知中心",empty:"暂无通知",clearAll:"清空",markAllRead:"全部已读",backToList:"返回列表",type:{issue_completed:"Issue 完成",issue_failed:"Issue 失败",task_completed:"Task 完成",task_failed:"Task 失败",channel_agent_completed:"Agent 执行完成"},delete:"删除"},server:{servers:"服务器",addServer:"添加服务器",manageServers:"管理服务器",editServer:"编辑服务器",editDescription:"更新服务器连接信息。",addDescription:"添加 API 服务器连接。",manageDescription:"添加、编辑或移除 API 服务器连接。",url:"URL",secret:"密钥",secretPlaceholder:"可选 API 密钥",secretOptionalPlaceholder:"密钥(可选)",newServer:"新服务器",switch:"切换"}}},818018,(e,t,a)=>{t.exports={title:"技能管理",description:"管理和导入技能文件,绑定到智能体",import:"导入",importTitle:"导入技能文件",importPlaceholder:"拖拽 .md 文件到此处,或点击选择",importConfirm:"确认导入",filterAll:"全部技能",filterFavorites:"收藏",filterByAgent:"按智能体过滤",search:"搜索技能...",empty:"暂无技能",manageAgents:"管理",apply:"应用",delete:"删除",revealFolder:"打开所在文件夹",editTitle:"编辑技能 - {name}",editDescription:"编辑技能 Markdown 内容",bindTitle:"绑定智能体 - {name}",bindDescription:"选择要绑定此技能的智能体",searchAgents:"搜索智能体...",syncToAgents:"更新到智能体",syncTitle:"同步技能到智能体",syncDescription:"以下智能体的技能文件已过时,勾选需要更新的项目",syncEmpty:"所有智能体的技能已是最新",syncConfirm:"确认更新",syncSuccess:"已更新 {count} 个技能文件",importFromMd:"导入 .md 文件",importFromFolder:"导入文件夹",importFromZip:"导入 ZIP",importFromGit:"从 Git 导入",importFromGitDesc:"输入 Git 仓库地址,将自动 clone 并查找 SKILL.md 文件",importPreviewTitle:"导入预览",importPreviewGroupPlaceholder:"分组名称(可选)",importPreviewNamePlaceholder:"技能名称",importPreviewSelected:"确认导入 ({selected}/{total})",importPreviewSelectAll:"全选",importPreviewDeselectAll:"取消全选",importPreviewConfirm:"确认导入 ({selected}/{total})",importPreviewCancel:"取消",importPreviewEmpty:"没有可导入的内容",filterGroups:"分组",filterNoGroup:"无分组",toggleAll:"全部启用",applyAllToAgent:"应用到智能体",applyAllToAgentDescription:"选择要应用所有技能的智能体",tabLocal:"本地",tabStore:"商店",storeEmpty:"商店暂无技能",importTo:"导入",imported:"已导入",importing:"导入中..."}},355643,(e,t,a)=>{t.exports={status:{pending:"待处理",running:"运行中",reviewing:"审核中",waiting_review:"等待审核",retrying:"重试中",done:"完成",failed:"失败",cancelled:"已取消"}}},844907,(e,t,a)=>{t.exports={newTerminal:"新建终端",noSession:"无终端会话",selectWorkingDirectory:"选择工作目录",selectWorkingDirectoryDescription:"此工作空间绑定了多个目录。请选择用于此终端的目录。",virtualKeyboard:"键盘",sendCtrlC:"退出",clearScreen:"清屏",editInput:"编辑",sendInput:"发送",mobileInputPlaceholder:"输入终端内容...",pasteCommand:"粘贴命令",pasteCommandDescription:"编辑命令后点击确认,将逐行发送到终端",pasteCommandPlaceholder:"每行一条命令...",cancel:"取消",confirm:"确认"}},782102,(e,t,a)=>{t.exports={title:"工具管理",search:"搜索工具...",empty:"没有找到工具",filterAll:"全部",detailTitle:"工具详情",enabledCount:"已启用 {count}/{total} 个工具",selectTools:"选择工具",selectAll:"全选",deselectAll:"取消全选",categories:{channel:"频道管理",terminal:"终端/命令",database:"知识库",kanban:"看板"}}},663680,(e,t,a)=>{t.exports={dialog:{editTitle:"编辑工作空间",newTitle:"新建工作空间",editDescription:"更新工作空间设置。",newDescription:"创建新的工作空间并绑定到本地目录。",namePlaceholder:"工作空间名称"},agents:"智能体",addAgent:"添加智能体",noAgents:"此工作空间暂无智能体",clone:{createFromGit:"从 Git 创建",fromGitTooltip:"从 Git 仓库克隆",selectFolderFirst:"请先选择目标文件夹",title:"从 Git 创建",description:"输入 Git 仓库地址,克隆到选定的文件夹中。",cloneTo:"将克隆到: ",objects:"个对象",cloning:"克隆中...",clone:"克隆",cloneFailed:"克隆失败",noResponseBody:"无响应内容",phase:{counting:"计算对象中...",compressing:"压缩中...",receiving:"接收数据中...",resolving:"解析中...",done:"完成",error:"失败"}}}},121580,(e,t,a)=>{t.exports={title:"工作空间",newWorkspace:"新建工作空间",emptyMessage:"暂无工作空间。创建一个以开始使用。",edit:"编辑",reveal:"在 Finder 中打开",delete:"删除工作空间",deleteConfirm:"确定要删除工作空间「{name}」吗?此操作不可撤销。"}},656332,(e,t,a)=>{t.exports={panel:{title:"Worktrees",empty:"暂无 Worktree",emptyHint:"创建独立分支环境,为 AI 提供隔离的编码空间",create:"创建 Worktree"},card:{active:"活跃",merged:"已合并",switch:"切换",diff:"审查 Diff",createPR:"创建 PR",viewPR:"查看 PR",merge:"合并",delete:"删除",branch:"分支",agent:"Agent",issue:"Issue",createdAt:"创建于",confirmDelete:"确认删除该 Worktree?未提交的变更将丢失。",current:"当前"},prDialog:{title:"创建 PR",prTitle:"标题",body:"PR 正文",bodyPlaceholder:"描述这个 Pull Request 的变更内容",generate:"AI 生成 PR 正文",cancel:"取消",submit:"创建 PR"},dialog:{createTitle:"创建 Worktree",name:"名称",namePlaceholder:"例如:feature-auth",branch:"分支名(可选)",branchPlaceholder:"留空自动生成",agent:"关联 Agent(可选)",issue:"关联 Issue(可选)",creating:"创建中..."}}},556106,e=>{"use strict";var t=e.i(344180),a=e.i(764556),o=e.i(799543),s=e.i(972725);function i({locale:e,...a}){if(!e)throw Error(void 0);return(0,t.jsx)(s.IntlProvider,{locale:e,...a})}var n=e.i(740761),r=e.i(603391),l=e.i(895746),c=e.i(506978),d=e.i(133154),p=e.i(527759),m=e.i(210846),u=e.i(273652),h=e.i(419199),g=e.i(377073),f=e.i(800407),y=e.i(146674),x=e.i(393680),v=e.i(587985),b=e.i(289823),k=e.i(469656),C=e.i(128845),S=e.i(218483),A=e.i(849212),w=e.i(102882),T=e.i(315325),P=e.i(394291),N=e.i(147816),D=e.i(155778),j=e.i(340508),I=e.i(919800),M=e.i(856936),F=e.i(14315),R=e.i(985449),L=e.i(199296),U=e.i(405159);let E={agent:n.default,agentCommands:r.default,chat:l.default,commandPalette:c.default,commands:d.default,common:p.default,composer:m.default,database:u.default,editor:h.default,folderPicker:g.default,git:f.default,home:y.default,issue:x.default,kanban:v.default,login:b.default,mcps:k.default,models:C.default,outputStyles:S.default,projectSettings:A.default,prompts:w.default,providers:T.default,robotAccounts:P.default,settings:N.default,sidebar:D.default,skills:j.default,task:I.default,terminal:M.default,tools:F.default,workspace:R.default,workspaces:L.default,worktree:U.default};var B=e.i(334040),O=e.i(321811),z=e.i(488180),W=e.i(791728),G=e.i(101920),H=e.i(250044),K=e.i(55095),_=e.i(291376),V=e.i(684198),q=e.i(461438),Q=e.i(769778),J=e.i(768922),$=e.i(358389),Z=e.i(344160),Y=e.i(338832),X=e.i(652137),ee=e.i(340074),et=e.i(596772),ea=e.i(810530),eo=e.i(489504),es=e.i(996179),ei=e.i(754924),en=e.i(293216),er=e.i(433509),el=e.i(818018),ec=e.i(355643),ed=e.i(844907),ep=e.i(782102),em=e.i(663680),eu=e.i(121580),eh=e.i(656332);let eg={agent:B.default,agentCommands:O.default,chat:z.default,commandPalette:W.default,commands:G.default,common:H.default,composer:K.default,database:_.default,editor:V.default,folderPicker:q.default,git:Q.default,home:J.default,issue:$.default,kanban:Z.default,login:Y.default,mcps:X.default,models:ee.default,outputStyles:et.default,projectSettings:ea.default,prompts:eo.default,providers:es.default,robotAccounts:ei.default,settings:en.default,sidebar:er.default,skills:el.default,task:ec.default,terminal:ed.default,tools:ep.default,workspace:em.default,workspaces:eu.default,worktree:eh.default},ef="agent-spaces-locale",ey={en:E,zh:eg},ex=(0,a.createContext)({locale:"zh",setLocale:()=>{}});function ev(e){return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}function eb(){let e=localStorage.getItem(ef);return"en"===e||"zh"===e?e:"zh"}function ek(){return"zh"}e.s(["LocaleProvider",0,function({children:e}){(0,o.useServerInsertedHTML)(()=>(0,t.jsx)("script",{dangerouslySetInnerHTML:{__html:`(function(){try{var l=localStorage.getItem('${ef}');document.documentElement.lang=(l==='en')?'en':'zh-CN'}catch(e){}})()`}},"locale-init"));let s=(0,a.useSyncExternalStore)(ev,eb,ek),n=(0,a.useCallback)(e=>{localStorage.setItem(ef,e),document.documentElement.lang="zh"===e?"zh-CN":"en",window.dispatchEvent(new StorageEvent("storage",{key:ef}))},[]);return(0,t.jsx)(ex.Provider,{value:{locale:s,setLocale:n},children:(0,t.jsx)(i,{locale:s,messages:ey[s],children:e})})},"useLocale",0,function(){return(0,a.useContext)(ex)}],556106)},799773,e=>{"use strict";let t=(0,e.i(433721).default)("user",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);e.s(["User",0,t],799773)},324216,e=>{"use strict";var t=e.i(344180),a=e.i(465458),o=e.i(799773),s=e.i(951841),i=e.i(523592);let n={sm:"size-8 [&>svg]:size-3",md:"size-10 [&>svg]:size-4",lg:"size-12 [&>svg]:size-5"};e.s(["UserIcon",0,function({size:e="lg",className:r}){let l=(0,s.useUserAvatar)(),c=(0,i.resolveServerAssetUrl)(l);return(0,t.jsx)("div",{className:(0,a.cn)("rounded-full overflow-hidden border border-input flex items-center justify-center shrink-0",n[e],c?"":"bg-muted",r),children:c?(0,t.jsx)("img",{src:c,alt:"User",className:"size-full object-cover"}):(0,t.jsx)(o.User,{className:"text-muted-foreground"})})}])},348085,758960,797161,767848,710858,e=>{"use strict";var t=e.i(433721);let a=(0,t.default)("palette",[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]]);e.s(["Palette",0,a],348085);let o=(0,t.default)("shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}]]);e.s(["Shield",0,o],758960);let s=(0,t.default)("mic",[["path",{d:"M12 19v3",key:"npa21l"}],["path",{d:"M19 10v2a7 7 0 0 1-14 0v-2",key:"1vc78b"}],["rect",{x:"9",y:"2",width:"6",height:"13",rx:"3",key:"s6n7sd"}]]);e.s(["Mic",0,s],797161);var i=e.i(344180),n=e.i(764556),r=e.i(244073),l=e.i(950396),c=e.i(465458);let d=(0,t.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]),p=(0,t.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]);var m=e.i(92457),u=e.i(357301),h=e.i(953700),g=e.i(226624),f=e.i(607452),y=e.i(260218),x=e.i(515104),v=e.i(188815),b=e.i(437122),k=e.i(209988),C=e.i(681622),S=e.i(812057),A=e.i(460578),w=e.i(62669),T=e.i(882469),P=e.i(129981),N=e.i(360112);function D({open:e,onOpenChange:t,onFontAdded:a}){let o=(0,r.useTranslations)("settings"),[s,l]=(0,n.useState)(!1),[c,d]=(0,n.useState)(""),[p,m]=(0,n.useState)([]),u=(0,n.useCallback)(()=>{d(""),m([]),l(!1)},[]),h=(0,n.useCallback)(e=>{e||u(),t(e)},[t,u]),g=async()=>{if(0!==p.length){l(!0);try{let e=p[0].file,t=await new Promise((t,a)=>{let o=new FileReader;o.onload=()=>{let e=o.result;t(e.split(",")[1]||e)},o.onerror=a,o.readAsDataURL(e)}),s=await (0,b.fetchWithAuth)("/api/fonts/upload",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e.name,content:t})});if(s.ok){let e=await s.json();N.toast.success(o("fontAdded")),a(e.url,e.name),h(!1)}else N.toast.error(o("fontAddFailed"))}catch{N.toast.error(o("fontAddFailed"))}finally{l(!1)}}},f=async()=>{if(c.trim()){l(!0);try{let e=c.trim(),t=e.split("/").pop()||"custom-font";N.toast.success(o("fontAdded")),a(e,t),h(!1)}catch{N.toast.error(o("fontAddFailed"))}finally{l(!1)}}};return(0,i.jsx)(k.Dialog,{open:e,onOpenChange:h,children:(0,i.jsxs)(k.DialogContent,{className:"sm:max-w-[480px]",children:[(0,i.jsxs)(k.DialogHeader,{children:[(0,i.jsx)(k.DialogTitle,{children:o("addCustomFont")}),(0,i.jsx)(k.DialogDescription,{children:o("addCustomFontDesc")})]}),(0,i.jsxs)(S.Tabs,{defaultValue:"upload",className:"w-full flex flex-col gap-3",children:[(0,i.jsxs)(S.TabsList,{className:"w-full grid grid-cols-2",children:[(0,i.jsxs)(S.TabsTrigger,{value:"upload",className:"gap-1 text-xs",children:[(0,i.jsx)(P.Upload,{className:"size-3"}),o("fontUpload")]}),(0,i.jsxs)(S.TabsTrigger,{value:"url",className:"gap-1 text-xs",children:[(0,i.jsx)(T.Globe,{className:"size-3"}),o("fontOnlineUrl")]})]}),(0,i.jsxs)(S.TabsContent,{value:"upload",className:"space-y-3 pt-2",children:[(0,i.jsx)(A.FileUpload,{value:p,onChange:m,accept:{"font/*":[".ttf",".otf",".woff",".woff2"]},maxFiles:1,placeholder:o("fontUploadPlaceholder")}),(0,i.jsx)(y.Button,{className:"w-full",onClick:g,disabled:0===p.length||s,children:s?(0,i.jsx)(w.Loader2,{className:"size-4 animate-spin"}):o("fontUpload")})]}),(0,i.jsxs)(S.TabsContent,{value:"url",className:"space-y-3 pt-2",children:[(0,i.jsx)(C.Input,{placeholder:"https://fonts.gstatic.com/s/...",value:c,onChange:e=>d(e.target.value),onKeyDown:e=>"Enter"===e.key&&f()}),(0,i.jsx)("p",{className:"text-xs text-muted-foreground",children:o("fontUrlHint")}),(0,i.jsx)(y.Button,{className:"w-full",onClick:f,disabled:!c.trim()||s,children:s?(0,i.jsx)(w.Loader2,{className:"size-4 animate-spin"}):o("fontOnlineUrl")})]})]})]})})}let j=[{value:"",label:"Default"},{value:"DM Sans",label:"DM Sans"},{value:"Inter",label:"Inter"},{value:"Roboto",label:"Roboto"},{value:"system-ui",label:"System UI"},{value:"Arial",label:"Arial"},{value:"Helvetica",label:"Helvetica"},{value:"Georgia",label:"Georgia"},{value:"Times New Roman",label:"Times New Roman"},{value:"Courier New",label:"Courier New"},{value:"Menlo",label:"Menlo"},{value:"monospace",label:"Monospace"}],I="customFont",M="customFonts",F=["--font-app","--font-sans","--font-heading","--font-mid","--font-mono"];function R(e,t){let a=e?j.find(t=>t.value===e)?e:t.find(t=>t.name===e)?`"${L(e)}"`:e:'"Helvetica Neue", Helvetica, Arial, sans-serif';for(let t of(document.documentElement.dataset.customFont=e?"true":"false",F))document.documentElement.style.setProperty(t,a)}function L(e){return e.replace(/\.\w+$/,"")}function U(e,t){let a=`font-${e.replace(/[^a-zA-Z0-9]/g,"-")}`;if(document.getElementById(a))return;let o=L(e),s=document.createElement("style");s.id=a,s.textContent=`@font-face { font-family: "${o}"; src: url("${t}"); }`,document.head.appendChild(s)}e.s(["AppearanceTab",0,function(){let{theme:e,setTheme:t}=(0,l.useTheme)(),a=(0,r.useTranslations)("settings"),[o,s]=(0,n.useState)(()=>{let e=localStorage.getItem("pageZoom"),t=e?Number(e):100;return t>=50&&t<=200?t:100}),[k,C]=(0,n.useState)(!1),[S,A]=(0,n.useState)(()=>{let e=localStorage.getItem("showWorkspaceTabs");return null===e||"false"!==e}),[w,T]=(0,n.useState)(()=>"true"===localStorage.getItem("autoActivateWorkspace")),[P,N]=(0,n.useState)(()=>localStorage.getItem(I)||""),[F,L]=(0,n.useState)(()=>{try{return JSON.parse(localStorage.getItem(M)||"[]")}catch{return[]}}),[E,B]=(0,n.useState)(!1),O=(0,n.useCallback)(e=>{localStorage.setItem("pageZoom",String(e)),s(e),window.dispatchEvent(new CustomEvent("zoom-change",{detail:e}))},[]),z=[{value:"light",label:a("themeLight"),icon:d},{value:"dark",label:a("themeDark"),icon:p},{value:"system",label:a("themeSystem"),icon:m.Monitor}];(0,n.useEffect)(()=>{let e=requestAnimationFrame(()=>{C((0,x.isNativeEnvironment)())});return()=>cancelAnimationFrame(e)},[]),(0,n.useEffect)(()=>{for(let e of F)U(e.name,e.url);R(P,F)},[F,P]);let W=(0,n.useCallback)(e=>{N(e),localStorage.setItem(I,e),R(e,F)},[F]),G=(0,n.useCallback)(async(e,t)=>{let a=[...F,{name:t,url:e}];L(a),localStorage.setItem(M,JSON.stringify(a)),U(t,e),N(t),localStorage.setItem(I,t),setTimeout(()=>R(t,a),100)},[F]);(0,n.useEffect)(()=>{(0,b.fetchWithAuth)("/api/fonts").then(e=>e.ok?e.json():[]).then(e=>{if(0!==e.length)for(let t of(L(t=>{let a=new Set(t.map(e=>e.name)),o=[...t];for(let t of e)a.has(t.name)||o.push(t);return localStorage.setItem(M,JSON.stringify(o)),o}),e))U(t.name,t.url)}).catch(()=>{})},[]);let H=[...j,...F.map(e=>({value:e.name,label:e.name.replace(/\.\w+$/,"")}))];return(0,i.jsxs)("div",{className:"space-y-5",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:a("theme")}),(0,i.jsx)("div",{className:"grid grid-cols-3 gap-2",children:z.map(({value:a,label:o,icon:s})=>(0,i.jsxs)("button",{type:"button",onClick:()=>t(a),className:(0,c.cn)("flex flex-col items-center gap-1.5 rounded-lg border p-3 text-sm transition-colors hover:bg-muted/50",e===a&&"border-primary bg-primary/5 text-primary"),children:[(0,i.jsx)(s,{className:"size-5"}),(0,i.jsx)("span",{className:"text-xs font-medium",children:o})]},a))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:a("font")}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsx)(v.SearchSelect,{value:P,onChange:W,options:H,placeholder:a("fontPlaceholder"),searchPlaceholder:a("fontSearch"),allowCustom:!1,className:"flex-1"}),(0,i.jsx)(y.Button,{variant:"outline",size:"icon",className:"size-8 shrink-0",onClick:()=>B(!0),title:a("addCustomFont"),children:(0,i.jsx)(h.Plus,{className:"size-4"})})]})]}),(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:a("showWorkspaceTabs")}),(0,i.jsx)(g.Switch,{size:"sm",checked:S,onCheckedChange:e=>{A(e),localStorage.setItem("showWorkspaceTabs",String(e)),window.dispatchEvent(new CustomEvent("workspace-tabs-visibility",{detail:e}))}})]}),(0,i.jsxs)("div",{className:"flex items-center justify-between",children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:a("autoActivateWorkspace")}),(0,i.jsx)(g.Switch,{size:"sm",checked:w,onCheckedChange:e=>{T(e),localStorage.setItem("autoActivateWorkspace",String(e))}})]}),k&&(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:a("zoom")}),(0,i.jsxs)("div",{className:"flex items-center gap-3",children:[(0,i.jsx)(f.Slider,{min:50,max:200,step:10,value:o,onValueChange:e=>O(Array.isArray(e)?e[0]:e),className:"flex-1"}),(0,i.jsxs)("span",{className:"text-xs font-mono tabular-nums w-10 text-right",children:[o,"%"]}),(0,i.jsx)("button",{type:"button",onClick:()=>O(100),className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer",title:a("zoomReset"),children:(0,i.jsx)(u.RotateCcw,{className:"size-3.5"})})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:a("layout")}),(0,i.jsxs)(y.Button,{variant:"outline",size:"sm",className:"gap-1.5 text-xs",onClick:()=>window.dispatchEvent(new CustomEvent("reset-layout")),children:[(0,i.jsx)(u.RotateCcw,{className:"size-3.5"}),a("resetLayout")]})]}),(0,i.jsx)(D,{open:E,onOpenChange:B,onFontAdded:G})]})}],767848);let E=(0,t.default)("languages",[["path",{d:"m5 8 6 6",key:"1wu5hv"}],["path",{d:"m4 14 6-6 2-3",key:"1k1g8d"}],["path",{d:"M2 5h12",key:"or177f"}],["path",{d:"M7 2h1",key:"1t2jsx"}],["path",{d:"m22 22-5-10-5 10",key:"don7ne"}],["path",{d:"M14 18h6",key:"1m8k6r"}]]);var B=e.i(556106);e.s(["LanguageTab",0,function(){let e=(0,r.useTranslations)("settings"),{locale:t,setLocale:a}=(0,B.useLocale)(),o=[{value:"zh",label:e("languageZh")},{value:"en",label:e("languageEn")}];return(0,i.jsx)("div",{className:"space-y-5",children:(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("language")}),(0,i.jsx)("div",{className:"grid grid-cols-2 gap-2",children:o.map(({value:e,label:o})=>(0,i.jsxs)("button",{type:"button",onClick:()=>a(e),className:(0,c.cn)("flex items-center justify-center gap-1.5 rounded-lg border p-3 text-sm transition-colors hover:bg-muted/50",t===e&&"border-primary bg-primary/5 text-primary"),children:[(0,i.jsx)(E,{className:"size-4"}),(0,i.jsx)("span",{className:"text-xs font-medium",children:o})]},e))})]})})}],710858)},974915,e=>{"use strict";var t=e.i(816709);let a="keyboard-shortcuts",o=[{id:"commandPalette",defaultKeys:"ctrl+shift+p",labelKey:"openCommandPalette"},{id:"toggleSidebar",defaultKeys:"shift+tab",labelKey:"toggleSidebar"}],s=(0,t.create)((e,t)=>({shortcuts:function(){try{return JSON.parse(localStorage.getItem(a)||"{}")}catch{return{}}}(),getShortcut:e=>{let a=o.find(t=>t.id===e);return t().shortcuts[e]??a?.defaultKeys??""},setShortcut:(t,o)=>{e(e=>{let s={...e.shortcuts,[t]:o};return localStorage.setItem(a,JSON.stringify(s)),{shortcuts:s}})},resetShortcut:t=>{e(e=>{let o={...e.shortcuts};return delete o[t],localStorage.setItem(a,JSON.stringify(o)),{shortcuts:o}})},matchesEvent:(e,a)=>{let o=t().getShortcut(e);if(!o)return!1;let s=o.toLowerCase().split("+").map(e=>e.trim()),i=s.includes("ctrl"),n=s.includes("shift"),r=s.includes("alt"),l=s.includes("meta")||s.includes("cmd"),c=s[s.length-1];return a.ctrlKey===i&&a.shiftKey===n&&a.altKey===r&&a.metaKey===l&&a.key.toLowerCase()===c}}));e.s(["SHORTCUT_DEFS",0,o,"useKeyboardShortcuts",0,s])},238300,e=>{"use strict";var t=e.i(344180),a=e.i(764556),o=e.i(244073),s=e.i(916950),i=e.i(681622),n=e.i(260218),r=e.i(209988),l=e.i(465458),c=e.i(799773),d=e.i(348085),p=e.i(882469),m=e.i(758960),u=e.i(797161),h=e.i(327962),g=e.i(513501),f=e.i(325443),y=e.i(583705),x=e.i(346038),v=e.i(964970),b=e.i(767848),k=e.i(710858),C=e.i(324216),S=e.i(951841);function A(){let e=(0,o.useTranslations)("settings"),s=(0,o.useTranslations)("common"),[i,n]=(0,a.useState)(null);(0,a.useEffect)(()=>{fetch("/api/user/settings").then(e=>e.json()).then(e=>{e.avatarUrl&&n(e.avatarUrl)}).catch(()=>{})},[]);let r=async e=>{let t=e.target.files?.[0];if(!t)return;let a=new FileReader;a.onload=async()=>{try{let e=await fetch("/api/upload/avatar",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({dataUrl:a.result})}),t=await e.json();if(t.url){let e=`${t.url}?t=${Date.now()}`;n(e),(0,S.setCachedUserAvatarUrl)(e),fetch("/api/user/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({avatarUrl:t.url})}).catch(()=>{})}}catch{}},a.readAsDataURL(t),e.target.value=""};return(0,t.jsx)("div",{className:"space-y-5",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("userAvatar")}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)(C.UserIcon,{size:"lg"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("label",{className:"text-xs text-primary cursor-pointer hover:underline",children:[s("upload"),(0,t.jsx)("input",{type:"file",accept:"image/*",className:"hidden",onChange:r})]}),i&&(0,t.jsx)("button",{type:"button",className:"text-xs text-destructive hover:underline cursor-pointer",onClick:()=>{n(null),(0,S.setCachedUserAvatarUrl)(null),fetch("/api/user/settings",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({avatarUrl:null})}).catch(()=>{})},children:s("remove")})]})]})]})})}var w=e.i(799543),T=e.i(233297),P=e.i(437122);function N(){let e=(0,o.useTranslations)("settings"),s=(0,o.useTranslations)("common"),r=(0,w.useRouter)(),[l,c]=(0,a.useState)(""),[d,p]=(0,a.useState)(!1),m=async()=>{let e=(0,P.getToken)();try{(await fetch("/api/auth/change-secret",{method:"POST",headers:{"Content-Type":"application/json",...null!==e?{Authorization:`Bearer ${e}`}:{}},body:JSON.stringify({newSecret:l,currentToken:e})})).ok&&(p(!0),(0,P.removeToken)(),setTimeout(()=>(0,T.tauriNavigate)(r,"/login"),800))}catch{}};return(0,t.jsx)("div",{className:"space-y-5",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("security")}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(i.Input,{type:"password",className:"h-8 text-sm flex-1",placeholder:e("newSecretPlaceholder"),value:l,onChange:e=>{c(e.target.value),p(!1)},onKeyDown:e=>"Enter"===e.key&&e.preventDefault()}),(0,t.jsx)(n.Button,{size:"sm",onClick:m,disabled:d,children:s(d?"saved":"save")})]}),d&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:e("redirecting")})]})})}var D=e.i(817854),j=e.i(226624);function I(){let e=(0,o.useTranslations)("settings"),s=(0,o.useTranslations)("common"),[i,r]=(0,a.useState)([]),[l,c]=(0,a.useState)(!0),d=async()=>{try{let e=await fetch("/api/speech-recognition",{headers:(0,P.authHeaders)()});e.ok&&r(await e.json())}catch{}c(!1)};(0,a.useEffect)(()=>{d()},[]);let p=async(e,t)=>{await fetch(`/api/speech-recognition/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...(0,P.authHeaders)()},body:JSON.stringify({credentials:t})})},m=async(e,t)=>{await fetch(`/api/speech-recognition/${e}`,{method:"PUT",headers:{"Content-Type":"application/json",...(0,P.authHeaders)()},body:JSON.stringify({enabled:t})}),r(a=>a.map(a=>a.id===e?{...a,enabled:t}:a))},u=async e=>{let t=await fetch("/api/speech-recognition",{method:"POST",headers:{"Content-Type":"application/json",...(0,P.authHeaders)()},body:JSON.stringify({provider:e,credentials:{}})});if(t.ok){let e=await t.json();r(t=>[...t,e])}};if(l)return(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:s("loading")});let h=i.find(e=>"tencent"===e.provider);return(0,t.jsx)("div",{className:"space-y-5",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("speechDescription")}),(0,t.jsxs)("div",{className:"space-y-3 p-3 border rounded-lg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:e("speechTencent")}),h&&(0,t.jsx)(j.Switch,{checked:!1!==h.enabled,onCheckedChange:e=>m(h.id,e)})]}),h?(0,t.jsx)(M,{configId:h.id,credentials:h.credentials,onSave:p}):(0,t.jsx)(n.Button,{variant:"outline",size:"sm",className:"text-xs",onClick:()=>u("tencent"),children:e("speechAddConfig")})]})]})})}function M({configId:e,credentials:s,onSave:r}){let l=(0,o.useTranslations)("settings"),c=(0,o.useTranslations)("common"),[d,p]=(0,a.useState)(s.appId??""),[m,u]=(0,a.useState)(s.secretId??""),[h,g]=(0,a.useState)(s.secretKey??""),[f,y]=(0,a.useState)(!1),x=async()=>{await r(e,{appId:d,secretId:m,secretKey:h}),y(!0),setTimeout(()=>y(!1),2e3)};return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:l("speechAppId")}),(0,t.jsx)(i.Input,{className:"h-7 text-xs",value:d,onChange:e=>p(e.target.value),placeholder:"125922****"})]}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:l("speechSecretId")}),(0,t.jsx)(i.Input,{className:"h-7 text-xs",value:m,onChange:e=>u(e.target.value),placeholder:"SecretId"})]}),(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:l("speechSecretKey")}),(0,t.jsx)(i.Input,{type:"password",className:"h-7 text-xs",value:h,onChange:e=>g(e.target.value),placeholder:"SecretKey"})]}),(0,t.jsx)(n.Button,{size:"sm",className:"text-xs",onClick:x,children:c(f?"saved":"save")})]})}var F=e.i(953700),R=e.i(137340),L=e.i(962562),U=e.i(244996),E=e.i(62669);let B=(0,e.i(433721).default)("qr-code",[["rect",{width:"5",height:"5",x:"3",y:"3",rx:"1",key:"1tu5fj"}],["rect",{width:"5",height:"5",x:"16",y:"3",rx:"1",key:"1v8r4q"}],["rect",{width:"5",height:"5",x:"3",y:"16",rx:"1",key:"1x03jg"}],["path",{d:"M21 16h-3a2 2 0 0 0-2 2v3",key:"177gqh"}],["path",{d:"M21 21v.01",key:"ents32"}],["path",{d:"M12 7v3a2 2 0 0 1-2 2H7",key:"8crl2c"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M12 3h.01",key:"n36tog"}],["path",{d:"M12 16v.01",key:"133mhm"}],["path",{d:"M16 12h1",key:"1slzba"}],["path",{d:"M21 12v.01",key:"1lwtk9"}],["path",{d:"M12 21v-1",key:"1880an"}]]);var O=e.i(360112);function z(){var e;let s=(0,o.useTranslations)("robotAccounts"),l=(0,o.useTranslations)("common"),[c,d]=(0,a.useState)([]),[p,m]=(0,a.useState)(!0),[u,h]=(0,a.useState)(!1),[g,y]=(0,a.useState)(null),[x,v]=(0,a.useState)(null),[b,k]=(0,a.useState)(""),[C,S]=(0,a.useState)(""),[A,w]=(0,a.useState)(""),[T,P]=(0,a.useState)(!1),[N,j]=(0,a.useState)({status:"idle"}),[I,M]=(0,a.useState)(!1),R=(0,a.useRef)(!1),L=()=>{fetch("/api/robot-accounts").then(e=>e.json()).then(e=>{d(e),m(!1)}).catch(()=>m(!1))};(0,a.useEffect)(()=>{L()},[]);let z=e=>{y(e),k(e.name),S(e.lark?.appId??""),w(e.lark?.appSecret??""),h(!0)},G=async()=>{if(!T){P(!0);try{let e={name:b,type:"lark",lark:{appId:C,appSecret:A}},t=g?await fetch(`/api/robot-accounts/${g.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}):await fetch("/api/robot-accounts",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error||"Failed")}O.toast.success(g?s("updateSuccess"):s("createSuccess")),h(!1),L()}catch(e){O.toast.error(g?s("updateFailed"):s("createFailed"),{description:e instanceof Error?e.message:void 0})}finally{P(!1)}}},H=async()=>{if("loading"!==N.status){j({status:"loading"});try{let e=await fetch("/api/robot-accounts/wechat/qr",{method:"POST"}),t=await e.json();if(!e.ok)throw Error(t?.error||"Failed");j({status:"wait",qrcodeImgContent:t.qrcodeImgContent,sessionId:t.sessionId})}catch(e){O.toast.error(s("createFailed"),{description:e instanceof Error?e.message:void 0}),j({status:"idle"})}}};(0,a.useEffect)(()=>{if(!I||!["wait","scaned"].includes(N.status)||!N.sessionId)return;let e=window.setInterval(()=>{R.current||(R.current=!0,fetch("/api/robot-accounts/wechat/qr/poll",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:N.sessionId})}).then(async e=>{let t=await e.json();if(!e.ok)throw Error(t?.error||"Poll failed");j(e=>({...e,status:t.status})),"confirmed"===t.status&&t.account&&(O.toast.success(s("createSuccess")),M(!1),j({status:"idle"}),L()),"expired"===t.status&&O.toast.error(s("wechatExpired"))}).catch(()=>{}).finally(()=>{R.current=!1}))},2e3);return()=>window.clearInterval(e)},[I,N.status,N.sessionId,s]);let K=async e=>{try{if(!(await fetch(`/api/robot-accounts/${e}`,{method:"DELETE"})).ok)throw Error("Failed");O.toast.success(s("deleteSuccess")),v(null),L()}catch{O.toast.error(s("deleteFailed"))}},_=c.filter(e=>"lark"===e.type),V=c.filter(e=>"wechat"===e.type),q=b.trim()&&C.trim()&&A.trim();return(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:s("title")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mb-4",children:s("description")})]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)(n.Button,{type:"button",size:"sm",onClick:()=>{y(null),k(""),S(""),w(""),h(!0)},children:[(0,t.jsx)(F.Plus,{className:"mr-1.5 h-3.5 w-3.5"}),s("addLark")]}),(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>{M(!0),j({status:"idle"})},children:[(0,t.jsx)(F.Plus,{className:"mr-1.5 h-3.5 w-3.5"}),s("addWechat")]})]}),p?null:0===c.length?(0,t.jsxs)("div",{className:"rounded-md border border-dashed px-4 py-8 text-center",children:[(0,t.jsx)(f.Bot,{className:"mx-auto h-8 w-8 text-muted-foreground/50"}),(0,t.jsx)("p",{className:"mt-2 text-sm text-muted-foreground",children:s("noAccounts")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:s("noAccountsDesc")})]}):(0,t.jsxs)("div",{className:"space-y-4",children:[_.length>0&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:s("lark")}),_.map(e=>(0,t.jsx)(W,{account:e,onEdit:z,onDelete:v},e.id))]}),V.length>0&&(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:s("wechat")}),V.map(e=>(0,t.jsx)(W,{account:e,onEdit:()=>{},onDelete:v},e.id))]})]}),(0,t.jsx)(r.Dialog,{open:u,onOpenChange:h,children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{children:g?s("editAccount"):s("addLark")}),(0,t.jsx)(r.DialogDescription,{children:s("lark")})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:s("name")}),(0,t.jsx)(i.Input,{value:b,onChange:e=>k(e.target.value),placeholder:s("namePlaceholder")})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:s("larkFields.appId")}),(0,t.jsx)(i.Input,{value:C,onChange:e=>S(e.target.value),placeholder:"cli_xxx"})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(D.Label,{className:"text-xs text-muted-foreground",children:s("larkFields.appSecret")}),(0,t.jsx)(i.Input,{type:"password",value:A,onChange:e=>w(e.target.value),placeholder:"app secret"})]})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,t.jsx)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>h(!1),children:l("cancel")}),(0,t.jsx)(n.Button,{type:"button",size:"sm",onClick:G,disabled:!q||T,children:s("save")})]})]})}),(0,t.jsx)(r.Dialog,{open:I,onOpenChange:M,children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{children:s("addWechat")}),(0,t.jsx)(r.DialogDescription,{children:s("wechatQrDescription")})]}),(0,t.jsxs)("div",{className:"space-y-4",children:["idle"===N.status&&(0,t.jsx)("div",{className:"flex justify-center py-4",children:(0,t.jsxs)(n.Button,{type:"button",onClick:H,children:[(0,t.jsx)(B,{className:"mr-1.5 h-4 w-4"}),s("getQr")]})}),"loading"===N.status&&(0,t.jsx)("div",{className:"flex justify-center py-8",children:(0,t.jsx)(E.Loader2,{className:"h-6 w-6 animate-spin text-muted-foreground"})}),["wait","scaned","expired"].includes(N.status)&&N.qrcodeImgContent&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border border-dashed px-3 py-3",children:[(0,t.jsx)("img",{src:(e=N.qrcodeImgContent,`https://api.qrserver.com/v1/create-qr-code/?size=180x180&margin=8&data=${encodeURIComponent(e)}`),alt:"WeChat QR code",className:"h-36 w-36 shrink-0 rounded border bg-white p-2"}),(0,t.jsx)("div",{className:"min-w-0 space-y-1 text-xs text-muted-foreground",children:(0,t.jsxs)("p",{className:"flex items-center gap-1.5",children:["wait"===N.status&&s("wechatWaitScan"),"scaned"===N.status&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(U.CheckCircle2,{className:"h-3.5 w-3.5 text-emerald-600"})," ",s("wechatScanned")]}),"expired"===N.status&&s("wechatExpired")]})})]}),(0,t.jsx)("div",{className:"flex justify-center",children:(0,t.jsxs)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:H,children:[(0,t.jsx)(E.Loader2,{className:"loading"===N.status?"mr-1.5 h-3.5 w-3.5 animate-spin":"hidden"}),s("refreshQr")]})})]})]})]})}),(0,t.jsx)(r.Dialog,{open:!!x,onOpenChange:()=>v(null),children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-sm",children:[(0,t.jsxs)(r.DialogHeader,{children:[(0,t.jsx)(r.DialogTitle,{children:s("deleteAccount")}),(0,t.jsx)(r.DialogDescription,{children:s("deleteConfirm")})]}),(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-2",children:[(0,t.jsx)(n.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>v(null),children:l("cancel")}),(0,t.jsx)(n.Button,{type:"button",size:"sm",variant:"destructive",onClick:()=>x&&K(x),children:s("deleteAccount")})]})]})})]})}function W({account:e,onEdit:a,onDelete:s}){let i=(0,o.useTranslations)("robotAccounts");return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border px-3 py-2.5",children:[(0,t.jsx)(f.Bot,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("div",{className:"text-sm font-medium truncate",children:e.name}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:"lark"===e.type?`${i("lark")} \xb7 ${e.lark?.appId??"-"}`:`${i("wechat")} \xb7 ${e.wechat?.accountId??"-"}`})]}),(0,t.jsxs)("div",{className:"flex gap-1 shrink-0",children:["lark"===e.type&&(0,t.jsx)(n.Button,{type:"button",size:"sm",variant:"ghost",className:"h-7 w-7 p-0",onClick:()=>a(e),children:(0,t.jsx)(L.Pencil,{className:"h-3.5 w-3.5"})}),(0,t.jsx)(n.Button,{type:"button",size:"sm",variant:"ghost",className:"h-7 w-7 p-0 text-destructive hover:text-destructive",onClick:()=>s(e.id),children:(0,t.jsx)(R.Trash2,{className:"h-3.5 w-3.5"})})]})]})}var G=e.i(601039),H=e.i(307858),K=e.i(734649);let _="agent-spaces-auto-check-update";function V(){let e=(0,o.useTranslations)("settings"),s=(0,o.useTranslations)("common"),[i,r]=(0,a.useState)(null),[c,d]=(0,a.useState)(""),[p,m]=(0,a.useState)(!1),[u,h]=(0,a.useState)(()=>"false"!==localStorage.getItem(_)),[g,f]=(0,a.useState)(!1),y=(0,a.useCallback)(async()=>{try{let e=await fetch("/api/version");if(e.ok){let t=await e.json();r(t)}}catch{}},[]);(0,a.useEffect)(()=>{fetch("/api/health").then(e=>e.ok?e.json():{}).then(e=>d(e.platform??"")).catch(()=>{}),y()},[y]),(0,a.useEffect)(()=>{u&&fetch("/api/version/check").then(e=>e.ok?e.json():null).then(e=>{e?.updateAvailable&&r(e)}).catch(()=>{})},[]);let x=(0,a.useCallback)(async()=>{m(!0);try{let t=await fetch("/api/version/check");if(t.ok){let a=await t.json();r(a),a.updateAvailable||O.toast.success(e("aboutUpToDate"))}}catch{O.toast.error(e("aboutCheckFailed"))}finally{m(!1)}},[e]),v=(0,a.useCallback)(async()=>{f(!1),O.toast.info(e("aboutUpdating"));try{await fetch("/api/version/update",{method:"POST"})}catch{}},[e]),b=i?.local??"-",k=i?.latest,C=i?.dev===!0,S=!C&&(i?.updateAvailable??!1);return(0,t.jsxs)("div",{className:"space-y-5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 pb-4 border-b",children:[(0,t.jsx)("img",{src:"/favicon.ico",alt:"Logo",className:"size-10 shrink-0"}),(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("h3",{className:"text-sm font-semibold",children:"Agent Spaces"}),(0,t.jsxs)("p",{className:"text-xs text-muted-foreground",children:["v",b]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("aboutInfo")}),(0,t.jsxs)("div",{className:"text-sm space-y-1.5",children:[(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e("aboutVersion")}),(0,t.jsx)("span",{className:"font-mono",children:b})]}),k&&(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e("aboutLatestVersion")}),(0,t.jsx)("span",{className:"font-mono",children:k})]}),c&&(0,t.jsxs)("div",{className:"flex justify-between",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e("aboutPlatform")}),(0,t.jsx)("span",{children:c})]})]})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("aboutLinks")}),(0,t.jsxs)("a",{href:"https://github.com/hunmer/agent_spaces",target:"_blank",rel:"noopener noreferrer",className:"text-sm text-primary hover:underline flex items-center gap-1.5",children:[(0,t.jsx)("svg",{className:"size-3.5",viewBox:"0 0 24 24",fill:"currentColor",children:(0,t.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"})}),"GitHub",(0,t.jsx)(H.ExternalLink,{className:"size-3"})]})]}),!C&&(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("aboutUpdates")}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-sm",children:e("aboutAutoCheck")}),(0,t.jsx)(j.Switch,{size:"sm",checked:u,onCheckedChange:e=>{h(e),localStorage.setItem(_,String(e))}})]}),(0,t.jsxs)(n.Button,{variant:"outline",size:"sm",onClick:x,disabled:p,children:[(0,t.jsx)(G.RefreshCw,{className:(0,l.cn)("size-3.5 mr-1.5",p&&"animate-spin")}),p?e("aboutChecking"):e("aboutCheckNow")]}),S&&k&&(0,t.jsxs)("div",{className:"rounded-lg border p-3 text-sm space-y-2",children:[(0,t.jsx)("p",{className:"text-muted-foreground",children:e("aboutNewVersion",{version:k})}),(0,t.jsx)(n.Button,{size:"sm",onClick:()=>f(!0),children:e("aboutUpdateNow")})]})]})]}),C&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:e("aboutDevMode")}),(0,t.jsx)(K.AlertDialog,{open:g,onOpenChange:f,children:(0,t.jsxs)(K.AlertDialogContent,{children:[(0,t.jsxs)(K.AlertDialogHeader,{children:[(0,t.jsx)(K.AlertDialogTitle,{children:e("aboutUpdateConfirmTitle")}),(0,t.jsx)(K.AlertDialogDescription,{children:e("aboutUpdateConfirmDesc")})]}),(0,t.jsxs)(K.AlertDialogFooter,{children:[(0,t.jsx)(K.AlertDialogCancel,{children:s("cancel")}),(0,t.jsx)(K.AlertDialogAction,{onClick:v,children:e("aboutUpdateNow")})]})]})})]})}var q=e.i(974915),Q=e.i(357301);function J(){let e=(0,o.useTranslations)("settings"),{getShortcut:s,setShortcut:i,resetShortcut:r}=(0,q.useKeyboardShortcuts)(),[l,c]=(0,a.useState)(null),d=(0,a.useCallback)(e=>{if(!l)return;if(e.preventDefault(),e.stopPropagation(),"Escape"===e.key)return void c(null);if(["Control","Shift","Alt","Meta"].includes(e.key))return;let t=[];e.ctrlKey&&t.push("ctrl"),e.shiftKey&&t.push("shift"),e.altKey&&t.push("alt"),e.metaKey&&t.push("meta"),t.push(e.key.toLowerCase()),i(l,t.join("+")),c(null)},[l,i]);return(0,a.useEffect)(()=>{if(l)return document.addEventListener("keydown",d,!0),()=>document.removeEventListener("keydown",d,!0)},[l,d]),(0,t.jsx)("div",{className:"space-y-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:e("shortcuts")}),(0,t.jsx)("div",{className:"space-y-2",children:q.SHORTCUT_DEFS.map(a=>{let o,i=s(a.id),d=l===a.id;return(0,t.jsxs)("div",{className:"flex items-center justify-between py-2 px-3 rounded-lg border",children:[(0,t.jsx)("span",{className:"text-sm",children:e(a.labelKey)}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[d?(0,t.jsx)("span",{className:"text-xs text-primary animate-pulse",children:e("recordingShortcut")}):(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(o={ctrl:"Ctrl",shift:"Shift",alt:"Alt",meta:"Meta",cmd:"Cmd"},i.split("+").map(e=>o[e]??e.toUpperCase())).map((e,a)=>(0,t.jsx)("kbd",{className:"inline-flex items-center rounded border bg-muted px-1.5 py-0.5 text-[11px] font-mono",children:e},a))}),(0,t.jsx)(n.Button,{variant:"ghost",size:"sm",className:"size-7 p-0",onClick:()=>c(d?null:a.id),title:e("recordShortcut"),children:(0,t.jsx)(x.Keyboard,{className:"size-3.5"})}),(0,t.jsx)(n.Button,{variant:"ghost",size:"sm",className:"size-7 p-0",onClick:()=>r(a.id),title:e("resetShortcut"),children:(0,t.jsx)(Q.RotateCcw,{className:"size-3.5"})})]})]},a.id)})})]})})}let $=[{key:"appearance",icon:d.Palette},{key:"language",icon:p.Globe},{key:"account",icon:c.User},{key:"security",icon:m.Shield},{key:"robots",icon:f.Bot},{key:"agent_store",icon:g.Store},{key:"git",icon:h.GitBranch},{key:"speech",icon:u.Mic},{key:"shortcuts",icon:x.Keyboard},{key:"about",icon:y.Info}];function Z(){return(0,t.jsx)("div",{className:"space-y-5",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:"Git"}),(0,t.jsx)(v.GitSettingsForm,{scope:"global"})]})})}function Y(){let[e,r]=(0,a.useState)(()=>(0,s.getStoreApiBase)()),[l,c]=(0,a.useState)(!1),d=(0,o.useTranslations)("settings");return(0,t.jsx)("div",{className:"space-y-4",children:(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider mb-2.5 block",children:d("storeApiBase")}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)(i.Input,{value:e,onChange:e=>r(e.target.value),placeholder:"https://gh-proxy.org/https://github.com/hunmer/agent-spaces/raw/refs/heads/main/packages/agents/workflows/index.json",className:"text-sm"}),(0,t.jsx)(n.Button,{size:"sm",onClick:()=>{(0,s.setStoreApiBase)(e),c(!0),setTimeout(()=>c(!1),1500)},children:l?"✓":d("save")})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1.5",children:d("storeApiBaseDesc")})]})})}e.s(["SettingsDialog",0,function({open:e,onOpenChange:s,standalone:i}){let n=(0,o.useTranslations)("settings"),[c,d]=(0,a.useState)("appearance"),p={appearance:n("theme"),language:n("language"),account:n("userAvatar"),security:n("security"),robots:n("robots"),agent_store:n("agentStore"),git:n("git"),speech:n("speech"),shortcuts:n("shortcuts"),about:n("about")},m=(0,t.jsxs)("div",{className:"flex min-h-0 flex-1 flex-col sm:flex-row",children:[(0,t.jsx)("div",{className:"flex sm:flex-col sm:w-36 sm:border-r sm:py-3 sm:px-2 shrink-0 overflow-x-auto border-b sm:border-b-0 gap-1 px-2 py-2",children:$.map(({key:e,icon:a})=>(0,t.jsxs)("button",{type:"button",onClick:()=>d(e),className:(0,l.cn)("flex items-center gap-2 rounded-md px-2.5 py-2 text-xs font-medium transition-colors whitespace-nowrap",c===e?"bg-primary/10 text-primary":"text-muted-foreground hover:bg-muted hover:text-foreground"),children:[(0,t.jsx)(a,{className:"size-4"}),p[e]]},e))}),(0,t.jsx)("div",{className:"flex-1 p-5 min-w-0 overflow-y-auto",children:(()=>{switch(c){case"appearance":return(0,t.jsx)(b.AppearanceTab,{});case"language":return(0,t.jsx)(k.LanguageTab,{});case"account":return(0,t.jsx)(A,{});case"security":return(0,t.jsx)(N,{});case"robots":return(0,t.jsx)(z,{});case"agent_store":return(0,t.jsx)(Y,{});case"git":return(0,t.jsx)(Z,{});case"speech":return(0,t.jsx)(I,{});case"shortcuts":return(0,t.jsx)(J,{});case"about":return(0,t.jsx)(V,{})}})()})]});return i?m:(0,t.jsx)(r.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(r.DialogContent,{className:"sm:max-w-lg max-h-[85vh] p-0 gap-0 flex flex-col overflow-hidden",children:[(0,t.jsxs)(r.DialogHeader,{className:"px-5 py-4 border-b shrink-0",children:[(0,t.jsx)(r.DialogTitle,{className:"text-base",children:n("title")}),(0,t.jsx)(r.DialogDescription,{className:"text-xs",children:n("description")})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0 flex flex-col overflow-hidden",children:m})]})})}],238300)}]);