@agent-spaces/server 0.3.63 → 0.3.65

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 (334) hide show
  1. package/dist/adapters/claude-code-runtime/index.js +68 -2
  2. package/dist/adapters/claude-code-runtime/message-format.js +27 -1
  3. package/dist/adapters/claude-code-runtime/sdk-config.js +12 -0
  4. package/dist/adapters/git.js +168 -57
  5. package/dist/agents/agent-designer.js +66 -12
  6. package/dist/agents/agent-message-parts.js +1 -1
  7. package/dist/agents/commit-agent.js +4 -2
  8. package/dist/agents/issue-task-controller.js +7 -3
  9. package/dist/app.js +56 -69
  10. package/dist/package.json +1 -1
  11. package/dist/routes/agent-commands.js +72 -0
  12. package/dist/routes/agent-sse.js +7 -0
  13. package/dist/routes/agent.js +18 -1
  14. package/dist/routes/database.js +346 -0
  15. package/dist/routes/git.js +198 -267
  16. package/dist/routes/kanban.js +39 -0
  17. package/dist/routes/robot-account.js +68 -0
  18. package/dist/services/agent-commands.js +168 -0
  19. package/dist/services/agent.js +36 -2
  20. package/dist/services/builtin-tools/command-tools.js +117 -0
  21. package/dist/services/builtin-tools/database-tools.js +578 -0
  22. package/dist/services/builtin-tools/index.js +5 -0
  23. package/dist/services/builtin-tools/input-helpers.js +26 -0
  24. package/dist/services/builtin-tools/issue-tools.js +209 -0
  25. package/dist/services/builtin-tools/kanban-tools.js +281 -0
  26. package/dist/services/database-vector.js +244 -0
  27. package/dist/services/git-operation-log.js +40 -0
  28. package/dist/services/global-wechat-qr.js +72 -0
  29. package/dist/services/hook-engine.js +175 -17
  30. package/dist/services/kanban.js +50 -0
  31. package/dist/services/notification-hub/bot-agent.js +3 -1
  32. package/dist/services/notification-hub/service.js +12 -2
  33. package/dist/services/robot-account.js +34 -0
  34. package/dist/services/workspace.js +2 -0
  35. package/dist/storage/database-store.js +365 -0
  36. package/dist/storage/kanban-store.js +142 -0
  37. package/dist/storage/robot-account-store.js +39 -0
  38. package/dist/web/404.html +1 -1
  39. package/dist/web/__next.__PAGE__.txt +4 -4
  40. package/dist/web/__next._full.txt +24 -31
  41. package/dist/web/__next._head.txt +4 -4
  42. package/dist/web/__next._index.txt +14 -14
  43. package/dist/web/__next._tree.txt +3 -8
  44. package/dist/web/_next/static/chunks/0-a.-hl3wv99k.js +1 -0
  45. package/dist/web/_next/static/chunks/{0ctg5qmw7uu.1.js → 0-pi.67w.ymsr.js} +3 -3
  46. package/dist/web/_next/static/chunks/0-v_p6j5u3_9l.js +1 -0
  47. package/dist/web/_next/static/chunks/0.-x29t-8gk0r.js +1 -0
  48. package/dist/web/_next/static/chunks/0.6b64sy0g5.3.js +3 -0
  49. package/dist/web/_next/static/chunks/0.l5e8~r7_0~p.js +1 -0
  50. package/dist/web/_next/static/chunks/00-syqzi-6zxr.js +1 -0
  51. package/dist/web/_next/static/chunks/{13~y-b.b9rrw4.js → 01~quun6sefgl.js} +1 -1
  52. package/dist/web/_next/static/chunks/02802taez976w.js +67 -0
  53. package/dist/web/_next/static/chunks/02j4sr9psucf-.js +1 -0
  54. package/dist/web/_next/static/chunks/033.awk90g6eh.js +1 -0
  55. package/dist/web/_next/static/chunks/06.kdsa9rr2h1.js +1 -0
  56. package/dist/web/_next/static/chunks/{0-oog4zg4_m~m.css → 062f9zqctzg.b.css} +0 -3
  57. package/dist/web/_next/static/chunks/06si8l0doqe8p.js +1 -0
  58. package/dist/web/_next/static/chunks/08ugbvzr20drp.js +2 -0
  59. package/dist/web/_next/static/chunks/{0kof5qdg8c2-k.js → 08x85faoz58i7.js} +37 -37
  60. package/dist/web/_next/static/chunks/0_cqojbge48kq.js +5 -0
  61. package/dist/web/_next/static/chunks/0_mvduwjsm35w.js +1 -0
  62. package/dist/web/_next/static/chunks/0d6~~lv0-6kex.js +3 -0
  63. package/dist/web/_next/static/chunks/{0ogpc3f3keopc.js → 0db14450oqzhg.js} +2 -2
  64. package/dist/web/_next/static/chunks/0fttswpzu69qx.js +1 -0
  65. package/dist/web/_next/static/chunks/0gdwop9cnpmtu.js +1 -0
  66. package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +1 -0
  67. package/dist/web/_next/static/chunks/0j-l7l_k9jt45.js +1 -0
  68. package/dist/web/_next/static/chunks/0k4zdm72k_bfy.js +1 -0
  69. package/dist/web/_next/static/chunks/0kbvoxla7f751.js +1 -0
  70. package/dist/web/_next/static/chunks/{0aa6bcdmtpekn.js → 0l2w0qz1ea7ql.js} +2 -2
  71. package/dist/web/_next/static/chunks/0p3h-h3zj5ujg.js +30 -0
  72. package/dist/web/_next/static/chunks/0paaat8y96ayc.js +7 -0
  73. package/dist/web/_next/static/chunks/0pm-un~-sy3rl.js +1 -0
  74. package/dist/web/_next/static/chunks/0pq318f8xgafg.js +1 -0
  75. package/dist/web/_next/static/chunks/0t6s8of0qr6nc.js +1 -0
  76. package/dist/web/_next/static/chunks/0u6h-hqc_i52e.js +1 -0
  77. package/dist/web/_next/static/chunks/0uxzi~9b~k4mn.js +31 -0
  78. package/dist/web/_next/static/chunks/{002-dxhags4dj.js → 0v6hte2z-32ca.js} +2 -2
  79. package/dist/web/_next/static/chunks/{014x2qbuiszni.js → 0vis~lx0nxgn-.js} +3 -3
  80. package/dist/web/_next/static/chunks/{0y09i51u6ixq5.js → 0w7.tb29958zj.js} +1 -1
  81. package/dist/web/_next/static/chunks/0xbaakj0dfc0..js +1 -0
  82. package/dist/web/_next/static/chunks/0yd.m1afqg.2t.js +3 -0
  83. package/dist/web/_next/static/chunks/0yhbr8hl09b-5.js +1 -0
  84. package/dist/web/_next/static/chunks/0zncg76rgtbm-.js +1 -0
  85. package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +1 -0
  86. package/dist/web/_next/static/chunks/0~~_ltu6dx_ch.js +1 -0
  87. package/dist/web/_next/static/chunks/{02c22g~xd-y30.js → 11cchuwoupmbf.js} +2 -2
  88. package/dist/web/_next/static/chunks/12jm4gwmvq-0q.js +90 -0
  89. package/dist/web/_next/static/chunks/12oxcgyhpaxw~.js +1 -0
  90. package/dist/web/_next/static/chunks/1452eibz62gs6.css +1 -0
  91. package/dist/web/_next/static/chunks/16zlreiems5cn.js +1 -0
  92. package/dist/web/_next/static/chunks/18awqjk9-o5m0.js +1 -0
  93. package/dist/web/_next/static/chunks/18c7g84y01mj0.js +1 -0
  94. package/dist/web/_next/static/chunks/{turbopack-0ndm2zc_pdptk.js → turbopack-11qjwlynmfc-n.js} +1 -1
  95. package/dist/web/_not-found/__next._full.txt +31 -30
  96. package/dist/web/_not-found/__next._head.txt +4 -4
  97. package/dist/web/_not-found/__next._index.txt +14 -14
  98. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  99. package/dist/web/_not-found/__next._not-found.txt +3 -3
  100. package/dist/web/_not-found/__next._tree.txt +3 -3
  101. package/dist/web/_not-found.html +1 -1
  102. package/dist/web/_not-found.txt +31 -30
  103. package/dist/web/index.html +1 -1
  104. package/dist/web/index.txt +24 -31
  105. package/dist/web/login/__next._full.txt +32 -36
  106. package/dist/web/login/__next._head.txt +4 -4
  107. package/dist/web/login/__next._index.txt +14 -14
  108. package/dist/web/login/__next._tree.txt +3 -8
  109. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  110. package/dist/web/login/__next.login.txt +3 -3
  111. package/dist/web/login.html +1 -1
  112. package/dist/web/login.txt +32 -36
  113. package/dist/web/settings/__next._full.txt +34 -38
  114. package/dist/web/settings/__next._head.txt +4 -4
  115. package/dist/web/settings/__next._index.txt +14 -14
  116. package/dist/web/settings/__next._tree.txt +3 -8
  117. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  118. package/dist/web/settings/__next.settings.txt +5 -5
  119. package/dist/web/settings/agents/__next._full.txt +27 -32
  120. package/dist/web/settings/agents/__next._head.txt +4 -4
  121. package/dist/web/settings/agents/__next._index.txt +14 -14
  122. package/dist/web/settings/agents/__next._tree.txt +3 -8
  123. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  124. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  125. package/dist/web/settings/agents/__next.settings.txt +5 -5
  126. package/dist/web/settings/agents.html +1 -1
  127. package/dist/web/settings/agents.txt +27 -32
  128. package/dist/web/settings/mcps/__next._full.txt +27 -32
  129. package/dist/web/settings/mcps/__next._head.txt +4 -4
  130. package/dist/web/settings/mcps/__next._index.txt +14 -14
  131. package/dist/web/settings/mcps/__next._tree.txt +3 -8
  132. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  133. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  134. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  135. package/dist/web/settings/mcps.html +1 -1
  136. package/dist/web/settings/mcps.txt +27 -32
  137. package/dist/web/settings/models/__next._full.txt +27 -32
  138. package/dist/web/settings/models/__next._head.txt +4 -4
  139. package/dist/web/settings/models/__next._index.txt +14 -14
  140. package/dist/web/settings/models/__next._tree.txt +3 -8
  141. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  142. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  143. package/dist/web/settings/models/__next.settings.txt +5 -5
  144. package/dist/web/settings/models.html +1 -1
  145. package/dist/web/settings/models.txt +27 -32
  146. package/dist/web/settings/output-styles/__next._full.txt +27 -32
  147. package/dist/web/settings/output-styles/__next._head.txt +4 -4
  148. package/dist/web/settings/output-styles/__next._index.txt +14 -14
  149. package/dist/web/settings/output-styles/__next._tree.txt +3 -8
  150. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +4 -4
  151. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +3 -3
  152. package/dist/web/settings/output-styles/__next.settings.txt +5 -5
  153. package/dist/web/settings/output-styles.html +1 -1
  154. package/dist/web/settings/output-styles.txt +27 -32
  155. package/dist/web/settings/prompts/__next._full.txt +27 -32
  156. package/dist/web/settings/prompts/__next._head.txt +4 -4
  157. package/dist/web/settings/prompts/__next._index.txt +14 -14
  158. package/dist/web/settings/prompts/__next._tree.txt +3 -8
  159. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  160. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  161. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  162. package/dist/web/settings/prompts.html +1 -1
  163. package/dist/web/settings/prompts.txt +27 -32
  164. package/dist/web/settings/providers/__next._full.txt +27 -32
  165. package/dist/web/settings/providers/__next._head.txt +4 -4
  166. package/dist/web/settings/providers/__next._index.txt +14 -14
  167. package/dist/web/settings/providers/__next._tree.txt +3 -8
  168. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  169. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  170. package/dist/web/settings/providers/__next.settings.txt +5 -5
  171. package/dist/web/settings/providers.html +1 -1
  172. package/dist/web/settings/providers.txt +27 -32
  173. package/dist/web/settings/skills/__next._full.txt +27 -32
  174. package/dist/web/settings/skills/__next._head.txt +4 -4
  175. package/dist/web/settings/skills/__next._index.txt +14 -14
  176. package/dist/web/settings/skills/__next._tree.txt +3 -8
  177. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  178. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  179. package/dist/web/settings/skills/__next.settings.txt +5 -5
  180. package/dist/web/settings/skills.html +1 -1
  181. package/dist/web/settings/skills.txt +27 -32
  182. package/dist/web/settings/tools/__next._full.txt +38 -0
  183. package/dist/web/settings/tools/__next._head.txt +6 -0
  184. package/dist/web/settings/tools/__next._index.txt +15 -0
  185. package/dist/web/settings/tools/__next._tree.txt +3 -0
  186. package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +9 -0
  187. package/dist/web/settings/tools/__next.settings.tools.txt +5 -0
  188. package/dist/web/settings/tools/__next.settings.txt +7 -0
  189. package/dist/web/settings/tools.html +1 -0
  190. package/dist/web/settings/tools.txt +38 -0
  191. package/dist/web/settings.html +1 -1
  192. package/dist/web/settings.txt +34 -38
  193. package/dist/web/workflows/__next._full.txt +32 -38
  194. package/dist/web/workflows/__next._head.txt +4 -4
  195. package/dist/web/workflows/__next._index.txt +14 -14
  196. package/dist/web/workflows/__next._tree.txt +3 -8
  197. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  198. package/dist/web/workflows/__next.workflows.txt +3 -3
  199. package/dist/web/workflows.html +1 -1
  200. package/dist/web/workflows.txt +32 -38
  201. package/dist/web/workspace/_/__next._full.txt +31 -36
  202. package/dist/web/workspace/_/__next._head.txt +4 -4
  203. package/dist/web/workspace/_/__next._index.txt +14 -14
  204. package/dist/web/workspace/_/__next._tree.txt +4 -8
  205. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -3
  206. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  207. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  208. package/dist/web/workspace/_.html +1 -1
  209. package/dist/web/workspace/_.txt +31 -36
  210. package/dist/web/workspaces/__next._full.txt +30 -37
  211. package/dist/web/workspaces/__next._head.txt +4 -4
  212. package/dist/web/workspaces/__next._index.txt +14 -14
  213. package/dist/web/workspaces/__next._tree.txt +3 -8
  214. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  215. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  216. package/dist/web/workspaces.html +1 -1
  217. package/dist/web/workspaces.txt +30 -37
  218. package/dist/ws/agent-prompt.js +45 -8
  219. package/dist/ws/agent-runner.js +88 -10
  220. package/package.json +1 -1
  221. package/dist/web/_next/static/chunks/0-1bfvfwifh-m.js +0 -1
  222. package/dist/web/_next/static/chunks/02mf61htij8g0.js +0 -31
  223. package/dist/web/_next/static/chunks/046me66nilkff.js +0 -1
  224. package/dist/web/_next/static/chunks/04v-pqqs-2lvp.css +0 -1
  225. package/dist/web/_next/static/chunks/06w~.izyfylap.js +0 -1
  226. package/dist/web/_next/static/chunks/09t62a89~jesc.js +0 -3
  227. package/dist/web/_next/static/chunks/09y_3krccdd~u.js +0 -1
  228. package/dist/web/_next/static/chunks/0_e~hmntdfop9.js +0 -1
  229. package/dist/web/_next/static/chunks/0_udc.6.tueey.js +0 -1
  230. package/dist/web/_next/static/chunks/0cke33d38fnby.js +0 -90
  231. package/dist/web/_next/static/chunks/0cyq~8xb~r5fc.js +0 -1
  232. package/dist/web/_next/static/chunks/0ewceguykiut5.js +0 -1
  233. package/dist/web/_next/static/chunks/0fxa1edqr7dve.js +0 -1
  234. package/dist/web/_next/static/chunks/0hra80eyuu37u.js +0 -1
  235. package/dist/web/_next/static/chunks/0ie7y4k2ncvnn.js +0 -1
  236. package/dist/web/_next/static/chunks/0igc~uli58ncw.js +0 -2
  237. package/dist/web/_next/static/chunks/0msb2mi3hiu5_.js +0 -67
  238. package/dist/web/_next/static/chunks/0p1n8bvfnpl41.js +0 -1
  239. package/dist/web/_next/static/chunks/0ppr271hz0xoq.js +0 -1
  240. package/dist/web/_next/static/chunks/0s_dva~eh2yhi.js +0 -3
  241. package/dist/web/_next/static/chunks/0typj55ox8d5i.js +0 -1
  242. package/dist/web/_next/static/chunks/0w2p4ldi2aymp.js +0 -1
  243. package/dist/web/_next/static/chunks/0zc0xgp5ourcn.js +0 -1
  244. package/dist/web/_next/static/chunks/0zmhdridea1s5.js +0 -90
  245. package/dist/web/_next/static/chunks/10.alq.6stmld.js +0 -1
  246. package/dist/web/_next/static/chunks/11b3zgk1etlkw.js +0 -7
  247. package/dist/web/_next/static/chunks/11qp8r5dotf7d.js +0 -1
  248. package/dist/web/_next/static/chunks/12mxlicp247c8.js +0 -1
  249. package/dist/web/_next/static/chunks/135w27dd8c19s.js +0 -5
  250. package/dist/web/_next/static/chunks/176dc-dtokxxi.js +0 -16
  251. package/dist/web/_next/static/chunks/17g-0pqre.anw.js +0 -1
  252. package/dist/web/_next/static/media/0a7740363b4d4863-s.1110aazvokzp..woff2 +0 -0
  253. package/dist/web/_next/static/media/0da9c7f357bd9d4d-s.0ek5sshv8wk3m.woff2 +0 -0
  254. package/dist/web/_next/static/media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2 +0 -0
  255. package/dist/web/_next/static/media/41e95f694c5c4549-s.0r1jrq7neqdsq.woff2 +0 -0
  256. package/dist/web/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 +0 -0
  257. package/dist/web/_next/static/media/5f9d24ebef5d5292-s.0esuu2f5si~v8.woff2 +0 -0
  258. package/dist/web/_next/static/media/6c55a692938ebbbc-s.0g6rbszwfgn9y.woff2 +0 -0
  259. package/dist/web/_next/static/media/8e6fa89aa22d24ec-s.p.0uvzar8hswo3p.woff2 +0 -0
  260. package/dist/web/_next/static/media/a218039a3287bcfd-s.p.17-1enzs_j91b.woff2 +0 -0
  261. package/dist/web/_next/static/media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2 +0 -0
  262. package/dist/web/_next/static/media/bdc7e24a509eb931-s.0apt5mko2.qn3.woff2 +0 -0
  263. package/dist/web/_next/static/media/c3cb240f9c892514-s.163v2i5cux7-c.woff2 +0 -0
  264. package/dist/web/_next/static/media/e2334d715941921e-s.p.12skym0rqknxy.woff2 +0 -0
  265. package/public/output-styles/carmack-mode.md +0 -381
  266. package/public/output-styles/codex-rigor-mode.md +0 -114
  267. package/public/output-styles/dhh-mode.md +0 -265
  268. package/public/output-styles/evan-you-mode.md +0 -539
  269. package/public/output-styles/index.json +0 -37
  270. package/public/output-styles/jobs-mode.md +0 -369
  271. package/public/output-styles/linus-mode.md +0 -135
  272. package/public/output-styles/uncle-bob-mode.md +0 -221
  273. package/public/prompt/andrej-karpathy-skills.md +0 -65
  274. package/public/prompt/claude-token-efficient-coding.md +0 -35
  275. package/public/prompt/index.json +0 -12
  276. package/public/skills/index.json +0 -92
  277. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +0 -243
  278. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +0 -44
  279. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +0 -46
  280. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +0 -124
  281. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +0 -124
  282. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +0 -438
  283. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +0 -29
  284. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +0 -40
  285. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +0 -58
  286. package/public/skills/superpowers/brainstorming/SKILL.md +0 -164
  287. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +0 -214
  288. package/public/skills/superpowers/brainstorming/scripts/helper.js +0 -88
  289. package/public/skills/superpowers/brainstorming/scripts/server.cjs +0 -354
  290. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +0 -148
  291. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +0 -56
  292. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +0 -49
  293. package/public/skills/superpowers/brainstorming/visual-companion.md +0 -287
  294. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +0 -182
  295. package/public/skills/superpowers/executing-plans/SKILL.md +0 -70
  296. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +0 -251
  297. package/public/skills/superpowers/receiving-code-review/SKILL.md +0 -213
  298. package/public/skills/superpowers/requesting-code-review/SKILL.md +0 -103
  299. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +0 -168
  300. package/public/skills/superpowers/subagent-driven-development/SKILL.md +0 -279
  301. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
  302. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +0 -113
  303. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +0 -61
  304. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +0 -119
  305. package/public/skills/superpowers/systematic-debugging/SKILL.md +0 -296
  306. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +0 -158
  307. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +0 -115
  308. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +0 -122
  309. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +0 -63
  310. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +0 -169
  311. package/public/skills/superpowers/systematic-debugging/test-academic.md +0 -14
  312. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +0 -58
  313. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +0 -68
  314. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +0 -69
  315. package/public/skills/superpowers/test-driven-development/SKILL.md +0 -371
  316. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +0 -299
  317. package/public/skills/superpowers/using-git-worktrees/SKILL.md +0 -215
  318. package/public/skills/superpowers/using-superpowers/SKILL.md +0 -117
  319. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +0 -59
  320. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +0 -42
  321. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +0 -51
  322. package/public/skills/superpowers/verification-before-completion/SKILL.md +0 -139
  323. package/public/skills/superpowers/writing-plans/SKILL.md +0 -152
  324. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +0 -49
  325. package/public/skills/superpowers/writing-skills/SKILL.md +0 -655
  326. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +0 -1150
  327. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  328. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +0 -172
  329. package/public/skills/superpowers/writing-skills/persuasion-principles.md +0 -187
  330. package/public/skills/superpowers/writing-skills/render-graphs.js +0 -168
  331. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +0 -384
  332. /package/dist/web/_next/static/{OoXAsPtrUWjC1l898FSvI → x4-CsKe6qUQyFDWVtfvUg}/_buildManifest.js +0 -0
  333. /package/dist/web/_next/static/{OoXAsPtrUWjC1l898FSvI → x4-CsKe6qUQyFDWVtfvUg}/_clientMiddlewareManifest.js +0 -0
  334. /package/dist/web/_next/static/{OoXAsPtrUWjC1l898FSvI → x4-CsKe6qUQyFDWVtfvUg}/_ssgManifest.js +0 -0
@@ -0,0 +1,2 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,188815,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(465458),n=e.i(681622),s=e.i(344118),l=e.i(650654),i=e.i(953700);e.s(["SearchSelect",0,function({value:e,onChange:o,options:d,placeholder:c="Select...",searchPlaceholder:u="Search...",allowCustom:m=!0,className:p}){let h=(0,a.useRef)(null),[x,f]=(0,a.useState)(!1),[g,v]=(0,a.useState)("");(0,a.useEffect)(()=>{let e=e=>{h.current&&!h.current.contains(e.target)&&f(!1)};return x&&document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[x]);let b=d.filter(e=>(e.label??e.value).toLowerCase().includes(g.toLowerCase())),y=d.some(e=>e.value.toLowerCase()===g.toLowerCase()),w=d.find(t=>t.value===e),k=e&&!d.some(t=>t.value===e),j=e=>{o(e),f(!1),v("")};return(0,t.jsxs)("div",{ref:h,className:(0,r.cn)("relative",p),children:[(0,t.jsxs)("button",{type:"button",onClick:()=>{f(!0),v("")},className:(0,r.cn)("flex h-8 w-full items-center justify-between gap-2 rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none hover:bg-muted/50 focus-visible:border-ring dark:bg-input/30"),children:[(0,t.jsx)("span",{className:(0,r.cn)("truncate",!e&&"text-muted-foreground"),children:w?w.label??w.value:k?e:c}),(0,t.jsx)(l.ChevronDown,{className:"size-3.5 shrink-0 opacity-50"})]}),x&&(0,t.jsxs)("div",{className:"absolute inset-x-0 top-full z-50 mt-1 rounded-lg border bg-popover p-1 shadow-md",children:[(0,t.jsx)(n.Input,{value:g,onChange:e=>v(e.target.value),placeholder:u,className:"h-7 text-xs",onKeyDown:e=>{"Enter"===e.key&&m&&g.trim()&&(e.preventDefault(),j(g.trim())),"Escape"===e.key&&f(!1)},autoFocus:!0}),(0,t.jsxs)("div",{className:"mt-1 max-h-48 overflow-y-auto",children:[b.map(a=>(0,t.jsxs)("button",{type:"button",className:(0,r.cn)("flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs hover:bg-muted/50",e===a.value&&"bg-muted"),onClick:()=>j(a.value),children:[(0,t.jsx)(s.Check,{className:(0,r.cn)("size-3 shrink-0",e===a.value?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:a.label??a.value})]},a.value)),m&&g.trim()&&!y&&(0,t.jsxs)("button",{type:"button",className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-xs text-primary hover:bg-muted/50 cursor-pointer",onClick:()=>j(g.trim()),children:[(0,t.jsx)(i.Plus,{className:"size-3 shrink-0"}),(0,t.jsxs)("span",{className:"truncate",children:['Use "',g.trim(),'"']})]}),!b.length&&!g.trim()&&(0,t.jsx)("div",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No results"})]})]})]})}])},325443,946899,e=>{"use strict";let t=(0,e.i(433721).default)("bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);e.s(["default",0,t],946899),e.s(["Bot",0,t],325443)},562918,928542,e=>{"use strict";var t=e.i(370383),a=e.i(969490);function r(e){return(0,a.useRenderElement)(e.defaultTagName??"div",e,e)}e.s(["useRender",0,r],928542);var n=e.i(294237),s=e.i(465458);let l=(0,n.cva)("group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-4xl border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3!",{variants:{variant:{default:"bg-primary text-primary-foreground [a]:hover:bg-primary/80",secondary:"bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80",destructive:"bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20",outline:"border-border text-foreground [a]:hover:bg-muted [a]:hover:text-muted-foreground",ghost:"hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50",link:"text-primary underline-offset-4 hover:underline"}},defaultVariants:{variant:"default"}});e.s(["Badge",0,function({className:e,variant:a="default",render:n,...i}){return r({defaultTagName:"span",props:(0,t.mergeProps)({className:(0,s.cn)(l({variant:a}),e)},i),render:n,state:{slot:"badge",variant:a}})}],562918)},368942,e=>{"use strict";let t=(0,e.i(816709).create)((e,t)=>({models:[],providers:[],loaded:!1,ensure:async()=>{if(!t().loaded)try{let[t,a]=await Promise.all([fetch("/api/models").then(e=>e.json()),fetch("/api/providers").then(e=>e.json())]);e({models:t,providers:a,loaded:!0})}catch{}},addModel:t=>e(e=>({models:[...e.models,t]})),updateModel:t=>e(e=>({models:e.models.map(e=>e.id===t.id?t:e)})),removeModel:t=>e(e=>({models:e.models.filter(e=>e.id!==t)})),addProvider:t=>e(e=>({providers:[...e.providers,t]})),updateProvider:t=>e(e=>({providers:e.providers.map(e=>e.id===t.id?t:e)})),removeProvider:t=>e(e=>({providers:e.providers.filter(e=>e.id!==t)}))}));e.s(["useLLMStore",0,t])},451534,680422,e=>{"use strict";let t=(0,e.i(433721).default)("folder-open",[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]]);e.s(["default",0,t],680422),e.s(["FolderOpen",0,t],451534)},426022,e=>{"use strict";let t=(0,e.i(433721).default)("message-square",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]]);e.s(["MessageSquare",0,t],426022)},227634,e=>{"use strict";let t=(0,e.i(433721).default)("hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);e.s(["Hash",0,t],227634)},943997,e=>{"use strict";let t=(0,e.i(433721).default)("database",[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]]);e.s(["Database",0,t],943997)},159619,839374,e=>{"use strict";let t=(0,e.i(433721).default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]);e.s(["default",0,t],839374),e.s(["Copy",0,t],159619)},788010,e=>{"use strict";var t=e.i(344180),a=e.i(465458);e.s(["Textarea",0,function({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("flex field-sizing-content min-h-16 w-full rounded-lg border border-input bg-transparent px-2.5 py-2 text-base transition-colors outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",e),...r})}])},189131,e=>{"use strict";var t=e.i(764556);let a=t.createContext(void 0);e.s(["useDirection",0,function(){let e=t.useContext(a);return e?.direction??"ltr"}])},137340,288556,e=>{"use strict";let t=(0,e.i(433721).default)("trash-2",[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]]);e.s(["default",0,t],288556),e.s(["Trash2",0,t],137340)},953700,e=>{"use strict";let t=(0,e.i(433721).default)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);e.s(["Plus",0,t],953700)},355819,e=>{"use strict";let t=(0,e.i(816709).create)((e,t)=>({agents:[],loaded:!1,loading:!1,ensure:async()=>{let{loaded:a,loading:r}=t();if(!a&&!r){e({loading:!0});try{let t=await fetch("/api/agents/presets");if(!t.ok)return;let a=await t.json();e({agents:a,loaded:!0})}catch{}finally{e({loading:!1})}}},toggleEnabled:async a=>{let r=t().agents.find(e=>e.id===a);if(!r)return;let n=!r.enabled;e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:n}:e)}));try{(await fetch(`/api/agents/presets/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...r,enabled:n})})).ok||e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:r.enabled}:e)}))}catch{e(e=>({agents:e.agents.map(e=>e.id===a?{...e,enabled:r.enabled}:e)}))}}}));e.s(["findAgentById",0,function(e){return t.getState().agents.find(t=>t.id===e)},"useAgentStore",0,t])},394394,e=>{"use strict";var t=e.i(764556);let a=t.createContext(void 0),r={disableStyleElements:!1};e.s(["useCSPContext",0,function(){return t.useContext(a)??r}])},464111,e=>{"use strict";e.s(["clamp",0,function(e,t=Number.MIN_SAFE_INTEGER,a=Number.MAX_SAFE_INTEGER){return Math.max(t,Math.min(e,a))}])},191118,e=>{"use strict";var t,a,r,n,s,l=e.i(344180);e.s([],556166),e.i(556166),e.i(8890);var i=e.i(764556),o=e.i(29905),d=e.i(232449),c=e.i(267805);let u=i.createContext(void 0);function m(){let e=i.useContext(u);if(void 0===e)throw Error((0,c.default)(53));return e}var p=e.i(969490);let h=((t={}).scrollAreaCornerHeight="--scroll-area-corner-height",t.scrollAreaCornerWidth="--scroll-area-corner-width",t);function x(e,t,a){if(!e)return 0;let r=getComputedStyle(e),n="x"===a?"Inline":"Block";return"x"===a&&"margin"===t?2*parseFloat(r[`${t}InlineStart`]):parseFloat(r[`${t}${n}Start`])+parseFloat(r[`${t}${n}End`])}let f=((a={}).orientation="data-orientation",a.hovering="data-hovering",a.scrolling="data-scrolling",a.hasOverflowX="data-has-overflow-x",a.hasOverflowY="data-has-overflow-y",a.overflowXStart="data-overflow-x-start",a.overflowXEnd="data-overflow-x-end",a.overflowYStart="data-overflow-y-start",a.overflowYEnd="data-overflow-y-end",a),g="base-ui-disable-scrollbar";var v=e.i(139236);let b=((r={}).scrolling="data-scrolling",r.hasOverflowX="data-has-overflow-x",r.hasOverflowY="data-has-overflow-y",r.overflowXStart="data-overflow-x-start",r.overflowXEnd="data-overflow-x-end",r.overflowYStart="data-overflow-y-start",r.overflowYEnd="data-overflow-y-end",r),y={hasOverflowX:e=>e?{[b.hasOverflowX]:""}:null,hasOverflowY:e=>e?{[b.hasOverflowY]:""}:null,overflowXStart:e=>e?{[b.overflowXStart]:""}:null,overflowXEnd:e=>e?{[b.overflowXEnd]:""}:null,overflowYStart:e=>e?{[b.overflowYStart]:""}:null,overflowYEnd:e=>e?{[b.overflowYEnd]:""}:null,cornerHidden:()=>null};var w=e.i(410421),k=e.i(394394);let j={x:0,y:0},S={width:0,height:0},N={xStart:!1,xEnd:!1,yStart:!1,yEnd:!1},C={x:!0,y:!0,corner:!0},D=i.forwardRef(function(e,t){let a,{render:r,className:n,overflowEdgeThreshold:s,style:c,...m}=e,b=function(e){if("number"==typeof e){let t=Math.max(0,e);return{xStart:t,xEnd:t,yStart:t,yEnd:t}}return{xStart:Math.max(0,e?.xStart||0),xEnd:Math.max(0,e?.xEnd||0),yStart:Math.max(0,e?.yStart||0),yEnd:Math.max(0,e?.yEnd||0)}}(s),D=(0,v.useBaseUiId)(),T=(0,d.useTimeout)(),P=(0,d.useTimeout)(),{nonce:E,disableStyleElements:M}=(0,k.useCSPContext)(),[A,z]=i.useState(!1),[O,I]=i.useState(!1),[R,L]=i.useState(!1),[K,B]=i.useState(!1),[H,U]=i.useState(!1),[W,$]=i.useState(S),[X,Y]=i.useState(S),[V,_]=i.useState(N),[F,q]=i.useState(C),G=i.useRef(null),Q=i.useRef(null),J=i.useRef(null),Z=i.useRef(null),ee=i.useRef(null),et=i.useRef(null),ea=i.useRef(null),er=i.useRef(!1),en=i.useRef(0),es=i.useRef(0),el=i.useRef(0),ei=i.useRef(0),eo=i.useRef("vertical"),ed=i.useRef(j),ec=(0,o.useStableCallback)(e=>{let t=e.x-ed.current.x,a=e.y-ed.current.y;ed.current=e,0!==a&&(L(!0),T.start(500,()=>{L(!1)})),0!==t&&(I(!0),P.start(500,()=>{I(!1)}))}),eu=(0,o.useStableCallback)(e=>{0===e.button&&(er.current=!0,en.current=e.clientY,es.current=e.clientX,eo.current=e.currentTarget.getAttribute(f.orientation),Q.current&&(el.current=Q.current.scrollTop,ei.current=Q.current.scrollLeft),ee.current&&"vertical"===eo.current&&ee.current.setPointerCapture(e.pointerId),et.current&&"horizontal"===eo.current&&et.current.setPointerCapture(e.pointerId))}),em=(0,o.useStableCallback)(e=>{if(!er.current)return;let t=e.clientY-en.current,a=e.clientX-es.current;if(Q.current){let r=Q.current.scrollHeight,n=Q.current.clientHeight,s=Q.current.scrollWidth,l=Q.current.clientWidth;if(ee.current&&J.current&&"vertical"===eo.current){let a=x(J.current,"padding","y"),s=x(ee.current,"margin","y"),l=ee.current.offsetHeight,i=J.current.offsetHeight-l-a-s;Q.current.scrollTop=el.current+t/i*(r-n),e.preventDefault(),L(!0),T.start(500,()=>{L(!1)})}if(et.current&&Z.current&&"horizontal"===eo.current){let t=x(Z.current,"padding","x"),r=x(et.current,"margin","x"),n=et.current.offsetWidth,i=Z.current.offsetWidth-n-t-r;Q.current.scrollLeft=ei.current+a/i*(s-l),e.preventDefault(),I(!0),P.start(500,()=>{I(!1)})}}}),ep=(0,o.useStableCallback)(e=>{er.current=!1,ee.current&&"vertical"===eo.current&&ee.current.releasePointerCapture(e.pointerId),et.current&&"horizontal"===eo.current&&et.current.releasePointerCapture(e.pointerId)});function eh(e){B("touch"===e.pointerType)}function ex(e){eh(e),"touch"!==e.pointerType&&z((0,w.contains)(G.current,e.target))}let ef=i.useMemo(()=>({scrolling:O||R,hasOverflowX:!F.x,hasOverflowY:!F.y,overflowXStart:V.xStart,overflowXEnd:V.xEnd,overflowYStart:V.yStart,overflowYEnd:V.yEnd,cornerHidden:F.corner}),[O,R,F.x,F.y,F.corner,V]),eg={role:"presentation",onPointerEnter:ex,onPointerMove:ex,onPointerDown:eh,onPointerLeave(){z(!1)},style:{position:"relative",[h.scrollAreaCornerHeight]:`${W.height}px`,[h.scrollAreaCornerWidth]:`${W.width}px`}},ev=(0,p.useRenderElement)("div",e,{state:ef,ref:[t,G],props:[eg,m],stateAttributesMapping:y}),eb=i.useMemo(()=>({handlePointerDown:eu,handlePointerMove:em,handlePointerUp:ep,handleScroll:ec,cornerSize:W,setCornerSize:$,thumbSize:X,setThumbSize:Y,hasMeasuredScrollbar:H,setHasMeasuredScrollbar:U,touchModality:K,cornerRef:ea,scrollingX:O,setScrollingX:I,scrollingY:R,setScrollingY:L,hovering:A,setHovering:z,viewportRef:Q,rootRef:G,scrollbarYRef:J,scrollbarXRef:Z,thumbYRef:ee,thumbXRef:et,rootId:D,hiddenState:F,setHiddenState:q,overflowEdges:V,setOverflowEdges:_,viewportState:ef,overflowEdgeThreshold:b}),[eu,em,ep,ec,W,X,H,K,O,I,R,L,A,z,D,F,V,ef,b]);return(0,l.jsxs)(u.Provider,{value:eb,children:[!M&&(a=E,(0,l.jsx)("style",{nonce:a,href:g,precedence:"base-ui:low",children:`.${g}{scrollbar-width:none}.${g}::-webkit-scrollbar{display:none}`})),ev]})});var T=e.i(277642),P=e.i(454889);let E=i.createContext(void 0);var M=e.i(189131),A=e.i(464111);let z=((n={}).scrollAreaOverflowXStart="--scroll-area-overflow-x-start",n.scrollAreaOverflowXEnd="--scroll-area-overflow-x-end",n.scrollAreaOverflowYStart="--scroll-area-overflow-y-start",n.scrollAreaOverflowYEnd="--scroll-area-overflow-y-end",n);function O(e,t){if(t<=0)return 0;let a=(0,A.clamp)(e,0,t),r=t-a,n=a<=1,s=r<=1;return n&&s?a<=r?0:t:n?0:s?t:a}let I=!1,R=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{viewportRef:c,scrollbarYRef:u,scrollbarXRef:h,thumbYRef:f,thumbXRef:v,cornerRef:b,cornerSize:w,setCornerSize:k,setThumbSize:j,rootId:S,setHiddenState:N,hiddenState:C,setHasMeasuredScrollbar:D,handleScroll:R,setHovering:L,setOverflowEdges:K,overflowEdges:B,overflowEdgeThreshold:H,scrollingX:U,scrollingY:W}=m(),$=(0,M.useDirection)(),X=i.useRef(!0),Y=i.useRef([NaN,NaN,NaN,NaN]),V=(0,d.useTimeout)(),_=(0,d.useTimeout)(),F=(0,o.useStableCallback)(()=>{var e;let t,a,r=c.current,n=u.current,s=h.current,l=f.current,i=v.current,o=b.current;if(!r)return;let d=r.scrollHeight,m=r.scrollWidth,p=r.clientHeight,g=r.clientWidth,y=r.scrollTop,S=r.scrollLeft,C=Y.current,T=Number.isNaN(C[0]);if(C[0]=p,C[1]=d,C[2]=g,C[3]=m,T&&D(!0),0===d||0===m)return;let P=(t=(e=r).clientHeight>=e.scrollHeight,{y:t,x:a=e.clientWidth>=e.scrollWidth,corner:t||a}),E=P.y,M=P.x,I=g/m,R=p/d,L=Math.max(0,m-g),B=Math.max(0,d-p),U=0,W=0;!M&&(U=O("rtl"===$?(0,A.clamp)(-S,0,L):(0,A.clamp)(S,0,L),L),W=L-U);let X=E?0:(0,A.clamp)(y,0,B),V=E?0:O(X,B),_=E?0:B-V,F=M?0:g,q=E?0:p,G=0,Q=0;M||E||(G=n?.offsetWidth||0,Q=s?.offsetHeight||0);let J=0===w.width&&0===w.height,Z=J?G:0,ee=J?Q:0,et=x(s,"padding","x"),ea=x(n,"padding","y"),er=x(i,"margin","x"),en=x(l,"margin","y"),es=F-et-er,el=q-ea-en,ei=s?Math.min(s.offsetWidth-Z,es):es,eo=n?Math.min(n.offsetHeight-ee,el):el,ed=Math.max(16,ei*I),ec=Math.max(16,eo*R);if(j(e=>e.height===ec&&e.width===ed?e:{width:ed,height:ec}),n&&l){let e=n.offsetHeight-ec-ea-en,t=d-p,a=Math.min(e,Math.max(0,(0===t?0:y/t)*e));l.style.transform=`translate3d(0,${a}px,0)`}if(s&&i){let e=s.offsetWidth-ed-et-er,t=m-g,a=0===t?0:S/t,r="rtl"===$?(0,A.clamp)(a*e,-e,0):(0,A.clamp)(a*e,0,e);i.style.transform=`translate3d(${r}px,0,0)`}for(let[e,t]of[[z.scrollAreaOverflowXStart,U],[z.scrollAreaOverflowXEnd,W],[z.scrollAreaOverflowYStart,V],[z.scrollAreaOverflowYEnd,_]])r.style.setProperty(e,`${t}px`);o&&(M||E?k({width:0,height:0}):M||E||k({width:G,height:Q})),N(e=>{var t,a;return t=e,a=P,t.y===a.y&&t.x===a.x&&t.corner===a.corner?t:a});let eu={xStart:!M&&U>H.xStart,xEnd:!M&&W>H.xEnd,yStart:!E&&V>H.yStart,yEnd:!E&&_>H.yEnd};K(e=>e.xStart===eu.xStart&&e.xEnd===eu.xEnd&&e.yStart===eu.yStart&&e.yEnd===eu.yEnd?e:eu)});function q(){X.current=!1}(0,T.useIsoLayoutEffect)(()=>{c.current&&(I||P.isWebKit||("u">typeof CSS&&"registerProperty"in CSS&&[z.scrollAreaOverflowXStart,z.scrollAreaOverflowXEnd,z.scrollAreaOverflowYStart,z.scrollAreaOverflowYEnd].forEach(e=>{try{CSS.registerProperty({name:e,syntax:"<length>",inherits:!1,initialValue:"0px"})}catch{}}),I=!0))},[c]),(0,T.useIsoLayoutEffect)(()=>{queueMicrotask(F)},[F,C,$]),(0,T.useIsoLayoutEffect)(()=>{c.current?.matches(":hover")&&L(!0)},[c,L]),i.useEffect(()=>{let e=c.current;if("u"<typeof ResizeObserver||!e)return;let t=!1,a=new ResizeObserver(()=>{if(!t){t=!0;let a=Y.current;if(a[0]===e.clientHeight&&a[1]===e.scrollHeight&&a[2]===e.clientWidth&&a[3]===e.scrollWidth)return}F()});return a.observe(e),_.start(0,()=>{let t=e.getAnimations({subtree:!0});0!==t.length&&Promise.allSettled(t.map(e=>e.finished)).then(F).catch(()=>{})}),()=>{a.disconnect(),_.clear()}},[F,c,_]);let G={role:"presentation",...S&&{"data-id":`${S}-viewport`},tabIndex:C.x&&C.y?-1:0,className:g,style:{overflow:"scroll"},onScroll(){c.current&&(F(),X.current||R({x:c.current.scrollLeft,y:c.current.scrollTop}),V.start(100,()=>{X.current=!0}))},onWheel:q,onTouchMove:q,onPointerMove:q,onPointerEnter:q,onKeyDown:q},Q=i.useMemo(()=>({scrolling:U||W,hasOverflowX:!C.x,hasOverflowY:!C.y,overflowXStart:B.xStart,overflowXEnd:B.xEnd,overflowYStart:B.yStart,overflowYEnd:B.yEnd,cornerHidden:C.corner}),[U,W,C.x,C.y,C.corner,B]),J=(0,p.useRenderElement)("div",e,{ref:[t,c],state:Q,props:[G,s],stateAttributesMapping:y}),Z=i.useMemo(()=>({computeThumbPosition:F}),[F]);return(0,l.jsx)(E.Provider,{value:Z,children:J})});var L=e.i(422561);let K=i.createContext(void 0),B=((s={}).scrollAreaThumbHeight="--scroll-area-thumb-height",s.scrollAreaThumbWidth="--scroll-area-thumb-width",s),H=i.forwardRef(function(e,t){let{render:a,className:r,orientation:n="vertical",keepMounted:s=!1,style:o,...d}=e,{hovering:c,scrollingX:u,scrollingY:f,hiddenState:g,overflowEdges:v,scrollbarYRef:b,scrollbarXRef:k,viewportRef:j,thumbYRef:S,thumbXRef:N,handlePointerDown:C,handlePointerUp:D,rootId:T,thumbSize:P,hasMeasuredScrollbar:E}=m(),A={hovering:c,scrolling:{horizontal:u,vertical:f}[n],orientation:n,hasOverflowX:!g.x,hasOverflowY:!g.y,overflowXStart:v.xStart,overflowXEnd:v.xEnd,overflowYStart:v.yStart,overflowYEnd:v.yEnd,cornerHidden:g.corner},z=(0,M.useDirection)();i.useEffect(()=>{let e=j.current,t="vertical"===n?b.current:k.current;if(t)return(0,L.addEventListener)(t,"wheel",function(a){if(e&&t&&!a.ctrlKey){if(a.preventDefault(),"vertical"===n){if(0===e.scrollTop&&a.deltaY<0)return}else if(0===e.scrollLeft&&a.deltaX<0)return;if("vertical"===n){if(e.scrollTop===e.scrollHeight-e.clientHeight&&a.deltaY>0)return}else if(e.scrollLeft===e.scrollWidth-e.clientWidth&&a.deltaX>0)return;"vertical"===n?e.scrollTop+=a.deltaY:e.scrollLeft+=a.deltaX}},{passive:!1})},[n,k,b,j]);let O={...T&&{"data-id":`${T}-scrollbar`},onPointerDown(e){if(0!==e.button)return;let t=(0,w.getTarget)(e.nativeEvent),a="vertical"===n?S.current:N.current;if(!(a&&(0,w.contains)(a,t))&&j.current){if(S.current&&b.current&&"vertical"===n){let t=x(S.current,"margin","y"),a=x(b.current,"padding","y"),r=S.current.offsetHeight,n=b.current.getBoundingClientRect(),s=e.clientY-n.top-r/2-a+t/2,l=j.current.scrollHeight,i=j.current.clientHeight,o=b.current.offsetHeight-r-a-t;j.current.scrollTop=s/o*(l-i)}if(N.current&&k.current&&"horizontal"===n){let t,a=x(N.current,"margin","x"),r=x(k.current,"padding","x"),n=N.current.offsetWidth,s=k.current.getBoundingClientRect(),l=e.clientX-s.left-n/2-r+a/2,i=j.current.scrollWidth,o=j.current.clientWidth,d=l/(k.current.offsetWidth-n-r-a);"rtl"===z?(t=(1-d)*(i-o),j.current.scrollLeft<=0&&(t=-t)):t=d*(i-o),j.current.scrollLeft=t}C(e)}},onPointerUp:D,style:{position:"absolute",touchAction:"none",WebkitUserSelect:"none",userSelect:"none",visibility:E||s?void 0:"hidden",..."vertical"===n&&{top:0,bottom:`var(${h.scrollAreaCornerHeight})`,insetInlineEnd:0,[B.scrollAreaThumbHeight]:`${P.height}px`},..."horizontal"===n&&{insetInlineStart:0,insetInlineEnd:`var(${h.scrollAreaCornerWidth})`,bottom:0,[B.scrollAreaThumbWidth]:`${P.width}px`}}},I=(0,p.useRenderElement)("div",e,{ref:[t,"vertical"===n?b:k],state:A,props:[O,d],stateAttributesMapping:y}),R=i.useMemo(()=>({orientation:n}),[n]),H="vertical"===n?g.y:g.x;return s||!H?(0,l.jsx)(K.Provider,{value:R,children:I}):null}),U=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,l=i.useRef(null),{computeThumbPosition:o}=function(){let e=i.useContext(E);if(void 0===e)throw Error((0,c.default)(55));return e}(),{viewportState:d}=m();return(0,T.useIsoLayoutEffect)(()=>{if("u"<typeof ResizeObserver)return;let e=!1,t=new ResizeObserver(()=>{if(!e){e=!0;return}o()});return l.current&&t.observe(l.current),()=>{t.disconnect()}},[o]),(0,p.useRenderElement)("div",e,{ref:[t,l],state:d,stateAttributesMapping:y,props:[{role:"presentation",style:{minWidth:"fit-content"}},s]})}),W=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{thumbYRef:l,thumbXRef:o,handlePointerDown:d,handlePointerMove:u,handlePointerUp:h,setScrollingX:x,setScrollingY:f,hasMeasuredScrollbar:g}=m(),{orientation:v}=function(){let e=i.useContext(K);if(void 0===e)throw Error((0,c.default)(54));return e}();return(0,p.useRenderElement)("div",e,{ref:[t,"vertical"===v?l:o],state:{orientation:v},props:[{onPointerDown:d,onPointerMove:u,onPointerUp(e){"vertical"===v&&f(!1),"horizontal"===v&&x(!1),h(e)},style:{visibility:g?void 0:"hidden",..."vertical"===v&&{height:`var(${B.scrollAreaThumbHeight})`},..."horizontal"===v&&{width:`var(${B.scrollAreaThumbWidth})`}}},s]})}),$=i.forwardRef(function(e,t){let{render:a,className:r,style:n,...s}=e,{cornerRef:l,cornerSize:i,hiddenState:o}=m(),d=(0,p.useRenderElement)("div",e,{ref:[t,l],props:[{style:{position:"absolute",bottom:0,insetInlineEnd:0,width:i.width,height:i.height}},s]});return o.corner?null:d});e.s(["Content",0,U,"Corner",0,$,"Root",0,D,"Scrollbar",0,H,"Thumb",0,W,"Viewport",0,R],787180);var X=e.i(787180),X=X,Y=e.i(465458);function V({className:e,orientation:t="vertical",...a}){return(0,l.jsx)(X.Scrollbar,{"data-slot":"scroll-area-scrollbar","data-orientation":t,orientation:t,className:(0,Y.cn)("flex touch-none p-px transition-colors select-none data-horizontal:h-2.5 data-horizontal:flex-col data-horizontal:border-t data-horizontal:border-t-transparent data-vertical:h-full data-vertical:w-2.5 data-vertical:border-l data-vertical:border-l-transparent",e),...a,children:(0,l.jsx)(X.Thumb,{"data-slot":"scroll-area-thumb",className:"relative flex-1 rounded-full bg-border"})})}e.s(["ScrollArea",0,function({className:e,children:t,...a}){return(0,l.jsxs)(X.Root,{"data-slot":"scroll-area",className:(0,Y.cn)("relative overflow-hidden",e),...a,children:[(0,l.jsx)(X.Viewport,{"data-slot":"scroll-area-viewport",className:"size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1",children:t}),(0,l.jsx)(V,{}),(0,l.jsx)(X.Corner,{})]})}],191118)},611176,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(465458),n=e.i(523592),s=e.i(355819);let l=[[/generativelanguage\.googleapis\.com/i,"gemini"],[/aiplatform\.googleapis\.com/i,"google"],[/api\.anthropic\.com/i,"anthropic"],[/api\.openai\.com/i,"openai"],[/api\.deepseek\.com/i,"deepseek"],[/open\.bigmodel\.cn/i,"zhipu"],[/api\.moonshot\.cn/i,"kimi"],[/dashscope\.aliyuncs\.com/i,"alibaba"],[/dashscope\.com/i,"alibaba"],[/aip\.baidubce\.com/i,"baidu"],[/ark\.cn-beijing\.volces\.com/i,"doubao"],[/api\.coze\./i,"doubao"],[/api\.minimax\.chat/i,"minimax"],[/api\.minimaxi\.com/i,"minimax"],[/api\.mistral\.ai/i,"mistral"],[/api\.groq\.com/i,"xai"],[/api\.x\.ai/i,"xai"],[/openrouter\.ai/i,"openrouter"],[/api\.siliconflow\.cn/i,"siliconflow"],[/localhost.*11434/i,"ollama"],[/127\.0\.0\.1.*11434/i,"ollama"],[/api\.cohere\./i,"cohere"],[/api-inference\.huggingface\.co/i,"huggingface"],[/openai\.azure\.com/i,"azure"],[/\.openai\.azure\.com/i,"azure"],[/bedrock-runtime\..*\.amazonaws\.com/i,"aws"],[/api\.huawei\./i,"huawei"],[/hunyuan\.tencentcloudapi\.com/i,"tencent"],[/api\.01\.ai/i,"yi"],[/api\.stepfun\.com/i,"stepfun"],[/api\.novita\.ai/i,"novita"],[/integrate\.api\.nvidia\.com/i,"nvidia"],[/api\.cloudflare\.com\/client\/v4\/accounts/i,"cloudflare"],[/meta\.llama/i,"meta"]];e.s(["AgentIcon",0,function({agentId:e,name:i,avatarUrl:o,apiBase:d,className:c,onClick:u}){let m,p=(0,s.useAgentStore)(e=>e.agents),[h,x]=(0,a.useState)(!1),[f,g]=(0,a.useState)(!1),v=e?p.find(t=>t.id===e):void 0,b=i||v?.name||e||"?",y=o??v?.avatarUrl,w=d??v?.apiBase,k=!h&&(0,n.resolveServerAssetUrl)(y)||(f?"":(m=function(e){if(!e)return"";for(let[t,a]of l)if(t.test(e))return a;return""}(w))?(0,n.resolveServerAssetUrl)(`/static/provider-icons/${m}.svg`):"");(0,a.useEffect)(()=>{x(!1),g(!1)},[y,w]);let j=b.charAt(0).toUpperCase();return(0,t.jsx)("div",{onClick:u,className:(0,r.cn)("flex items-center justify-center overflow-hidden rounded-lg bg-muted shrink-0",k&&"bg-transparent",!u&&"pointer-events-none",u&&"cursor-pointer hover:opacity-80 transition-opacity",c),children:k?(0,t.jsx)("img",{src:k,alt:b,className:"size-full object-cover rounded-[inherit]",onError:()=>{!h&&y?x(!0):g(!0)}}):(0,t.jsx)("span",{className:"text-xs font-semibold select-none",children:j})})}])},444433,e=>{"use strict";e.s(["BUILT_IN_AGENT_TOOLS",0,[{name:"CreateCurrentChannelIssue",label:"Create Current Issue",description:"Create and bind an issue for the current channel."},{name:"ViewCurrentChannelIssue",label:"View Current Issue",description:"View the issue and comments bound to the current channel."},{name:"AddCurrentChannelComment",label:"Add Current Comment",description:"Add a comment to the issue bound to the current channel."},{name:"ReadTerminalOutput",label:"Read Terminal Output",description:"Read paginated terminal output by session ID. Defaults to the newest 100 lines."},{name:"ListQuickCommands",label:"List Quick Commands",description:"List all quick commands for a workspace with their running status."},{name:"RunQuickCommand",label:"Run Quick Command",description:"Start a quick command by its ID. Returns the terminal session ID."},{name:"StopQuickCommand",label:"Stop Quick Command",description:"Stop a running quick command by its ID."},{name:"ListDatabases",label:"List Databases",description:"List knowledge base databases in the workspace and their IDs."},{name:"ListDatabaseNodes",label:"List Database Nodes",description:"List knowledge base nodes under a path, optionally filtered by title."},{name:"SearchDatabaseNodes",label:"Search Database Nodes",description:"Search knowledge base nodes by title or content under a path."},{name:"QueryDatabaseVectors",label:"Query Database Vectors",description:"Search knowledge base nodes by vector similarity using the database-bound embedding model."},{name:"ReadDatabaseNode",label:"Read Database Node",description:"Read knowledge base node metadata and content by ID."},{name:"ListDatabaseNodeVersions",label:"List Database Versions",description:"List content version history and diffs for a knowledge base node by ID."},{name:"CreateDatabaseNode",label:"Create Database Node",description:"Create a knowledge base node under a parent path or parent ID."},{name:"WriteDatabaseNode",label:"Write Database Node",description:"Insert, replace, or overwrite knowledge base node content by ID."},{name:"DeleteDatabaseNode",label:"Delete Database Node",description:"Trash or permanently delete a knowledge base node and its descendants."},{name:"MoveDatabaseNode",label:"Move Database Node",description:"Move a knowledge base node or directory to another parent path or ID."},{name:"UpdateDatabaseNodeMeta",label:"Update Database Meta",description:"Update knowledge base node metadata such as title, icon, cover, parent, or trash state."},{name:"ListKanbanBoards",label:"List Kanban Boards",description:"List Kanban boards in the workspace."},{name:"ViewKanbanBoard",label:"View Kanban Board",description:"View Kanban board metadata, columns, and tasks."},{name:"CreateKanbanBoard",label:"Create Kanban Board",description:"Create the workspace Kanban board."},{name:"UpdateKanbanBoard",label:"Update Kanban Board",description:"Update Kanban board metadata, columns, or tasks."},{name:"DeleteKanbanBoard",label:"Delete Kanban Board",description:"Delete the workspace Kanban board with its columns and tasks."}]])},683640,184591,e=>{"use strict";let t=(0,e.i(433721).default)("terminal",[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]]);e.s(["default",0,t],184591),e.s(["Terminal",0,t],683640)},267624,e=>{"use strict";let t=(0,e.i(433721).default)("layout-grid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);e.s(["LayoutGrid",0,t],267624)},113519,212068,119211,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(244073),n=e.i(444433),s=e.i(209988),l=e.i(260218),i=e.i(681622),o=e.i(191118),d=e.i(227634),c=e.i(683640),u=e.i(943997),m=e.i(267624),p=e.i(887354);let h=(0,e.i(433721).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["default",0,h],212068),e.s(["Wrench",0,h],119211);var x=e.i(465458);let f={channel:{keys:["CreateCurrentChannelIssue","ViewCurrentChannelIssue","AddCurrentChannelComment"],icon:d.Hash},terminal:{keys:["ReadTerminalOutput","ListQuickCommands","RunQuickCommand","StopQuickCommand"],icon:c.Terminal},database:{keys:["ListDatabases","ListDatabaseNodes","SearchDatabaseNodes","QueryDatabaseVectors","ReadDatabaseNode","ListDatabaseNodeVersions","CreateDatabaseNode","WriteDatabaseNode","DeleteDatabaseNode","MoveDatabaseNode","UpdateDatabaseNodeMeta"],icon:u.Database},kanban:{keys:["ListKanbanBoards","ViewKanbanBoard","CreateKanbanBoard","UpdateKanbanBoard","DeleteKanbanBoard"],icon:m.LayoutGrid}},g=n.BUILT_IN_AGENT_TOOLS??[];e.s(["ToolsDialog",0,function({open:e,onOpenChange:n,standalone:d,selectable:c,selectedTools:u,onSelectedToolsChange:m}){let v=(0,r.useTranslations)("tools"),[b,y]=(0,a.useState)(""),[w,k]=(0,a.useState)("all"),[j,S]=(0,a.useState)(null),[N,C]=(0,a.useState)(new Set),D=c?new Set(u??N):new Set,T=e=>{let t=new Set(D);t.has(e)?t.delete(e):t.add(e),m?m(g.map(e=>e.name).filter(e=>t.has(e))):C(t)},P=(0,a.useMemo)(()=>{let e=g;if("all"!==w){let t=new Set(f[w]?.keys??[]);e=e.filter(e=>t.has(e.name))}if(b.trim()){let t=b.toLowerCase();e=e.filter(e=>e.label.toLowerCase().includes(t)||e.description.toLowerCase().includes(t))}return e},[w,b]),E=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(s.DialogHeader,{className:"shrink-0",children:[(0,t.jsx)(s.DialogTitle,{children:v("title")}),(0,t.jsx)(s.DialogDescription,{className:"sr-only",children:v("title")})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col md:flex-row gap-4 pt-2",children:[(0,t.jsxs)("div",{className:"hidden md:flex w-44 shrink-0 flex-col gap-1",children:[(0,t.jsxs)(l.Button,{variant:"all"===w?"secondary":"ghost",size:"sm",className:"justify-start",onClick:()=>k("all"),children:[(0,t.jsx)(h,{className:"size-3.5 mr-1.5"}),v("filterAll")]}),Object.entries(f).map(([e,{icon:a}])=>(0,t.jsxs)(l.Button,{variant:w===e?"secondary":"ghost",size:"sm",className:"justify-start",onClick:()=>k(e),children:[(0,t.jsx)(a,{className:"size-3.5 mr-1.5"}),v(`categories.${e}`)]},e))]}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex md:hidden flex-col gap-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(p.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(i.Input,{value:b,onChange:e=>y(e.target.value),placeholder:v("search"),className:"pl-8"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 overflow-x-auto pb-1",children:[(0,t.jsx)("button",{type:"button",className:(0,x.cn)("shrink-0 px-2.5 py-1 rounded-md text-xs font-medium transition-colors","all"===w?"bg-muted":"text-muted-foreground hover:text-foreground","cursor-pointer"),onClick:()=>k("all"),children:v("filterAll")}),Object.entries(f).map(([e])=>(0,t.jsx)("button",{type:"button",className:(0,x.cn)("shrink-0 px-2.5 py-1 rounded-md text-xs font-medium transition-colors",w===e?"bg-muted":"text-muted-foreground hover:text-foreground","cursor-pointer"),onClick:()=>k(e),children:v(`categories.${e}`)},e))]})]}),(0,t.jsxs)("div",{className:"hidden md:block relative",children:[(0,t.jsx)(p.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(i.Input,{value:b,onChange:e=>y(e.target.value),placeholder:v("search"),className:"pl-8"})]}),c&&P.length>0&&(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:v("enabledCount",{count:P.filter(e=>D.has(e.name)).length,total:P.length})}),(0,t.jsx)(l.Button,{variant:"ghost",size:"sm",className:"h-6 text-xs",onClick:()=>{let e=P.every(e=>D.has(e.name)),t=new Set(D);e?P.forEach(e=>t.delete(e.name)):P.forEach(e=>t.add(e.name)),m?m(g.map(e=>e.name).filter(e=>t.has(e))):C(t)},children:P.every(e=>D.has(e.name))?v("deselectAll"):v("selectAll")})]}),(0,t.jsx)(o.ScrollArea,{className:"flex-1",children:0===P.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:v("empty")}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-2 pr-2",children:P.map(e=>(0,t.jsx)("div",{className:"rounded-lg border border-border bg-background px-3 py-2 hover:bg-accent/30 transition-colors cursor-pointer",onClick:()=>{c?T(e.name):S(e)},children:(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[c&&(0,t.jsx)("input",{type:"checkbox",checked:D.has(e.name),onChange:()=>T(e.name),onClick:e=>e.stopPropagation(),className:"mt-0.5 size-3.5 shrink-0"}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("span",{className:"block text-xs font-medium",children:e.label}),(0,t.jsx)("span",{className:"block text-[11px] text-muted-foreground line-clamp-2",children:e.description})]}),c&&(0,t.jsx)("button",{type:"button",className:"shrink-0 text-muted-foreground hover:text-foreground cursor-pointer",onClick:t=>{t.stopPropagation(),S(e)},children:(0,t.jsx)(p.Search,{className:"size-3"})})]})},e.name))})})]})]})]});return(0,t.jsxs)(t.Fragment,{children:[d&&e&&(0,t.jsx)("div",{className:"h-full flex flex-col",children:E}),!d&&(0,t.jsx)(s.Dialog,{open:e,onOpenChange:n,children:(0,t.jsx)(s.DialogContent,{className:"!w-[80vw] !max-w-[80vw] !h-[80vh] flex flex-col",children:E})}),(0,t.jsx)(s.Dialog,{open:!!j,onOpenChange:e=>{e||S(null)},children:(0,t.jsxs)(s.DialogContent,{children:[(0,t.jsxs)(s.DialogHeader,{children:[(0,t.jsx)(s.DialogTitle,{children:j?.label}),(0,t.jsx)(s.DialogDescription,{className:"font-mono text-xs text-muted-foreground",children:j?.name})]}),(0,t.jsx)("div",{className:"py-2",children:(0,t.jsx)("p",{className:"text-sm text-muted-foreground",children:j?.description})})]})})]})}],113519)},415360,656744,e=>{"use strict";let t=(0,e.i(433721).default)("sparkles",[["path",{d:"M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z",key:"1s2grr"}],["path",{d:"M20 2v4",key:"1rf3ol"}],["path",{d:"M22 4h-4",key:"gwowj6"}],["circle",{cx:"4",cy:"20",r:"2",key:"6kqj1y"}]]);e.s(["default",0,t],656744),e.s(["Sparkles",0,t],415360)},511588,e=>{"use strict";let t=(0,e.i(433721).default)("wand-sparkles",[["path",{d:"m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72",key:"ul74o6"}],["path",{d:"m14 7 3 3",key:"1r5n42"}],["path",{d:"M5 6v4",key:"ilb8ba"}],["path",{d:"M19 14v4",key:"blhpug"}],["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M7 8H3",key:"zfb6yr"}],["path",{d:"M21 16h-4",key:"1cnmox"}],["path",{d:"M11 3H9",key:"1obp7u"}]]);e.s(["WandSparkles",0,t],511588)},673478,e=>{"use strict";let t=(0,e.i(433721).default)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]]);e.s(["Cpu",0,t],673478)},965322,282180,e=>{"use strict";var t=e.i(344180),a=e.i(764556),r=e.i(244073),n=e.i(355819),s=e.i(260218),l=e.i(788010),i=e.i(209988),o=e.i(444433);let d=[{value:"anthropic-messages",labelKey:"anthropicMessages"},{value:"openai-chat-completions",labelKey:"openaiChatCompletions"},{value:"openai-responses",labelKey:"openaiResponses"},{value:"openai-responses-to-anthropic-messages",labelKey:"openaiResponsesToAnthropic"},{value:"openai-chat-completions-to-anthropic-messages",labelKey:"openaiChatToAnthropic"},{value:"gemini-generate-content",labelKey:"geminiGenerateContent"}],c=[{value:"claude-code",labelKey:"claudeCode"},{value:"open-agent-sdk",labelKey:"openAgentSdk"},{value:"codex",labelKey:"codex"},{value:"langchain",labelKey:"langchain"}],u=["agent","scheduler","task_creator","bot"],m=(o.BUILT_IN_AGENT_TOOLS??[]).map(e=>e.name),p=new Set(["openai-responses-to-anthropic-messages","openai-chat-completions-to-anthropic-messages"]);function h(e){return{mcpServers:Object.fromEntries(e.map(e=>[e,{}]))}}function x(e){return e.map(e=>({name:`${e}.md`,content:`# ${e}
2
+ `}))}let f={agent:{name:"Agent",role:"agent",description:"通用 Agent,可在 workflow 中承担任意执行节点",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["coding","debugging","testing"]),tools:m,systemPrompt:"你是通用 Agent。根据 issue 和当前任务上下文完成被分配的工作,遵循项目规范,必要时修改代码、运行验证,并清晰汇报结果。",outputStyle:"",temperature:.3,maxTokens:8192,enabled:!0},scheduler:{name:"Scheduler",role:"scheduler",description:"任务调度者,负责任务分发和协调",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["planning","task-split"]),tools:m,systemPrompt:"你是调度者 Agent。负责接收用户任务,分析任务类型,分发给合适的执行者。你需要跟踪任务状态,确保所有子任务按时完成。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0},task_creator:{name:"Task Creator",role:"task_creator",description:"任务创建者,负责把 issue 拆成可执行任务",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:h([]),skills:x(["planning","task-split"]),tools:m,systemPrompt:"你是任务创建者 Agent。负责读取 issue 上下文,把需求拆分为少量可执行任务,并用系统工具写入任务列表。只创建真正需要独立执行的任务,避免把细碎步骤拆成任务。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0},bot:{name:"Bot Agent",role:"bot",description:"消息机器人,负责处理外部聊天平台中的用户消息",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"anthropic-messages",modelId:"claude-sonnet-4-6",apiBase:"",apiKey:"",workingDir:"",mcps:{},skills:[],tools:m,systemPrompt:"你是 Agent Spaces 的消息机器人。你会简洁回答来自外部聊天平台的用户消息。不要执行危险操作;需要用户提供更多信息时直接询问。",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0}};function g(e){var t,a;return{...e,name:e.name||"New Agent",description:e.description||"",avatarUrl:e.avatarUrl||"",runtimeKind:e.runtimeKind||"open-agent-sdk",modelProvider:e.modelProvider||"",modelId:e.modelId||"claude-sonnet-4-6",apiBase:e.apiBase||"",apiKey:e.apiKey||"",workingDir:e.workingDir||"",mcps:(t=e.mcps)||{},skills:Array.isArray(a=e.skills)?a.map(e=>"string"==typeof e?{name:e.endsWith(".md")?e:`${e}.md`}:e):[],tools:function(e){if(!Array.isArray(e))return m;let t=new Set((o.BUILT_IN_AGENT_TOOLS??[]).map(e=>e.name));return e.filter(e=>t.has(e))}(e.tools),systemPrompt:e.systemPrompt||"",outputStyle:e.outputStyle||"",temperature:e.temperature??.3,maxTokens:e.maxTokens??4096,enabled:e.enabled??!0}}function v(e){let{id:t,...a}=e;return{...a,modelProvider:a.modelProvider||void 0}}function b(e){return{id:`draft-${e}-${Date.now()}`,...f[e],mcps:structuredClone(f[e].mcps),skills:f[e].skills.map(e=>({...e})),tools:[...f[e].tools]}}function y(e){return e.id.startsWith("draft-")}function w(e){return!!(e&&p.has(e))}function k({icon:e,title:a,children:r}){return(0,t.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:[e,a]}),r]})}function j({label:e,children:a}){return(0,t.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,t.jsx)("label",{className:"text-xs text-muted-foreground",children:e}),a]})}function S({icon:e,title:a,action:r}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-2 text-xs font-medium text-muted-foreground uppercase tracking-wider",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[e,(0,t.jsx)("span",{className:"truncate",children:a})]}),r?(0,t.jsx)("div",{className:"shrink-0",children:r}):null]})}e.s(["FieldGroup",0,j,"PROVIDER_OPTIONS",0,d,"ROLE_COLORS",0,{agent:"bg-gray-500/10 text-gray-600 border-gray-200",scheduler:"bg-blue-500/10 text-blue-600 border-blue-200",task_creator:"bg-green-500/10 text-green-600 border-green-200",bot:"bg-cyan-500/10 text-cyan-600 border-cyan-200"},"ROLE_OPTIONS",0,u,"RUNTIME_OPTIONS",0,c,"Section",0,k,"SectionHeader",0,S,"isAnthropicBridgeProvider",0,w,"isDraftAgent",0,y,"newAgentDraft",0,b,"newEmptyAgent",0,function(){return{id:`draft-empty-${Date.now()}`,name:"",role:"agent",description:"",avatarUrl:"",runtimeKind:"claude-code",modelProvider:"",modelId:"",apiBase:"",apiKey:"",workingDir:"",mcps:{},skills:[],tools:m,systemPrompt:"",outputStyle:"",temperature:.3,maxTokens:4096,enabled:!0}},"normalizeAgent",0,g,"serializeAgent",0,v],282180);var N=e.i(368942),C=e.i(611176),D=e.i(681622),T=e.i(188815),P=e.i(465458),E=e.i(972846),M=e.i(673478),A=e.i(433721);let z=(0,A.default)("plug-zap",[["path",{d:"M6.3 20.3a2.4 2.4 0 0 0 3.4 0L12 18l-6-6-2.3 2.3a2.4 2.4 0 0 0 0 3.4Z",key:"goz73y"}],["path",{d:"m2 22 3-3",key:"19mgm9"}],["path",{d:"M7.5 13.5 10 11",key:"7xgeeb"}],["path",{d:"M10.5 16.5 13 14",key:"10btkg"}],["path",{d:"m18 3-4 4h6l-4 4",key:"16psg9"}]]);var O=e.i(451534),I=e.i(119211),R=e.i(415360),L=e.i(426022);let K=(0,A.default)("sliders-vertical",[["path",{d:"M10 8h4",key:"1sr2af"}],["path",{d:"M12 21v-9",key:"17s77i"}],["path",{d:"M12 8V3",key:"13r4qs"}],["path",{d:"M17 16h4",key:"h1uq16"}],["path",{d:"M19 12V3",key:"o1uvq1"}],["path",{d:"M19 21v-5",key:"qua636"}],["path",{d:"M3 14h4",key:"bcjad9"}],["path",{d:"M5 10V3",key:"cb8scm"}],["path",{d:"M5 21v-7",key:"1w1uti"}]]);var B=e.i(129981),H=e.i(511588),U=e.i(344118),W=e.i(613812),$=e.i(113519);function X({agent:e,roleOptions:n,testing:u,testResult:m,onChange:p,onMcpChange:h,onAddSkillFiles:x,onRemoveSkill:f,onTestConnection:g}){let v=(0,r.useTranslations)("agent"),[b,y]=(0,a.useState)(()=>JSON.stringify(e.mcps,null,2)),[w,A]=(0,a.useState)(null),[Y,V]=(0,a.useState)([]),[_,F]=(0,a.useState)(!1),[q,G]=(0,a.useState)(""),[Q,J]=(0,a.useState)(!1),[Z,ee]=(0,a.useState)(""),[et,ea]=(0,a.useState)(null),[er,en]=(0,a.useState)(!1),[es,el]=(0,a.useState)(!1),[ei,eo]=(0,a.useState)(""),{models:ed,providers:ec,ensure:eu}=(0,N.useLLMStore)(),em=ed.filter(e=>!e.embedding);(0,a.useEffect)(()=>{eu()},[eu]),(0,a.useEffect)(()=>{y(JSON.stringify(e.mcps,null,2))},[e.mcps]);let ep=(0,a.useCallback)(e=>{p("apiBase",e.apiBase),p("apiKey",e.apiKey);let t=em.filter(t=>t.provider===e.name).map(e=>({value:e.modelId,label:e.name}));V(t),t.length>0&&p("modelId",t[0].value)},[em,p]),eh=async e=>{if(!e?.length)return;let t=Array.from(e).filter(e=>e.name.toLowerCase().endsWith(".md"));x(await Promise.all(t.map(async e=>({name:e.name,content:await e.text()}))))},ex=async()=>{let t=q.trim();if(t){J(!0),ea(null);try{let a=await fetch("/api/agents/presets/optimize-prompt",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:t,currentPrompt:e.systemPrompt})}),r=await a.json();if(!a.ok)throw Error(r.error||"Failed to optimize prompt");ee(r.systemPrompt?.trim()||""),eo(e.systemPrompt),F(!1),en(!0)}catch(e){ea(e instanceof Error?e.message:"优化提示词失败")}finally{J(!1)}}},ef=e=>{F(e),e||Q||(G(""),ea(null))};return(0,t.jsxs)("div",{className:"flex flex-col gap-5 p-5",children:[(0,t.jsxs)(k,{icon:(0,t.jsx)(L.MessageSquare,{className:"size-3.5"}),title:v("detail.basic"),children:[(0,t.jsxs)("div",{className:"flex items-start gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col items-center gap-1.5",children:[(0,t.jsx)(C.AgentIcon,{name:e.name,avatarUrl:e.avatarUrl,apiBase:e.apiBase,className:"size-16 rounded-xl border border-input"}),(0,t.jsxs)("label",{className:"text-[10px] text-primary cursor-pointer hover:underline",children:[v("detail.uploadAvatar"),(0,t.jsx)("input",{type:"file",accept:"image/*",className:"hidden",onChange: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,filename:t.name})}),r=await e.json();r.url&&p("avatarUrl",r.url)}catch{}},a.readAsDataURL(t),e.target.value=""}})]}),e.avatarUrl&&(0,t.jsx)("button",{type:"button",className:"text-[10px] text-destructive hover:underline cursor-pointer",onClick:()=>p("avatarUrl",""),children:v("detail.removeAvatar")})]}),(0,t.jsxs)("div",{className:"flex flex-1 flex-col gap-2.5",children:[(0,t.jsx)(j,{label:v("detail.name"),children:(0,t.jsx)(D.Input,{value:e.name,onChange:e=>p("name",e.target.value)})}),(0,t.jsx)(j,{label:v("detail.role"),children:(0,t.jsx)("select",{value:e.role,onChange:e=>p("role",e.target.value),className:"h-8 w-full rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none focus-visible:border-ring dark:bg-input/30",children:n.map(e=>(0,t.jsx)("option",{value:e,children:e},e))})})]})]}),(0,t.jsx)(j,{label:v("detail.description"),children:(0,t.jsx)(D.Input,{value:e.description,onChange:e=>p("description",e.target.value)})}),(0,t.jsx)(j,{label:v("detail.agentRuntime"),children:(0,t.jsx)(T.SearchSelect,{value:e.runtimeKind??"",onChange:e=>p("runtimeKind",e),options:c.map(e=>({value:e.value,label:v(`runtime.${e.labelKey}`)})),placeholder:v("detail.runtimePlaceholder"),searchPlaceholder:v("detail.runtimeSearchPlaceholder"),allowCustom:!1})})]}),(0,t.jsx)(k,{icon:(0,t.jsx)(O.FolderOpen,{className:"size-3.5"}),title:v("detail.workingDirectory"),children:(0,t.jsx)(D.Input,{value:e.workingDir,onChange:e=>p("workingDir",e.target.value),placeholder:v("detail.workingDirPlaceholder")})}),(0,t.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,t.jsx)(S,{icon:(0,t.jsx)(R.Sparkles,{className:"size-3.5"}),title:v("detail.systemPrompt"),action:(0,t.jsxs)(s.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",onClick:()=>F(!0),children:[(0,t.jsx)(H.WandSparkles,{className:"size-3.5"}),v("detail.optimizePrompt")]})}),(0,t.jsx)(l.Textarea,{value:e.systemPrompt,onChange:e=>p("systemPrompt",e.target.value),placeholder:v("detail.systemPromptPlaceholder"),className:"min-h-24 text-xs"})]}),(0,t.jsx)(k,{icon:(0,t.jsx)(R.Sparkles,{className:"size-3.5"}),title:v("detail.outputStyle"),children:(0,t.jsx)(l.Textarea,{value:e.outputStyle,onChange:e=>p("outputStyle",e.target.value),placeholder:v("detail.outputStylePlaceholder"),className:"min-h-24 text-xs"})}),(0,t.jsxs)(k,{icon:(0,t.jsx)(I.Wrench,{className:"size-3.5"}),title:v("detail.mcpServers"),children:[(0,t.jsx)(l.Textarea,{value:b,onChange:e=>(e=>{y(e);try{let t=JSON.parse(e);if(!t||"object"!=typeof t||Array.isArray(t))throw Error("MCP config must be a JSON object");A(null),h(t)}catch(e){A(e instanceof Error?e.message:"Invalid JSON")}})(e.target.value),placeholder:'{\n "mcpServers": {}\n}',className:"min-h-28 font-mono text-xs"}),w&&(0,t.jsx)("div",{className:"text-xs text-destructive",children:w})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(I.Wrench,{className:"size-3.5"}),title:v("detail.tools"),children:[(0,t.jsx)(s.Button,{variant:"outline",size:"sm",className:"w-full",onClick:()=>el(!0),children:v("detail.enabledToolsCount",{count:e.tools.length,total:(o.BUILT_IN_AGENT_TOOLS??[]).length})}),(0,t.jsx)($.ToolsDialog,{open:es,onOpenChange:el,selectable:!0,selectedTools:e.tools,onSelectedToolsChange:e=>p("tools",e)})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(M.Cpu,{className:"size-3.5"}),title:v("detail.skills"),children:[(0,t.jsx)("div",{className:"mb-2 flex flex-wrap gap-1.5",children:e.skills.map((e,a)=>(0,t.jsxs)("span",{className:"inline-flex items-center gap-1 rounded-md border px-2 py-0.5 text-xs font-medium text-foreground",children:[e.name,(0,t.jsx)("button",{type:"button",onClick:()=>f(a),className:"hover:text-destructive cursor-pointer",children:(0,t.jsx)(E.X,{className:"size-2.5"})})]},a))}),(0,t.jsxs)("label",{className:"flex h-8 cursor-pointer items-center justify-center gap-2 rounded-lg border border-dashed border-input text-xs text-muted-foreground hover:bg-muted/50",children:[(0,t.jsx)(B.Upload,{className:"size-3.5"}),v("detail.uploadSkills"),(0,t.jsx)("input",{type:"file",accept:".md,text/markdown",multiple:!0,className:"hidden",onChange:e=>{eh(e.target.files),e.target.value=""}})]})]}),(0,t.jsxs)(k,{icon:(0,t.jsx)(K,{className:"size-3.5"}),title:v("detail.model"),children:[(0,t.jsxs)("div",{className:"space-y-2.5",children:[(0,t.jsx)(j,{label:v("detail.provider"),children:(0,t.jsx)(T.SearchSelect,{value:ec.find(t=>t.apiBase===e.apiBase&&t.apiKey===e.apiKey)?.name||"",onChange:e=>{let t=ec.find(t=>t.name===e);t&&ep(t)},options:ec.map(e=>({value:e.name,label:e.name})),placeholder:v("detail.providerPlaceholder"),searchPlaceholder:v("detail.providerSearchPlaceholder"),allowCustom:!1})}),(0,t.jsx)(j,{label:v("detail.modelField"),children:(0,t.jsx)(T.SearchSelect,{value:e.modelId,onChange:e=>p("modelId",e),options:Y.length>0?Y:[{value:e.modelId||"",label:e.modelId||v("detail.selectProviderFirst")}],placeholder:v("detail.modelPlaceholder"),searchPlaceholder:v("detail.modelSearchPlaceholder")})}),(0,t.jsx)(j,{label:v("detail.apiMessageType"),children:(0,t.jsx)(T.SearchSelect,{value:e.modelProvider||"",onChange:e=>p("modelProvider",e),options:d.map(e=>({value:e.value,label:v(`provider.${e.labelKey}`)})),placeholder:v("detail.apiMessageTypePlaceholder"),searchPlaceholder:v("detail.apiMessageTypeSearchPlaceholder"),allowCustom:!1})}),(0,t.jsx)(j,{label:v("detail.apiBase"),children:(0,t.jsx)(D.Input,{value:e.apiBase,onChange:e=>p("apiBase",e.target.value),placeholder:v("detail.apiBasePlaceholder"),className:"h-7 text-xs"})}),(0,t.jsx)(j,{label:v("detail.apiKey"),children:(0,t.jsx)(D.Input,{type:"password",value:e.apiKey,onChange:e=>p("apiKey",e.target.value),placeholder:v("detail.apiKeyPlaceholder"),className:"h-7 text-xs"})})]}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:v("detail.validateHelper")}),(0,t.jsxs)(s.Button,{type:"button",variant:"outline",size:"sm",onClick:g,disabled:u||!e.apiBase||!e.apiKey||!e.modelId,children:[(0,t.jsx)(z,{className:"size-3.5"}),u?v("detail.testing"):v("detail.test")]})]}),m&&(0,t.jsxs)("div",{className:(0,P.cn)("rounded-md border px-3 py-2 text-xs",m.success?"border-green-500/30 bg-green-500/10 text-green-700":"border-destructive/30 bg-destructive/10 text-destructive"),children:[m.message,m.debug&&(0,t.jsxs)("div",{className:"mt-2 space-y-1 font-mono text-[10px] opacity-80",children:[m.debug.status&&(0,t.jsxs)("div",{children:[v("debug.status")," ",m.debug.status]}),m.debug.provider&&(0,t.jsxs)("div",{children:[v("debug.provider")," ",m.debug.provider]}),m.debug.requestUrl&&(0,t.jsxs)("div",{children:[v("debug.url")," ",m.debug.requestUrl]}),m.debug.model&&(0,t.jsxs)("div",{children:[v("debug.model")," ",m.debug.model]}),m.debug.responseBody&&(0,t.jsxs)("div",{className:"max-h-20 overflow-auto whitespace-pre-wrap",children:[v("debug.body")," ",m.debug.responseBody]})]})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsx)(j,{label:v("detail.temperature"),children:(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"range",min:0,max:2,step:.1,value:e.temperature,onChange:e=>p("temperature",parseFloat(e.target.value)),className:"flex-1"}),(0,t.jsx)("span",{className:"w-8 text-right font-mono text-xs",children:e.temperature})]})}),(0,t.jsx)(j,{label:v("detail.maxTokens"),children:(0,t.jsx)(D.Input,{type:"number",value:e.maxTokens,onChange:e=>p("maxTokens",parseInt(e.target.value)||0),className:"h-7 text-xs"})})]})]}),(0,t.jsx)(i.Dialog,{open:_,onOpenChange:ef,children:(0,t.jsxs)(i.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:v("detail.optimizePrompt")}),(0,t.jsx)(i.DialogDescription,{children:v("detail.optimizePromptDescription")})]}),(0,t.jsx)(l.Textarea,{value:q,onChange:e=>G(e.target.value),placeholder:v("detail.optimizePromptPlaceholder"),className:"min-h-32 text-sm"}),et&&(0,t.jsx)("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:et}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>ef(!1),disabled:Q,children:v("detail.cancel")}),(0,t.jsx)(s.Button,{onClick:ex,disabled:Q||!q.trim(),children:Q?v("detail.optimizing"):v("detail.optimizeConfirm")})]})]})}),(0,t.jsx)(i.Dialog,{open:er,onOpenChange:en,children:(0,t.jsxs)(i.DialogContent,{className:"!w-[min(92vw,1200px)] !max-w-[min(92vw,1200px)] !h-[85vh] flex flex-col gap-0 overflow-hidden p-0",children:[(0,t.jsxs)(i.DialogHeader,{className:"border-b px-4 py-3",children:[(0,t.jsx)(i.DialogTitle,{children:v("detail.optimizePreviewTitle")}),(0,t.jsx)(i.DialogDescription,{children:v("detail.optimizePreviewDescription")})]}),(0,t.jsxs)("div",{className:"grid min-h-0 flex-1 grid-cols-1 lg:grid-cols-2",children:[(0,t.jsx)("div",{className:"min-h-0 border-b lg:border-b-0 lg:border-r",children:(0,t.jsx)(W.DiffViewer,{oldContent:ei,newContent:Z,path:"system-prompt.md"})}),(0,t.jsxs)("div",{className:"flex min-h-0 flex-col border-t lg:border-t-0",children:[(0,t.jsxs)("div",{className:"border-b px-4 py-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:v("detail.optimizeRequest")}),(0,t.jsx)("div",{className:"mt-2 whitespace-pre-wrap text-sm text-foreground",children:q})]}),(0,t.jsxs)("div",{className:"flex-1 min-h-0 overflow-auto px-4 py-3",children:[(0,t.jsx)("div",{className:"mb-2 text-xs font-medium uppercase tracking-wider text-muted-foreground",children:v("detail.optimizedPrompt")}),(0,t.jsx)("pre",{className:"whitespace-pre-wrap text-sm leading-6 text-foreground",children:Z})]})]})]}),(0,t.jsxs)(i.DialogFooter,{className:"border-t m-1",children:[(0,t.jsxs)(s.Button,{variant:"outline",onClick:()=>en(!1),children:[(0,t.jsx)(E.X,{className:"size-3.5"}),v("detail.cancel")]}),(0,t.jsxs)(s.Button,{onClick:()=>{Z.trim()&&(p("systemPrompt",Z),en(!1),ee(""),eo(""),G(""))},children:[(0,t.jsx)(U.Check,{className:"size-3.5"}),v("detail.applyOptimizedPrompt")]})]})]})})]})}let Y=(0,a.forwardRef)(function({agent:e,roleOptions:o=u,onSaved:d,onBack:c,showFooter:m=!0,autoOpenGenerate:p=!1,presetBasePath:h="/api/agents/presets"},x){let f=(0,r.useTranslations)("agent"),k=(0,r.useTranslations)("common"),[j,S]=(0,a.useState)({...e}),[N,C]=(0,a.useState)(!1),[D,T]=(0,a.useState)(!1),[P,E]=(0,a.useState)(null),[M,A]=(0,a.useState)(null),[z,O]=(0,a.useState)(0),[I,R]=(0,a.useState)(p),[L,K]=(0,a.useState)(""),[B,H]=(0,a.useState)(!1);(0,a.useImperativeHandle)(x,()=>({reset(){S(t=>{if(!t)return{...e};let{modelProvider:a,modelId:r,apiBase:n,apiKey:s,runtimeKind:l}=t;return{...e,modelProvider:a,modelId:r,apiBase:n,apiKey:s,runtimeKind:l}}),E(null),O(e=>e+1)},openGenerate(){R(!0)}}));let U=async()=>{if(j){C(!0),A(null);try{let e=y(j),t=v(j),a=await fetch(e?h:`${h}/${j.id}`,{method:e?"POST":"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e?t:j)});if(!a.ok)throw Error(await a.text());let r=await a.json(),s=g(r);"/api/agents/presets"===h&&n.useAgentStore.setState(t=>({agents:e?[...t.agents,r]:t.agents.map(e=>e.id===r.id?r:e)})),d(s)}catch{A(f("error.saveFailed"))}finally{C(!1)}}},W=async()=>{if(j){T(!0),E(null),A(null);try{let e=await fetch(`${h}/test-connection`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(j)}),t=await e.json();E({success:!!t.success,message:t.message||t.error||f("error.connectionTestFailed"),debug:t.debug?{...t.debug,status:e.status}:{status:e.status}})}catch(e){E({success:!1,message:e instanceof Error?e.message:f("error.connectionTestFailed")})}finally{T(!1)}}},$=async()=>{let e=L.trim();if(e){H(!0),A(null);try{let t=await fetch(`${h}/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:e})}),a=await t.json();if(!t.ok)throw Error(a.error||"Failed to generate agent");let r=j??b(o[0]??"agent"),n={...r,name:a.name?.trim()||r.name,description:a.description?.trim()||r.description,systemPrompt:a.systemPrompt?.trim()||r.systemPrompt};S(n),R(!1),K(""),E(null)}catch(e){A(e instanceof Error?e.message:"智能创建 Agent 失败")}finally{H(!1)}}};return(0,t.jsxs)(t.Fragment,{children:[M&&(0,t.jsx)("div",{className:"mx-5 mt-4 rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-xs text-destructive",children:M}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,t.jsx)(X,{agent:j,roleOptions:o,testing:D,testResult:P,onChange:(e,t)=>{S(a=>a?"modelProvider"===e?{...a,modelProvider:t,runtimeKind:w(t)?"claude-code":a.runtimeKind}:"runtimeKind"===e?{...a,runtimeKind:t}:{...a,[e]:t}:a)},onMcpChange:e=>{S(t=>t?{...t,mcps:e}:t)},onAddSkillFiles:e=>{if(!j)return;let t=new Set(j.skills.map(e=>e.name));S(a=>a?{...a,skills:[...a.skills.filter(t=>!e.some(e=>e.name===t.name)),...e.filter(e=>e.name&&!t.has(e.name)),...e.filter(e=>t.has(e.name))]}:a)},onRemoveSkill:e=>{j&&S(t=>t?{...t,skills:t.skills.filter((t,a)=>a!==e)}:t)},onTestConnection:W},`${j.id}-${z}`)}),m&&(0,t.jsxs)("div",{className:"flex justify-end gap-2 border-t px-5 py-3",children:[(0,t.jsx)(s.Button,{variant:"outline",size:"sm",onClick:c,disabled:N,children:k("cancel")}),(0,t.jsx)(s.Button,{size:"sm",onClick:U,disabled:N,children:k(N?"saving":"save")})]}),(0,t.jsx)(i.Dialog,{open:I,onOpenChange:R,children:(0,t.jsxs)(i.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(i.DialogHeader,{children:[(0,t.jsx)(i.DialogTitle,{children:"智能创建 Agent"}),(0,t.jsx)(i.DialogDescription,{children:"输入 Agent 的职责、使用场景和约束,系统会生成名称、描述和 Markdown 系统提示。"})]}),(0,t.jsx)(l.Textarea,{value:L,onChange:e=>K(e.target.value),placeholder:"例如:创建一个代码评审 Agent,专注发现 TypeScript/React 项目中的缺陷、回归风险和缺失测试。",className:"min-h-32 text-sm"}),(0,t.jsxs)(i.DialogFooter,{children:[(0,t.jsx)(s.Button,{variant:"outline",onClick:()=>R(!1),disabled:B,children:k("cancel")}),(0,t.jsx)(s.Button,{onClick:$,disabled:B||!L.trim(),children:B?"生成中...":"生成"})]})]})})]})});e.s(["AgentEditor",0,Y],965322)}]);