@agent-spaces/server 0.3.62 → 0.3.64

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 (367) hide show
  1. package/dist/adapters/agent-runtime-types.js +12 -0
  2. package/dist/adapters/claude-code-runtime/index.js +3 -0
  3. package/dist/adapters/claude-code-runtime/message-format.js +1 -1
  4. package/dist/adapters/codex-runtime.js +2 -2
  5. package/dist/adapters/git.js +161 -57
  6. package/dist/adapters/langchain-runtime.js +2 -2
  7. package/dist/adapters/open-agent-sdk-runtime.js +2 -2
  8. package/dist/agents/agent-designer.js +66 -12
  9. package/dist/agents/commit-agent.js +1 -0
  10. package/dist/agents/issue-agent-progress.js +4 -2
  11. package/dist/agents/issue-agent-runner.js +5 -5
  12. package/dist/agents/issue-task-controller.js +96 -15
  13. package/dist/app.js +123 -5
  14. package/dist/package.json +1 -1
  15. package/dist/routes/agent-commands.js +72 -0
  16. package/dist/routes/agent-sse.js +10 -2
  17. package/dist/routes/agent.js +15 -1
  18. package/dist/routes/database.js +345 -0
  19. package/dist/routes/git.js +52 -1
  20. package/dist/routes/hooks.js +88 -0
  21. package/dist/routes/issue.js +59 -1
  22. package/dist/routes/kanban.js +39 -0
  23. package/dist/routes/output-style.js +48 -0
  24. package/dist/routes/prompt-template.js +2 -2
  25. package/dist/routes/skill.js +86 -15
  26. package/dist/routes/task.js +13 -1
  27. package/dist/services/agent-commands.js +168 -0
  28. package/dist/services/builtin-tools/command-tools.js +117 -0
  29. package/dist/services/builtin-tools/database-tools.js +578 -0
  30. package/dist/services/builtin-tools/index.js +5 -0
  31. package/dist/services/builtin-tools/input-helpers.js +26 -0
  32. package/dist/services/builtin-tools/issue-tools.js +209 -0
  33. package/dist/services/builtin-tools/kanban-tools.js +277 -0
  34. package/dist/services/database-vector.js +244 -0
  35. package/dist/services/hook-engine.js +118 -0
  36. package/dist/services/issue.js +6 -0
  37. package/dist/services/kanban.js +50 -0
  38. package/dist/services/notification-hub/bot-agent.js +1 -0
  39. package/dist/services/output-style.js +134 -0
  40. package/dist/services/prompt-template.js +2 -2
  41. package/dist/services/skill.js +148 -35
  42. package/dist/storage/database-store.js +365 -0
  43. package/dist/storage/hook-store.js +55 -0
  44. package/dist/storage/kanban-store.js +142 -0
  45. package/dist/web/404.html +1 -1
  46. package/dist/web/__next.__PAGE__.txt +4 -4
  47. package/dist/web/__next._full.txt +26 -30
  48. package/dist/web/__next._head.txt +4 -4
  49. package/dist/web/__next._index.txt +14 -14
  50. package/dist/web/__next._tree.txt +3 -8
  51. package/dist/web/_next/static/chunks/0-9194nbxy_6d.js +1 -0
  52. package/dist/web/_next/static/chunks/0-f~0xmwl__u5.js +1 -0
  53. package/dist/web/_next/static/chunks/0.n~yfwf4~6w-.js +1 -0
  54. package/dist/web/_next/static/chunks/002_j970b9gdx.js +1 -0
  55. package/dist/web/_next/static/chunks/01iqv28_snwus.js +1 -0
  56. package/dist/web/_next/static/chunks/01~quun6sefgl.js +1 -0
  57. package/dist/web/_next/static/chunks/02mf61htij8g0.js +31 -0
  58. package/dist/web/_next/static/chunks/03scq1-0ykve3.js +1 -0
  59. package/dist/web/_next/static/chunks/04a4vsq2wknm4.js +1 -0
  60. package/dist/web/_next/static/chunks/04dg4l4hv11q2.js +3 -0
  61. package/dist/web/_next/static/chunks/04fxddw-y20~-.js +7 -0
  62. package/dist/web/_next/static/chunks/04w7~5ooz_pwm.js +1 -0
  63. package/dist/web/_next/static/chunks/05oc21sj24wtq.js +1 -0
  64. package/dist/web/_next/static/chunks/{0zd1o3u04~qvo.js → 05psi2gtx~bev.js} +7 -7
  65. package/dist/web/_next/static/chunks/{0-oog4zg4_m~m.css → 062f9zqctzg.b.css} +0 -3
  66. package/dist/web/_next/static/chunks/{12odetnu-lyrr.js → 06whz1~s_7pva.js} +12 -12
  67. package/dist/web/_next/static/chunks/08ckpwmmwlors.js +3 -0
  68. package/dist/web/_next/static/chunks/08k~meqbd8d6v.js +1 -0
  69. package/dist/web/_next/static/chunks/099h96wjsdb25.js +2 -0
  70. package/dist/web/_next/static/chunks/09h23logvq65m.js +1 -0
  71. package/dist/web/_next/static/chunks/{0njy89g5coeyi.js → 0_8dm7bxp18xo.js} +6 -6
  72. package/dist/web/_next/static/chunks/0_mvduwjsm35w.js +1 -0
  73. package/dist/web/_next/static/chunks/0_vi1a~g4wx46.js +3 -0
  74. package/dist/web/_next/static/chunks/0a5y-vhf4i5id.js +3 -0
  75. package/dist/web/_next/static/chunks/0ake2f3x2uan4.js +24 -0
  76. package/dist/web/_next/static/chunks/{0tvd~rxgf0oh_.js → 0bbmx45w_h5np.js} +1 -1
  77. package/dist/web/_next/static/chunks/0ck8dw_9-1cdx.js +1 -0
  78. package/dist/web/_next/static/chunks/{07a0rktf_nr5h.js → 0ctg5qmw7uu.1.js} +2 -2
  79. package/dist/web/_next/static/chunks/0ewceguykiut5.js +1 -0
  80. package/dist/web/_next/static/chunks/0f7cb9li~3jra.js +67 -0
  81. package/dist/web/_next/static/chunks/0fttswpzu69qx.js +1 -0
  82. package/dist/web/_next/static/chunks/0ghs9on7wodrm.js +1 -0
  83. package/dist/web/_next/static/chunks/0ghx3j_.-gdyd.js +1 -0
  84. package/dist/web/_next/static/chunks/{0202ia13sijwb.js → 0h18ej5yf974e.js} +1 -1
  85. package/dist/web/_next/static/chunks/0h9cu-k6z5o08.js +1 -0
  86. package/dist/web/_next/static/chunks/0i39jifmxla7q.js +1 -0
  87. package/dist/web/_next/static/chunks/0iuf30t0rjsjv.js +19 -0
  88. package/dist/web/_next/static/chunks/0jb4~3qqkw2ps.js +1 -0
  89. package/dist/web/_next/static/chunks/0k4zdm72k_bfy.js +1 -0
  90. package/dist/web/_next/static/chunks/{08o-zmr-40r5g.js → 0m11vvph7q94-.js} +1 -1
  91. package/dist/web/_next/static/chunks/0n6_4so_afuwk.js +71 -0
  92. package/dist/web/_next/static/chunks/0nb8.iteznuvx.js +1 -0
  93. package/dist/web/_next/static/chunks/0np.d~hc1-pmh.js +4 -0
  94. package/dist/web/_next/static/chunks/{0qpq0~_58fe9a.js → 0oaq67r7ix.vg.js} +1 -1
  95. package/dist/web/_next/static/chunks/{0d_dp_4ofz0l3.css → 0ojcao3hdm36s.css} +0 -1
  96. package/dist/web/_next/static/chunks/0os58q93stt7j.js +3 -0
  97. package/dist/web/_next/static/chunks/{0gig.k.rq8d0x.js → 0ppr271hz0xoq.js} +1 -1
  98. package/dist/web/_next/static/chunks/0s9lmk8iauou3.js +1 -0
  99. package/dist/web/_next/static/chunks/0sp_zbx~w0am7.js +1 -0
  100. package/dist/web/_next/static/chunks/0tel~zsv4z8l_.js +1 -0
  101. package/dist/web/_next/static/chunks/0twamv4wr_dbv.js +1 -0
  102. package/dist/web/_next/static/chunks/0uhol5wafdbl~.js +1 -0
  103. package/dist/web/_next/static/chunks/0v3a_x4vt42kx.js +5 -0
  104. package/dist/web/_next/static/chunks/{002-dxhags4dj.js → 0v6hte2z-32ca.js} +2 -2
  105. package/dist/web/_next/static/chunks/0v7q4mys.mnm..css +1 -0
  106. package/dist/web/_next/static/chunks/0vbqaynjq8ga..js +3 -0
  107. package/dist/web/_next/static/chunks/0xbaakj0dfc0..js +1 -0
  108. package/dist/web/_next/static/chunks/{0..g0jl-8qup7.js → 0xoo17yef_b8g.js} +1 -1
  109. package/dist/web/_next/static/chunks/0xt-8wk21gs7g.js +1 -0
  110. package/dist/web/_next/static/chunks/0za1r07-6az6w.js +1 -0
  111. package/dist/web/_next/static/chunks/0z~vqzbm_q371.js +1 -0
  112. package/dist/web/_next/static/chunks/0~3xm80~j9ddg.js +1 -0
  113. package/dist/web/_next/static/chunks/0~u.5r3-t7179.js +1 -0
  114. package/dist/web/_next/static/chunks/10l-9myrdo3x9.js +1 -0
  115. package/dist/web/_next/static/chunks/11-czmcci_55y.js +1 -0
  116. package/dist/web/_next/static/chunks/11k-.49r~1mfm.js +1 -0
  117. package/dist/web/_next/static/chunks/{0k.8qdk7oi_os.js → 128ugqd34tr_-.js} +1 -1
  118. package/dist/web/_next/static/chunks/12jm4gwmvq-0q.js +90 -0
  119. package/dist/web/_next/static/chunks/{0rke_patcovgr.js → 1442stwa0gbxe.js} +1 -1
  120. package/dist/web/_next/static/chunks/{0jokpgh485~28.js → 14hqmid8q4apf.js} +11 -11
  121. package/dist/web/_next/static/chunks/14s37n6h0_q3x.js +16 -0
  122. package/dist/web/_next/static/chunks/161ik5kfyuwtd.js +1 -0
  123. package/dist/web/_next/static/chunks/16sg-lflc8csx.js +1 -0
  124. package/dist/web/_next/static/chunks/17k~zbv0_4rep.js +1 -0
  125. package/dist/web/_next/static/chunks/17oc2l.ekcs8b.css +1 -0
  126. package/dist/web/_next/static/chunks/{turbopack-0lrdxynxb9-1t.js → turbopack-0ndm2zc_pdptk.js} +1 -1
  127. package/dist/web/_not-found/__next._full.txt +30 -31
  128. package/dist/web/_not-found/__next._head.txt +4 -4
  129. package/dist/web/_not-found/__next._index.txt +14 -14
  130. package/dist/web/_not-found/__next._not-found.__PAGE__.txt +2 -2
  131. package/dist/web/_not-found/__next._not-found.txt +3 -3
  132. package/dist/web/_not-found/__next._tree.txt +3 -3
  133. package/dist/web/_not-found.html +1 -1
  134. package/dist/web/_not-found.txt +30 -31
  135. package/dist/web/index.html +1 -1
  136. package/dist/web/index.txt +26 -30
  137. package/dist/web/login/__next._full.txt +32 -36
  138. package/dist/web/login/__next._head.txt +4 -4
  139. package/dist/web/login/__next._index.txt +14 -14
  140. package/dist/web/login/__next._tree.txt +3 -8
  141. package/dist/web/login/__next.login.__PAGE__.txt +4 -4
  142. package/dist/web/login/__next.login.txt +3 -3
  143. package/dist/web/login.html +1 -1
  144. package/dist/web/login.txt +32 -36
  145. package/dist/web/settings/__next._full.txt +29 -34
  146. package/dist/web/settings/__next._head.txt +4 -4
  147. package/dist/web/settings/__next._index.txt +14 -14
  148. package/dist/web/settings/__next._tree.txt +3 -8
  149. package/dist/web/settings/__next.settings.__PAGE__.txt +4 -4
  150. package/dist/web/settings/__next.settings.txt +5 -5
  151. package/dist/web/settings/agents/__next._full.txt +27 -32
  152. package/dist/web/settings/agents/__next._head.txt +4 -4
  153. package/dist/web/settings/agents/__next._index.txt +14 -14
  154. package/dist/web/settings/agents/__next._tree.txt +3 -8
  155. package/dist/web/settings/agents/__next.settings.agents.__PAGE__.txt +4 -4
  156. package/dist/web/settings/agents/__next.settings.agents.txt +3 -3
  157. package/dist/web/settings/agents/__next.settings.txt +5 -5
  158. package/dist/web/settings/agents.html +1 -1
  159. package/dist/web/settings/agents.txt +27 -32
  160. package/dist/web/settings/mcps/__next._full.txt +27 -32
  161. package/dist/web/settings/mcps/__next._head.txt +4 -4
  162. package/dist/web/settings/mcps/__next._index.txt +14 -14
  163. package/dist/web/settings/mcps/__next._tree.txt +3 -8
  164. package/dist/web/settings/mcps/__next.settings.mcps.__PAGE__.txt +4 -4
  165. package/dist/web/settings/mcps/__next.settings.mcps.txt +3 -3
  166. package/dist/web/settings/mcps/__next.settings.txt +5 -5
  167. package/dist/web/settings/mcps.html +1 -1
  168. package/dist/web/settings/mcps.txt +27 -32
  169. package/dist/web/settings/models/__next._full.txt +27 -32
  170. package/dist/web/settings/models/__next._head.txt +4 -4
  171. package/dist/web/settings/models/__next._index.txt +14 -14
  172. package/dist/web/settings/models/__next._tree.txt +3 -8
  173. package/dist/web/settings/models/__next.settings.models.__PAGE__.txt +4 -4
  174. package/dist/web/settings/models/__next.settings.models.txt +3 -3
  175. package/dist/web/settings/models/__next.settings.txt +5 -5
  176. package/dist/web/settings/models.html +1 -1
  177. package/dist/web/settings/models.txt +27 -32
  178. package/dist/web/settings/output-styles/__next._full.txt +38 -0
  179. package/dist/web/settings/output-styles/__next._head.txt +6 -0
  180. package/dist/web/settings/output-styles/__next._index.txt +15 -0
  181. package/dist/web/settings/output-styles/__next._tree.txt +3 -0
  182. package/dist/web/settings/output-styles/__next.settings.output-styles.__PAGE__.txt +9 -0
  183. package/dist/web/settings/output-styles/__next.settings.output-styles.txt +5 -0
  184. package/dist/web/settings/output-styles/__next.settings.txt +7 -0
  185. package/dist/web/settings/output-styles.html +1 -0
  186. package/dist/web/settings/output-styles.txt +38 -0
  187. package/dist/web/settings/prompts/__next._full.txt +27 -32
  188. package/dist/web/settings/prompts/__next._head.txt +4 -4
  189. package/dist/web/settings/prompts/__next._index.txt +14 -14
  190. package/dist/web/settings/prompts/__next._tree.txt +3 -8
  191. package/dist/web/settings/prompts/__next.settings.prompts.__PAGE__.txt +4 -4
  192. package/dist/web/settings/prompts/__next.settings.prompts.txt +3 -3
  193. package/dist/web/settings/prompts/__next.settings.txt +5 -5
  194. package/dist/web/settings/prompts.html +1 -1
  195. package/dist/web/settings/prompts.txt +27 -32
  196. package/dist/web/settings/providers/__next._full.txt +27 -32
  197. package/dist/web/settings/providers/__next._head.txt +4 -4
  198. package/dist/web/settings/providers/__next._index.txt +14 -14
  199. package/dist/web/settings/providers/__next._tree.txt +3 -8
  200. package/dist/web/settings/providers/__next.settings.providers.__PAGE__.txt +4 -4
  201. package/dist/web/settings/providers/__next.settings.providers.txt +3 -3
  202. package/dist/web/settings/providers/__next.settings.txt +5 -5
  203. package/dist/web/settings/providers.html +1 -1
  204. package/dist/web/settings/providers.txt +27 -32
  205. package/dist/web/settings/skills/__next._full.txt +27 -32
  206. package/dist/web/settings/skills/__next._head.txt +4 -4
  207. package/dist/web/settings/skills/__next._index.txt +14 -14
  208. package/dist/web/settings/skills/__next._tree.txt +3 -8
  209. package/dist/web/settings/skills/__next.settings.skills.__PAGE__.txt +4 -4
  210. package/dist/web/settings/skills/__next.settings.skills.txt +3 -3
  211. package/dist/web/settings/skills/__next.settings.txt +5 -5
  212. package/dist/web/settings/skills.html +1 -1
  213. package/dist/web/settings/skills.txt +27 -32
  214. package/dist/web/settings/tools/__next._full.txt +38 -0
  215. package/dist/web/settings/tools/__next._head.txt +6 -0
  216. package/dist/web/settings/tools/__next._index.txt +15 -0
  217. package/dist/web/settings/tools/__next._tree.txt +3 -0
  218. package/dist/web/settings/tools/__next.settings.tools.__PAGE__.txt +9 -0
  219. package/dist/web/settings/tools/__next.settings.tools.txt +5 -0
  220. package/dist/web/settings/tools/__next.settings.txt +7 -0
  221. package/dist/web/settings/tools.html +1 -0
  222. package/dist/web/settings/tools.txt +38 -0
  223. package/dist/web/settings.html +1 -1
  224. package/dist/web/settings.txt +29 -34
  225. package/dist/web/workflows/__next._full.txt +34 -37
  226. package/dist/web/workflows/__next._head.txt +4 -4
  227. package/dist/web/workflows/__next._index.txt +14 -14
  228. package/dist/web/workflows/__next._tree.txt +3 -8
  229. package/dist/web/workflows/__next.workflows.__PAGE__.txt +4 -4
  230. package/dist/web/workflows/__next.workflows.txt +3 -3
  231. package/dist/web/workflows.html +1 -1
  232. package/dist/web/workflows.txt +34 -37
  233. package/dist/web/workspace/_/__next._full.txt +32 -77
  234. package/dist/web/workspace/_/__next._head.txt +4 -4
  235. package/dist/web/workspace/_/__next._index.txt +14 -14
  236. package/dist/web/workspace/_/__next._tree.txt +4 -23
  237. package/dist/web/workspace/_/__next.workspace.$d$id.__PAGE__.txt +3 -18
  238. package/dist/web/workspace/_/__next.workspace.$d$id.txt +3 -3
  239. package/dist/web/workspace/_/__next.workspace.txt +3 -3
  240. package/dist/web/workspace/_.html +1 -1
  241. package/dist/web/workspace/_.txt +32 -77
  242. package/dist/web/workspaces/__next._full.txt +32 -38
  243. package/dist/web/workspaces/__next._head.txt +4 -4
  244. package/dist/web/workspaces/__next._index.txt +14 -14
  245. package/dist/web/workspaces/__next._tree.txt +3 -8
  246. package/dist/web/workspaces/__next.workspaces.__PAGE__.txt +4 -4
  247. package/dist/web/workspaces/__next.workspaces.txt +3 -3
  248. package/dist/web/workspaces.html +1 -1
  249. package/dist/web/workspaces.txt +32 -38
  250. package/dist/ws/agent-prompt.js +45 -8
  251. package/dist/ws/agent-runner.js +10 -6
  252. package/package.json +11 -10
  253. package/public/output-styles/carmack-mode.md +381 -0
  254. package/public/output-styles/codex-rigor-mode.md +114 -0
  255. package/public/output-styles/dhh-mode.md +265 -0
  256. package/public/output-styles/evan-you-mode.md +539 -0
  257. package/public/output-styles/index.json +37 -0
  258. package/public/output-styles/jobs-mode.md +369 -0
  259. package/public/output-styles/linus-mode.md +135 -0
  260. package/public/output-styles/uncle-bob-mode.md +221 -0
  261. package/public/prompt/andrej-karpathy-skills.md +65 -0
  262. package/public/prompt/claude-token-efficient-coding.md +35 -0
  263. package/public/prompt/index.json +12 -0
  264. package/public/skills/index.json +92 -0
  265. package/public/skills/planning-with-files/planning-with-files-zh/SKILL.md +243 -0
  266. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.ps1 +44 -0
  267. package/public/skills/planning-with-files/planning-with-files-zh/scripts/check-complete.sh +46 -0
  268. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.ps1 +124 -0
  269. package/public/skills/planning-with-files/planning-with-files-zh/scripts/init-session.sh +124 -0
  270. package/public/skills/planning-with-files/planning-with-files-zh/scripts/session-catchup.py +438 -0
  271. package/public/skills/planning-with-files/planning-with-files-zh/templates/findings.md +29 -0
  272. package/public/skills/planning-with-files/planning-with-files-zh/templates/progress.md +40 -0
  273. package/public/skills/planning-with-files/planning-with-files-zh/templates/task_plan.md +58 -0
  274. package/public/skills/superpowers/brainstorming/SKILL.md +164 -0
  275. package/public/skills/superpowers/brainstorming/scripts/frame-template.html +214 -0
  276. package/public/skills/superpowers/brainstorming/scripts/helper.js +88 -0
  277. package/public/skills/superpowers/brainstorming/scripts/server.cjs +354 -0
  278. package/public/skills/superpowers/brainstorming/scripts/start-server.sh +148 -0
  279. package/public/skills/superpowers/brainstorming/scripts/stop-server.sh +56 -0
  280. package/public/skills/superpowers/brainstorming/spec-document-reviewer-prompt.md +49 -0
  281. package/public/skills/superpowers/brainstorming/visual-companion.md +287 -0
  282. package/public/skills/superpowers/dispatching-parallel-agents/SKILL.md +182 -0
  283. package/public/skills/superpowers/executing-plans/SKILL.md +70 -0
  284. package/public/skills/superpowers/finishing-a-development-branch/SKILL.md +251 -0
  285. package/public/skills/superpowers/receiving-code-review/SKILL.md +213 -0
  286. package/public/skills/superpowers/requesting-code-review/SKILL.md +103 -0
  287. package/public/skills/superpowers/requesting-code-review/code-reviewer.md +168 -0
  288. package/public/skills/superpowers/subagent-driven-development/SKILL.md +279 -0
  289. package/public/skills/superpowers/subagent-driven-development/code-quality-reviewer-prompt.md +25 -0
  290. package/public/skills/superpowers/subagent-driven-development/implementer-prompt.md +113 -0
  291. package/public/skills/superpowers/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  292. package/public/skills/superpowers/systematic-debugging/CREATION-LOG.md +119 -0
  293. package/public/skills/superpowers/systematic-debugging/SKILL.md +296 -0
  294. package/public/skills/superpowers/systematic-debugging/condition-based-waiting-example.ts +158 -0
  295. package/public/skills/superpowers/systematic-debugging/condition-based-waiting.md +115 -0
  296. package/public/skills/superpowers/systematic-debugging/defense-in-depth.md +122 -0
  297. package/public/skills/superpowers/systematic-debugging/find-polluter.sh +63 -0
  298. package/public/skills/superpowers/systematic-debugging/root-cause-tracing.md +169 -0
  299. package/public/skills/superpowers/systematic-debugging/test-academic.md +14 -0
  300. package/public/skills/superpowers/systematic-debugging/test-pressure-1.md +58 -0
  301. package/public/skills/superpowers/systematic-debugging/test-pressure-2.md +68 -0
  302. package/public/skills/superpowers/systematic-debugging/test-pressure-3.md +69 -0
  303. package/public/skills/superpowers/test-driven-development/SKILL.md +371 -0
  304. package/public/skills/superpowers/test-driven-development/testing-anti-patterns.md +299 -0
  305. package/public/skills/superpowers/using-git-worktrees/SKILL.md +215 -0
  306. package/public/skills/superpowers/using-superpowers/SKILL.md +117 -0
  307. package/public/skills/superpowers/using-superpowers/references/codex-tools.md +59 -0
  308. package/public/skills/superpowers/using-superpowers/references/copilot-tools.md +42 -0
  309. package/public/skills/superpowers/using-superpowers/references/gemini-tools.md +51 -0
  310. package/public/skills/superpowers/verification-before-completion/SKILL.md +139 -0
  311. package/public/skills/superpowers/writing-plans/SKILL.md +152 -0
  312. package/public/skills/superpowers/writing-plans/plan-document-reviewer-prompt.md +49 -0
  313. package/public/skills/superpowers/writing-skills/SKILL.md +655 -0
  314. package/public/skills/superpowers/writing-skills/anthropic-best-practices.md +1150 -0
  315. package/public/skills/superpowers/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -0
  316. package/public/skills/superpowers/writing-skills/graphviz-conventions.dot +172 -0
  317. package/public/skills/superpowers/writing-skills/persuasion-principles.md +187 -0
  318. package/public/skills/superpowers/writing-skills/render-graphs.js +168 -0
  319. package/public/skills/superpowers/writing-skills/testing-skills-with-subagents.md +384 -0
  320. package/dist/web/_next/static/chunks/0-81wi7xr2nd-.js +0 -270
  321. package/dist/web/_next/static/chunks/00lca9lsasdm7.js +0 -1
  322. package/dist/web/_next/static/chunks/01gi~q0c6ez6..js +0 -1
  323. package/dist/web/_next/static/chunks/02shswpmybici.js +0 -1
  324. package/dist/web/_next/static/chunks/05tx6hzdtkgi9.js +0 -2
  325. package/dist/web/_next/static/chunks/07nbyndvzftr1.js +0 -3
  326. package/dist/web/_next/static/chunks/0bn~onkv~9xza.js +0 -1
  327. package/dist/web/_next/static/chunks/0g-0n6glz_z6w.js +0 -1
  328. package/dist/web/_next/static/chunks/0gyede80jpy3n.js +0 -4
  329. package/dist/web/_next/static/chunks/0hrbuvzuxrjfl.js +0 -1
  330. package/dist/web/_next/static/chunks/0i51q.5s_-.vh.css +0 -1
  331. package/dist/web/_next/static/chunks/0qf163pbrwy4z.js +0 -1
  332. package/dist/web/_next/static/chunks/0rnt-f3pjxb-d.js +0 -5
  333. package/dist/web/_next/static/chunks/0tgbcgsca9mrg.js +0 -1
  334. package/dist/web/_next/static/chunks/0tyhv6.y7~yxd.js +0 -1
  335. package/dist/web/_next/static/chunks/0u7_qd9hzqwac.js +0 -1
  336. package/dist/web/_next/static/chunks/0vuvql8rloda5.js +0 -1
  337. package/dist/web/_next/static/chunks/0wv0h27jafag4.js +0 -1
  338. package/dist/web/_next/static/chunks/0wwvc4zc2q6bn.js +0 -1
  339. package/dist/web/_next/static/chunks/0xmmk3vebw8xs.js +0 -1
  340. package/dist/web/_next/static/chunks/0xwqf.llmm_u2.js +0 -31
  341. package/dist/web/_next/static/chunks/0yo22_w53mo~5.js +0 -1
  342. package/dist/web/_next/static/chunks/12c0jp0qvlr1t.js +0 -1
  343. package/dist/web/_next/static/chunks/12pg1nn3v~~5k.js +0 -1
  344. package/dist/web/_next/static/chunks/16cyr8ilpx1nn.js +0 -1
  345. package/dist/web/_next/static/media/0a7740363b4d4863-s.1110aazvokzp..woff2 +0 -0
  346. package/dist/web/_next/static/media/0da9c7f357bd9d4d-s.0ek5sshv8wk3m.woff2 +0 -0
  347. package/dist/web/_next/static/media/1b99372b3eaef0c8-s.p.0gx2haw2tmll8.woff2 +0 -0
  348. package/dist/web/_next/static/media/41e95f694c5c4549-s.0r1jrq7neqdsq.woff2 +0 -0
  349. package/dist/web/_next/static/media/5c285b27cdda1fe8-s.p.0yo6-5yoeeudq.woff2 +0 -0
  350. package/dist/web/_next/static/media/5f9d24ebef5d5292-s.0esuu2f5si~v8.woff2 +0 -0
  351. package/dist/web/_next/static/media/6c55a692938ebbbc-s.0g6rbszwfgn9y.woff2 +0 -0
  352. package/dist/web/_next/static/media/8e6fa89aa22d24ec-s.p.0uvzar8hswo3p.woff2 +0 -0
  353. package/dist/web/_next/static/media/a218039a3287bcfd-s.p.17-1enzs_j91b.woff2 +0 -0
  354. package/dist/web/_next/static/media/b2ea385cb5ae8625-s.0kjod.kaq1k69.woff2 +0 -0
  355. package/dist/web/_next/static/media/bdc7e24a509eb931-s.0apt5mko2.qn3.woff2 +0 -0
  356. package/dist/web/_next/static/media/c3cb240f9c892514-s.163v2i5cux7-c.woff2 +0 -0
  357. package/dist/web/_next/static/media/e2334d715941921e-s.p.12skym0rqknxy.woff2 +0 -0
  358. package/public/avatars/1777813826407-bea0ja-minimax.svg +0 -1
  359. package/public/avatars/1777813967088-3xlvd0-minimax.svg +0 -1
  360. package/public/avatars/1777814041714-yp0qeq-minimax.svg +0 -1
  361. package/public/avatars/1777904986095-rg26je-icon.png +0 -0
  362. package/public/avatars/1778953228323-5je54x-user.jpg +0 -0
  363. package/public/avatars/1778954057880-g01q6y-user.jpg +0 -0
  364. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_buildManifest.js +0 -0
  365. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_clientMiddlewareManifest.js +0 -0
  366. /package/dist/web/_next/static/{GS3b40oeaeLxm7i9-ibaj → e8w3vd9Eov_LDYWj_0zsE}/_ssgManifest.js +0 -0
  367. /package/public/avatars/{1777815865622-08wp9m-user.jpg → user.jpg} +0 -0
@@ -0,0 +1,16 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,600304,759309,e=>{"use strict";let t=(0,e.i(433721).default)("send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);e.s(["default",0,t],759309),e.s(["Send",0,t],600304)},583705,e=>{"use strict";let t=(0,e.i(433721).default)("info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);e.s(["Info",0,t],583705)},244996,444741,e=>{"use strict";let t=(0,e.i(433721).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",0,t],444741),e.s(["CheckCircle2",0,t],244996)},294543,e=>{"use strict";let t=(0,e.i(433721).default)("circle-question-mark",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);e.s(["default",0,t])},896841,e=>{"use strict";var t=e.i(344180),s=e.i(764556),a=e.i(244073),i=e.i(191118),n=e.i(31807),r=e.i(327964),o=e.i(355819),c=e.i(361031),l=e.i(588591),d=e.i(62669),m=e.i(515104),p=e.i(226624),u=e.i(817854),h=e.i(451534),x=e.i(227634),f=e.i(191441);function g({icon:e,label:s,value:a}){return(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)("span",{className:"text-muted-foreground",children:e}),(0,t.jsx)("span",{className:"text-muted-foreground shrink-0",children:s}),(0,t.jsx)("span",{className:"truncate text-foreground ml-auto",title:a,children:a})]})}function j({workspace:e,channelCount:i,issueCount:n}){let r=(0,a.useTranslations)("projectSettings"),[o,c]=(0,s.useState)(!1!==e.autoProcessIssues),[l,m]=(0,s.useState)(!1!==e.hooksEnabled),[v,w]=(0,s.useState)(!1),N=async t=>{if(!v){w(!0);try{let s=await fetch(`/api/workspaces/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({autoProcessIssues:t})}),a=await s.json();c(!1!==a.autoProcessIssues)}finally{w(!1)}}},y=async t=>{if(!v){w(!0);try{let s=await fetch(`/api/workspaces/${e.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({hooksEnabled:t})}),a=await s.json();m(!1!==a.hooksEnabled)}finally{w(!1)}}};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:r("info.title")}),(0,t.jsx)(g,{icon:(0,t.jsx)(h.FolderOpen,{size:14}),label:r("info.path"),value:e.boundDirs[0]??"-"}),(0,t.jsx)(g,{icon:(0,t.jsx)(x.Hash,{size:14}),label:r("info.channels"),value:String(i)}),(0,t.jsx)(g,{icon:(0,t.jsx)(f.ListChecks,{size:14}),label:r("info.issues"),value:String(n)})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:r("automation.title")}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"space-y-0.5 pr-4",children:[(0,t.jsx)(u.Label,{htmlFor:"auto-process",className:"text-sm font-medium",children:r("automation.autoProcess")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:r("automation.autoProcessDescription")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[v&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"}),(0,t.jsx)(p.Switch,{id:"auto-process",checked:o,onCheckedChange:N,disabled:v})]})]})]}),(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:"Hooks"}),(0,t.jsxs)("div",{className:"flex items-center justify-between rounded-md border px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"space-y-0.5 pr-4",children:[(0,t.jsx)(u.Label,{htmlFor:"hooks-enabled",className:"text-sm font-medium",children:"Enable Hooks"}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:"Enable per-tool-call hooks for this workspace"})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[v&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"}),(0,t.jsx)(p.Switch,{id:"hooks-enabled",checked:l,onCheckedChange:y,disabled:v})]})]})]})]})}var v=e.i(260218),w=e.i(681622),N=e.i(812057),y=e.i(209988),k=e.i(36539),k=k,b=e.i(325443),S=e.i(244996),C=e.i(294543),C=C,T=e.i(92457);let I=(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 P=e.i(601039),F=e.i(600304),E=e.i(360112);let O=[{value:"issue_started",labelKey:"events.issueStarted"},{value:"issue_completed",labelKey:"events.issueCompleted"},{value:"issue_task_completed",labelKey:"events.taskCompleted"},{value:"channel_agent_completed",labelKey:"events.channelAgentCompleted"}];function D(){return{enabled:!1,provider:"lark",events:["issue_started","issue_completed","issue_task_completed"],lark:{},wechat:{}}}let L=`{
2
+ "scopes": {
3
+ "tenant": [
4
+ "contact:contact.base:readonly",
5
+ "im:chat:readonly",
6
+ "im:chat.members:read",
7
+ "im:message",
8
+ "im:message.group_at_msg:readonly",
9
+ "im:message.group_msg",
10
+ "im:message.p2p_msg:readonly",
11
+ "im:message:send_as_bot",
12
+ "im:resource"
13
+ ],
14
+ "user": []
15
+ }
16
+ }`;function z(){let[e,a]=(0,s.useState)(!1);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>{navigator.clipboard.writeText(L).then(()=>{a(!0),setTimeout(()=>a(!1),2e3)})},children:[e?(0,t.jsx)(S.CheckCircle2,{className:"mr-1.5 h-3.5 w-3.5 text-emerald-600"}):null,e?"已复制":"复制批量权限配置"]}),(0,t.jsxs)("details",{className:"group",children:[(0,t.jsx)("summary",{className:"cursor-pointer text-xs text-muted-foreground hover:text-foreground",children:"展开查看权限详情"}),(0,t.jsx)("pre",{className:"mt-1.5 overflow-x-auto rounded-md bg-muted p-2 text-xs",children:L})]})]})}function _({workspaceId:e,workspace:i,notificationDraft:n,setNotificationDraft:r,setWorkspace:o,botAgents:l,agentDialogOpen:h,setAgentDialogOpen:x}){var f;let g=(0,a.useTranslations)("projectSettings"),j=(0,a.useTranslations)("common"),[L,q]=(0,s.useState)(!1),[A,R]=(0,s.useState)(!1),[B,$]=(0,s.useState)(!1),[M,U]=(0,s.useState)(!1),[W,G]=(0,s.useState)({status:"idle"}),K=(0,s.useRef)(!1),[J,Q]=(0,s.useState)("default"),[H,V]=(0,s.useState)(!1),[X,Y]=(0,s.useState)(!1),Z=!!(n.wechat?.token&&n.wechat?.accountId),ee=(0,c.useWorkspaceStore)(e=>e.upsertWorkspace);(0,s.useEffect)(()=>{if(!n.enabled||"wechat"!==n.provider||!["wait","scaned"].includes(W.status))return;let t=window.setInterval(()=>{K.current||(K.current=!0,fetch(`/api/workspaces/${e}/notifications/wechat/qr?poll=1`,{method:"POST"}).then(async e=>{let t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error||"Failed to poll WeChat QR status");G({status:t.status??"wait",qrcodeImgContent:t.qrcodeImgContent??W.qrcodeImgContent,accountId:t.accountId,baseUrl:t.baseUrl}),t.workspace&&(o(t.workspace),r(t.workspace.notificationSettings??D()),E.toast.success(g("wechat.connectedToast")))}).catch(e=>{E.toast.error(g("wechat.pollFailed"),{description:e instanceof Error?e.message:void 0})}).finally(()=>{K.current=!1}))},2e3);return()=>window.clearInterval(t)},[n.enabled,n.provider,r,o,g,W.qrcodeImgContent,W.status,e]),(0,s.useEffect)(()=>{V((0,m.isNativeAndroidEnvironment)()),(0,m.getNotificationPermission)().then(Q)},[]);let et=async t=>{if(!i||L)return null;q(!0);try{let s=await fetch(`/api/workspaces/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({notificationSettings:t})});if(!s.ok){let e=await s.json().catch(()=>null);throw Error(e?.error||"Failed to save notification settings")}let a=await s.json();return o(a),ee(a),r(a.notificationSettings??D()),a}catch(e){return E.toast.error(g("notifications.saveFailed"),{description:e instanceof Error?e.message:void 0}),null}finally{q(!1)}},es=e=>{let t={...n,...e,lark:{...n.lark,...e.lark},wechat:{...n.wechat,...e.wechat},native:{...n.native,...e.native}};r(t),et(t)},ea=async()=>{if(!A){R(!0);try{if(!await et(n))throw Error("Failed to save notification settings");let t=await fetch(`/api/workspaces/${e}/notifications/start`,{method:"POST"});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error||"Failed to start notification service")}let s=await t.json();s.workspace?(o(s.workspace),r(s.workspace.notificationSettings??D())):r({...n,serviceRunning:!0}),E.toast.success(g("notifications.startSuccess"))}catch(e){E.toast.error(g("notifications.startFailed"),{description:e instanceof Error?e.message:void 0})}finally{R(!1)}}},ei=async()=>{if(!A){R(!0);try{let t=await fetch(`/api/workspaces/${e}/notifications/stop`,{method:"POST"});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error||"Failed to stop notification service")}let s=await t.json();s.workspace?(o(s.workspace),r(s.workspace.notificationSettings??D())):r({...n,serviceRunning:!1}),E.toast.success(g("notifications.stopSuccess"))}catch(e){E.toast.error(g("notifications.stopFailed"),{description:e instanceof Error?e.message:void 0})}finally{R(!1)}}},en=async()=>{if(!B){$(!0);try{let t=await fetch(`/api/workspaces/${e}/notifications/test`,{method:"POST"}),s=await t.json().catch(()=>null);if(!t.ok)throw Error(s?.reason||s?.error||"Failed to send test notification");E.toast.success(g("notifications.testSuccess"))}catch(e){E.toast.error(g("notifications.testFailed"),{description:e instanceof Error?e.message:void 0})}finally{$(!1)}}},er=async()=>{if(!M){U(!0);try{if(!await et({...n,provider:"wechat"}))throw Error("Failed to save notification settings");let t=await fetch(`/api/workspaces/${e}/notifications/wechat/qr${Z?"?refresh=1":""}`,{method:"POST"}),s=await t.json().catch(()=>null);if(!t.ok)throw Error(s?.error||"Failed to get WeChat QR code");G({status:s.status??"wait",qrcodeImgContent:s.qrcodeImgContent,accountId:s.accountId,baseUrl:s.baseUrl}),s.workspace&&(o(s.workspace),r(s.workspace.notificationSettings??D()))}catch(e){E.toast.error(g("wechat.getQrFailed"),{description:e instanceof Error?e.message:void 0})}finally{U(!1)}}};return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:g("notifications.title")}),(0,t.jsxs)("div",{className:"space-y-4 rounded-md border px-3 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"space-y-0.5 pr-4",children:[(0,t.jsx)(u.Label,{htmlFor:"message-notifications",className:"text-sm font-medium",children:g("notifications.messageNotifications")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:g("notifications.messageNotificationsDescription")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[L&&(0,t.jsx)(d.Loader2,{className:"h-3 w-3 animate-spin text-muted-foreground"}),(0,t.jsx)(p.Switch,{id:"message-notifications",checked:n.enabled,onCheckedChange:e=>es({enabled:e}),disabled:L})]})]}),n.enabled&&(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)(N.Tabs,{value:n.provider,onValueChange:e=>es({provider:e}),className:"flex flex-col",children:[(0,t.jsxs)(N.TabsList,{className:"grid w-full grid-cols-3",children:[(0,t.jsx)(N.TabsTrigger,{value:"lark",children:g("notifications.lark")}),(0,t.jsx)(N.TabsTrigger,{value:"wechat",children:g("notifications.wechat")}),(0,t.jsx)(N.TabsTrigger,{value:"native",children:g("notifications.native")})]}),(0,t.jsxs)(N.TabsContent,{value:"lark",className:"space-y-3 pt-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs text-muted-foreground",children:"飞书 Bot 配置"}),(0,t.jsxs)(v.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs text-muted-foreground hover:text-foreground",onClick:()=>Y(!0),children:[(0,t.jsx)(C.default,{className:"h-3.5 w-3.5"}),"部署教程"]})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(u.Label,{htmlFor:"lark-app-id",className:"text-xs text-muted-foreground",children:g("notifications.appId")}),(0,t.jsx)(w.Input,{id:"lark-app-id",value:n.lark?.appId??"",onChange:e=>r({...n,lark:{...n.lark,appId:e.target.value}}),placeholder:"cli_xxx",disabled:A})]}),(0,t.jsxs)("div",{className:"grid gap-2",children:[(0,t.jsx)(u.Label,{htmlFor:"lark-app-secret",className:"text-xs text-muted-foreground",children:g("notifications.appSecret")}),(0,t.jsx)(w.Input,{id:"lark-app-secret",type:"password",value:n.lark?.appSecret??"",onChange:e=>r({...n,lark:{...n.lark,appSecret:e.target.value}}),placeholder:"app secret",disabled:A})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:n.serviceRunning?"outline":"default",onClick:n.serviceRunning?ei:ea,disabled:A||L||!n.lark?.appId||!n.lark?.appSecret,children:[A?(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(F.Send,{className:"mr-2 h-3.5 w-3.5"}),n.serviceRunning?g("notifications.stopService"):g("notifications.startService")]}),(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:en,disabled:B||L||!n.serviceRunning,children:[B&&(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),g("notifications.testSend")]})]})]}),(0,t.jsxs)(N.TabsContent,{value:"wechat",className:"space-y-3 pt-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm font-medium",children:[Z?(0,t.jsx)(S.CheckCircle2,{className:"h-4 w-4 text-emerald-600"}):(0,t.jsx)(I,{className:"h-4 w-4"}),g("wechat.robot")]}),(0,t.jsx)("p",{className:"mt-1 truncate text-xs text-muted-foreground",children:Z?g("wechat.connected",{accountId:n.wechat?.accountId??""}):"scaned"===W.status?g("wechat.scanned"):"expired"===W.status?g("wechat.expired"):g("wechat.scanQr")})]}),(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:er,disabled:M||L||A,children:[M?(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(P.RefreshCw,{className:"mr-2 h-3.5 w-3.5"}),Z?g("wechat.refreshLogin"):g("wechat.getQr")]})]}),W.qrcodeImgContent&&!Z&&(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:(f=W.qrcodeImgContent,`https://api.qrserver.com/v1/create-qr-code/?size=180x180&margin=8&data=${encodeURIComponent(f)}`),alt:"WeChat robot login QR code",className:"h-36 w-36 shrink-0 rounded border bg-white p-2"}),(0,t.jsxs)("div",{className:"min-w-0 space-y-1 text-xs text-muted-foreground",children:[(0,t.jsx)("p",{children:g("wechat.status",{status:"scaned"===W.status?"scanned":W.status})}),(0,t.jsx)("p",{className:"break-all",children:g("wechat.loginUrl",{url:W.qrcodeImgContent})})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:n.serviceRunning?"outline":"default",onClick:n.serviceRunning?ei:ea,disabled:A||L||!Z,children:[A?(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}):(0,t.jsx)(F.Send,{className:"mr-2 h-3.5 w-3.5"}),n.serviceRunning?g("notifications.stopService"):g("notifications.startService")]}),(0,t.jsxs)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:en,disabled:B||L||!n.serviceRunning,children:[B&&(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),g("notifications.testSend")]})]})]}),(0,t.jsxs)(N.TabsContent,{value:"native",className:"space-y-3 pt-2",children:[(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:g("notifications.nativeDescription")}),(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-sm",children:[(0,t.jsx)(T.Monitor,{className:"h-4 w-4 text-muted-foreground"}),(0,t.jsxs)("span",{className:"font-medium",children:["granted"===J&&(0,t.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(S.CheckCircle2,{className:"h-4 w-4 text-emerald-600"}),g("notifications.nativePermissionGranted")]}),"denied"===J&&g("notifications.nativePermissionDenied"),"default"===J&&g("notifications.nativePermissionDefault"),"unsupported"===J&&g("notifications.nativePermissionUnsupported")]})]}),"unsupported"!==J&&"granted"!==J&&(0,t.jsx)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:async()=>{let e=await (0,m.requestNotificationPermission)();Q(e),"granted"===e?(es({native:{permissionGranted:!0}}),E.toast.success(g("notifications.nativePermissionGrantedToast"))):"denied"===e&&E.toast.error(g("notifications.nativePermissionDeniedToast"))},disabled:"denied"===J,children:g("notifications.nativeRequestPermission")})]}),H&&(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-md border px-3 py-2.5",children:[(0,t.jsxs)("div",{className:"space-y-0.5 pr-4",children:[(0,t.jsx)(u.Label,{htmlFor:"android-ongoing-task-notification",className:"text-sm font-medium",children:g("notifications.androidOngoingTaskNotification")}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:g("notifications.androidOngoingTaskNotificationDescription")})]}),(0,t.jsx)(p.Switch,{id:"android-ongoing-task-notification",checked:n.native?.androidOngoingTaskNotification??!1,onCheckedChange:e=>es({native:{permissionGranted:n.native?.permissionGranted,androidOngoingTaskNotification:e}}),disabled:L||"granted"!==J})]}),(0,t.jsx)("div",{className:"flex flex-wrap gap-2",children:(0,t.jsx)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:async()=>{try{await (0,m.sendNativeNotification)("Agent Spaces",g("notifications.nativeTestSuccess")),E.toast.success(g("notifications.nativeTestSent"),{duration:5e3})}catch(e){E.toast.error(`${g("notifications.nativeTestFailed")}: ${e instanceof Error?e.message:e}`,{duration:5e3})}},disabled:"granted"!==J,children:g("notifications.testSend")})})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,t.jsx)(b.Bot,{className:"h-3.5 w-3.5"}),g("botAgent.title")]}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsxs)("select",{value:n.botAgentId??"",onChange:e=>{es({botAgentId:e.target.value||void 0})},disabled:L,className:"h-8 min-w-0 flex-1 rounded-lg border border-input bg-transparent px-2.5 text-sm outline-none focus-visible:border-ring dark:bg-input/30",children:[(0,t.jsx)("option",{value:"",children:g("botAgent.selectAgent")}),l.map(e=>(0,t.jsx)("option",{value:e.id,children:e.name},e.id))]}),(0,t.jsx)(v.Button,{type:"button",size:"sm",variant:"outline",onClick:()=>x(!0),children:j("manage")})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,t.jsx)(k.default,{className:"h-3.5 w-3.5"}),g("events.title")]}),(0,t.jsx)("div",{className:"grid gap-2",children:O.map(e=>(0,t.jsxs)("label",{className:"flex items-center gap-2 rounded-md border px-3 py-2 text-sm",children:[(0,t.jsx)("input",{type:"checkbox",className:"h-4 w-4 accent-primary",checked:n.events.includes(e.value),onChange:t=>{var s,a;let i;return s=e.value,a=t.target.checked,i=new Set(n.events),void(a?i.add(s):i.delete(s),es({events:Array.from(i)}))},disabled:L}),(0,t.jsx)("span",{children:g(e.labelKey)})]},e.value))})]})]})]}),(0,t.jsx)(y.Dialog,{open:X,onOpenChange:Y,children:(0,t.jsxs)(y.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(y.DialogHeader,{children:[(0,t.jsx)(y.DialogTitle,{children:"创建飞书 Bot"}),(0,t.jsx)(y.DialogDescription,{children:"首次使用?按以下步骤在飞书开放平台创建机器人应用"})]}),(0,t.jsxs)("div",{className:"space-y-4 text-sm",children:[(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"1. 创建自建应用"}),(0,t.jsxs)("p",{className:"text-muted-foreground",children:["前往"," ",(0,t.jsx)("a",{href:"https://open.feishu.cn/app",target:"_blank",rel:"noreferrer",className:"underline underline-offset-3 hover:text-foreground",children:"飞书开放平台"})," ","(海外版:"," ",(0,t.jsx)("a",{href:"https://open.larksuite.com/app",target:"_blank",rel:"noreferrer",className:"underline underline-offset-3 hover:text-foreground",children:"Lark 开放平台"}),"),点击「创建自建应用」并填写名称描述。"]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"2. 获取凭证"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"进入详情页,在「凭证与基础信息」中找到 App ID 和 App Secret,复制到上方的配置表单。"})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"3. 启用机器人能力"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"进入「添加应用能力」页面,启用「机器人」能力。这样应用才能接收和发送飞书消息。"})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"4. 配置权限"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"进入「权限管理」页面,点击下方按钮复制权限配置 JSON,然后在飞书开放平台通过「批量开通」粘贴即可一键添加所有权限:"}),(0,t.jsx)(z,{})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"5. 配置事件订阅(关键步骤)"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"进入「事件与回调」页面:"}),(0,t.jsxs)("ul",{className:"list-disc space-y-1 pl-4 text-muted-foreground",children:[(0,t.jsx)("li",{children:"事件订阅方式选择「使用长连接接收事件」(而非 Webhook,无需公网 IP)"}),(0,t.jsxs)("li",{children:["添加事件 ",(0,t.jsx)("code",{className:"rounded bg-muted px-1 py-0.5 text-xs",children:"im.message.receive_v1"}),"(接收消息)"]})]})]}),(0,t.jsxs)("div",{className:"space-y-1.5",children:[(0,t.jsx)("p",{className:"font-medium",children:"6. 发布应用"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"进入「版本管理与发布」→ 创建版本 → 提交审核。需要企业管理员在管理后台审核通过后,机器人才能正常使用。"}),(0,t.jsx)("p",{className:"text-muted-foreground",children:"版本审核通过并发布后,在飞书中搜索机器人名称添加到聊天,即可通过飞书向 Proma Agent 发送指令。"})]})]})]})})]})}var q=e.i(788010),A=e.i(583705),R=e.i(638322);function B({workspaceId:e,initialPrompt:i}){let n=(0,a.useTranslations)("projectSettings"),[r,o]=(0,s.useState)(i),[c,l]=(0,s.useState)(i),[m,p]=(0,s.useState)(!1),h=r!==c,x=async()=>{if(!m){p(!0);try{let t=await fetch(`/api/workspaces/${e}/prompt`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({prompt:r})});if(!t.ok){let e=await t.json().catch(()=>null);throw Error(e?.error||"Failed to save workspace prompt")}let s=await t.json();o(s.prompt),l(s.prompt),E.toast.success(n("prompt.saveSuccess"))}catch(e){E.toast.error(n("prompt.saveFailed"),{description:e instanceof Error?e.message:void 0})}finally{p(!1)}}};return(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)("h4",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider",children:n("prompt.title")}),(0,t.jsxs)("div",{className:"space-y-3 rounded-md border px-3 py-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(u.Label,{htmlFor:"workspace-prompt",className:"text-sm font-medium",children:n("prompt.workspacePrompt")}),(0,t.jsx)(R.TooltipProvider,{delay:200,children:(0,t.jsxs)(R.Tooltip,{children:[(0,t.jsx)(R.TooltipTrigger,{className:"inline-flex",children:(0,t.jsx)(A.Info,{className:"h-3.5 w-3.5 text-muted-foreground cursor-help"})}),(0,t.jsx)(R.TooltipContent,{side:"top",className:"max-w-xs",children:(0,t.jsx)("p",{children:n("prompt.description")})})]})})]}),(0,t.jsx)(q.Textarea,{id:"workspace-prompt",value:r,onChange:e=>o(e.target.value),className:"min-h-36 resize-y text-sm"}),(0,t.jsx)("div",{className:"flex justify-end",children:(0,t.jsxs)(v.Button,{type:"button",size:"sm",onClick:x,disabled:m||!h,children:[m&&(0,t.jsx)(d.Loader2,{className:"mr-2 h-3.5 w-3.5 animate-spin"}),n("prompt.savePrompt")]})})]})]})}e.s(["ProjectSettingsPanel",0,function({workspaceId:e}){let p=(0,a.useTranslations)("projectSettings"),[u,h]=(0,s.useState)(null),[x,f]=(0,s.useState)(""),[g,v]=(0,s.useState)(!0),[w,N]=(0,s.useState)(!1),[y,k]=(0,s.useState)(D()),b=(0,n.useChannelStore)(e=>e.channels),S=(0,r.useIssueStore)(e=>e.issues),C=(0,o.useAgentStore)(e=>e.agents).filter(e=>"bot"===e.role&&!1!==e.enabled),T=(0,c.useWorkspaceStore)(e=>e.upsertWorkspace);return((0,s.useEffect)(()=>{Promise.all([fetch(`/api/workspaces/${e}`).then(e=>e.json()),fetch(`/api/workspaces/${e}/prompt`).then(e=>e.json())]).then(([t,s])=>{h(t),T(t),f(s.prompt??"");let a=t.notificationSettings??D();k(a),v(!1),(0,m.getNotificationPermission)().then(t=>{if("granted"===t&&"native"===a.provider&&!a.native?.permissionGranted){let t={...a,native:{...a.native,permissionGranted:!0}};k(t),fetch(`/api/workspaces/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({notificationSettings:t})}).then(e=>e.json()).then(e=>{h(e),T(e)})}})}).catch(()=>v(!1))},[e,T]),g)?(0,t.jsxs)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:[(0,t.jsx)(d.Loader2,{className:"h-4 w-4 animate-spin mr-2"}),p("loading")]}):u?(0,t.jsxs)(i.ScrollArea,{className:"h-full",children:[(0,t.jsx)("div",{className:"flex items-center px-2 py-1.5 border-b text-xs font-medium text-muted-foreground",children:(0,t.jsx)("span",{children:p("title")})}),(0,t.jsxs)("div",{className:"p-4 space-y-6",children:[(0,t.jsx)(j,{workspace:u,channelCount:b.length,issueCount:S.length}),(0,t.jsx)(_,{workspaceId:e,workspace:u,notificationDraft:y,setNotificationDraft:k,setWorkspace:h,botAgents:C,agentDialogOpen:w,setAgentDialogOpen:N}),(0,t.jsx)(B,{workspaceId:e,initialPrompt:x})]}),(0,t.jsx)(l.AgentDialog,{open:w,onOpenChange:N,roleFilter:"bot"})]}):(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:p("workspaceNotFound")})}],896841)},985646,e=>{e.n(e.i(896841))}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,625873,e=>{"use strict";var t=e.i(344180),s=e.i(764556),n=e.i(244073),a=e.i(209988),i=e.i(260218),l=e.i(191118),r=e.i(513501),o=e.i(989484),c=e.i(193251),d=e.i(973370),m=e.i(887354),p=e.i(681622),h=e.i(917955),u=e.i(611176),x=e.i(255742),f=e.i(973767),g=e.i(129981),j=e.i(601039),y=e.i(977694),v=e.i(137340),N=e.i(401058),k=e.i(451534);let w=(0,e.i(433721).default)("file-archive",[["path",{d:"M13.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v11.5",key:"4pqfef"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M8 12v-1",key:"1ej8lb"}],["path",{d:"M8 18v-2",key:"qcmpov"}],["path",{d:"M8 7V6",key:"1nbb54"}],["circle",{cx:"8",cy:"20",r:"2",key:"ckkr5m"}]]);var b=e.i(327962),C=e.i(62669),S=e.i(465458),z=e.i(256186),T=e.i(650654),D=e.i(992764);function I({items:e,onItemsChange:a,onConfirm:r,onCancel:o,defaultGroup:c}){let d=(0,n.useTranslations)("skills"),[m,h]=(0,s.useState)(""),[u,x]=(0,s.useState)(new Set),f=(t,s)=>{a(e.map(e=>e.id===t?{...e,...s}:e))},g=e.filter(e=>e.selected).length;return(0,t.jsxs)("div",{className:"flex flex-col flex-1 min-h-0 pt-2",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3 mb-2",children:[(0,t.jsx)("span",{className:"text-sm font-medium",children:d("importPreviewTitle")}),(0,t.jsx)("div",{className:"flex-1"}),(0,t.jsxs)("div",{className:"flex gap-1",children:[(0,t.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:()=>{a(e.map(e=>({...e,selected:!0})))},children:d("importPreviewSelectAll")}),(0,t.jsx)(i.Button,{variant:"ghost",size:"sm",onClick:()=>{a(e.map(e=>({...e,selected:!1})))},children:d("importPreviewDeselectAll")})]}),(0,t.jsx)(p.Input,{value:m,onChange:e=>h(e.target.value),placeholder:c||d("importPreviewGroupPlaceholder"),className:"h-7 text-sm w-32"})]}),0===e.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-8 text-muted-foreground text-sm",children:d("importPreviewEmpty")}):(0,t.jsx)(l.ScrollArea,{className:"flex-1 min-h-0",children:(0,t.jsx)("div",{className:"space-y-2 pr-2",children:e.map(s=>{let n=u.has(s.id);return(0,t.jsxs)("div",{className:"rounded-lg border border-border bg-background p-3",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("input",{type:"checkbox",checked:s.selected,onChange:()=>{var t;f(t=s.id,{selected:!e.find(e=>e.id===t).selected})},className:"mt-0.5 size-3.5 accent-primary shrink-0"}),(0,t.jsx)(p.Input,{value:s.name,onChange:e=>f(s.id,{name:e.target.value}),placeholder:d("importPreviewNamePlaceholder"),className:"h-7 text-sm flex-1"}),(0,t.jsx)(p.Input,{value:s.group,onChange:e=>f(s.id,{group:e.target.value}),placeholder:d("importPreviewGroupPlaceholder"),className:"h-7 text-sm w-32"}),(0,t.jsx)("button",{type:"button",onClick:()=>{var e;return e=s.id,void x(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},className:"p-1 rounded hover:bg-accent shrink-0 cursor-pointer",children:n?(0,t.jsx)(T.ChevronDown,{className:"size-3.5 text-muted-foreground"}):(0,t.jsx)(D.ChevronRight,{className:"size-3.5 text-muted-foreground"})})]}),(0,t.jsx)(z.Collapsible,{open:n,children:(0,t.jsx)(z.CollapsibleContent,{children:(0,t.jsxs)("pre",{className:"mt-2 p-2 bg-muted rounded text-xs overflow-auto max-h-48 whitespace-pre-wrap",children:[s.content.slice(0,2e3),s.content.length>2e3?"\n...":""]})})})]},s.id)})})}),(0,t.jsxs)("div",{className:"flex items-center justify-end gap-2 pt-2 mt-2 border-t",children:[(0,t.jsx)(i.Button,{variant:"outline",size:"sm",onClick:o,children:d("importPreviewCancel")}),(0,t.jsx)(i.Button,{size:"sm",onClick:()=>{let t=e.filter(e=>e.selected).map(e=>({...e,group:e.group||m}));0!==t.length&&r(t)},disabled:0===g,children:d("importPreviewConfirm",{selected:g,total:e.length})})]})]})}function A({skills:r,agents:c,loading:z,syncLoading:T,onToggleFavorite:D,onDelete:$,onEdit:F,onBind:B,onImportBatch:P,onImportFromGit:L,onSyncCheck:M,onBindAll:O}){let U=(0,n.useTranslations)("skills"),R=(0,n.useTranslations)("common"),[_,E]=(0,s.useState)(""),[G,J]=(0,s.useState)("all"),[H,K]=(0,s.useState)(""),[W,q]=(0,s.useState)(""),V=(0,s.useRef)(null),Z=(0,s.useRef)(null),Q=(0,s.useRef)(null),[X,Y]=(0,s.useState)([]),[ee,et]=(0,s.useState)(!1),[es,en]=(0,s.useState)(""),[ea,ei]=(0,s.useState)(""),[el,er]=(0,s.useState)(!1),[eo,ec]=(0,s.useState)(!1),ed=Array.from(new Set(r.map(e=>e.group).filter(Boolean))),em=r.filter(e=>{if(_){let t=_.toLowerCase();if(!e.name.toLowerCase().includes(t)&&!e.content.toLowerCase().includes(t))return!1}if("favorites"===G&&!e.favorited||"agent"===G&&H&&!e.boundAgents.some(e=>e.id===H))return!1;if(W){if("__none__"===W){if(e.group)return!1}else if(e.group!==W)return!1}return!0}),ep=async e=>{let t=e.target.files;if(!t||0===t.length)return;let s=[];for(let e of Array.from(t)){let t=await e.text(),n=e.name.replace(/\.md$/i,"");s.push({id:`md-${n}-${Math.random().toString(36).slice(2,8)}`,name:n,group:"",content:t,selected:!0,sourceName:e.name})}Y(s),en(""),et(!0),e.target.value=""},eh=async e=>{let t=e.target.files;if(!t||0===t.length)return;let s=new Map;for(let e of Array.from(t)){let t=e.webkitRelativePath.split("/")[0];s.has(t)||s.set(t,[]),s.get(t).push(e)}let n=[];for(let[e,t]of s){let s=t.find(e=>"SKILL.md"===e.name);if(s||(s=t.find(e=>e.name.endsWith(".md"))),!s)continue;let a=await s.text();n.push({id:`folder-${e}-${Math.random().toString(36).slice(2,8)}`,name:e,group:"",content:a,selected:!0,sourceName:e})}Y(n),en(""),et(!0),e.target.value=""},eu=async t=>{let s=t.target.files?.[0];if(s){try{let t=(await e.A(980476)).default,n=await t.loadAsync(s),a=s.name.replace(/\.zip$/i,""),i=new Map;n.forEach((e,t)=>{if(t.dir)return;let s=e.split("/").pop()||"",n=e.substring(0,e.lastIndexOf("/"));if(!n){if(s.endsWith(".md")&&"SKILL.md"!==s){let t=s.replace(/\.md$/i,"");i.has(t)||i.set(t,[]),i.get(t).push({file:s,path:e})}return}let a=n.split("/")[0];i.has(a)||i.set(a,[]),i.get(a).push({file:s,path:e})});let l=[];for(let[e,t]of i){let s=t.find(e=>"SKILL.md"===e.file);if(s||(s=t.find(e=>e.file.endsWith(".md"))),!s)continue;let a=await n.file(s.path).async("string");l.push({id:`zip-${e}-${Math.random().toString(36).slice(2,8)}`,name:e,group:"",content:a,selected:!0,sourceName:e})}Y(l),en(a),et(!0)}catch(e){console.error("Failed to extract ZIP:",e)}t.target.value=""}},ex=async()=>{let e=ea.trim();if(!e)return;er(!0);let t=await L(e);if(er(!1),t&&t.length>0){let s=e.split("/").pop()?.replace(/\.git$/i,"")||"";Y(t),en(s),et(!0),ec(!1)}ei("")};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("input",{ref:V,type:"file",accept:".md",multiple:!0,className:"hidden",onChange:ep}),(0,t.jsx)("input",{ref:Z,type:"file",className:"hidden",onChange:eh,webkitdirectory:"",directory:""}),(0,t.jsx)("input",{ref:Q,type:"file",accept:".zip",className:"hidden",onChange:eu}),(0,t.jsxs)("div",{className:"flex items-center gap-2 ml-auto shrink-0 pt-2",children:[(0,t.jsxs)(i.Button,{variant:"outline",size:"sm",onClick:M,disabled:T,children:[(0,t.jsx)(j.RefreshCw,{className:(0,S.cn)("size-3.5 mr-1",T&&"animate-spin")}),U("syncToAgents")]}),(0,t.jsxs)(h.DropdownMenu,{children:[(0,t.jsx)(h.DropdownMenuTrigger,{render:(0,t.jsxs)(i.Button,{variant:"outline",size:"sm",children:[(0,t.jsx)(g.Upload,{className:"size-3.5 mr-1"}),U("import")]})}),(0,t.jsxs)(h.DropdownMenuContent,{align:"end",children:[(0,t.jsxs)(h.DropdownMenuItem,{onClick:()=>V.current?.click(),children:[(0,t.jsx)(o.FileText,{className:"size-3.5 mr-1.5"}),U("importFromMd")]}),(0,t.jsxs)(h.DropdownMenuItem,{onClick:()=>Z.current?.click(),children:[(0,t.jsx)(k.FolderOpen,{className:"size-3.5 mr-1.5"}),U("importFromFolder")]}),(0,t.jsxs)(h.DropdownMenuItem,{onClick:()=>Q.current?.click(),children:[(0,t.jsx)(w,{className:"size-3.5 mr-1.5"}),U("importFromZip")]}),(0,t.jsxs)(h.DropdownMenuItem,{onClick:()=>ec(!0),disabled:el,children:[(0,t.jsx)(b.GitBranch,{className:"size-3.5 mr-1.5"}),U("importFromGit")]})]})]})]}),ee?(0,t.jsx)(I,{items:X,onItemsChange:Y,onConfirm:e=>{P(e),et(!1),Y([])},onCancel:()=>{et(!1),Y([])},defaultGroup:es}):(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 gap-4 pt-2",children:[(0,t.jsx)(l.ScrollArea,{className:"hidden md:block w-44 shrink-0",children:(0,t.jsxs)("div",{className:"flex flex-col gap-3 pr-2",children:[(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsxs)(i.Button,{variant:"all"!==G||W?"ghost":"secondary",size:"sm",className:"w-full justify-start",onClick:()=>{J("all"),K(""),q("")},children:[(0,t.jsx)(o.FileText,{className:"size-3.5 mr-1.5"}),U("filterAll")]}),(0,t.jsxs)(i.Button,{variant:"favorites"===G?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{J("favorites"),K(""),q("")},children:[(0,t.jsx)(x.Star,{className:"size-3.5 mr-1.5"}),U("filterFavorites")]})]}),c.length>0&&(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground px-2",children:U("filterByAgent")}),c.map(e=>(0,t.jsxs)(i.Button,{variant:"agent"===G&&H===e.id?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{J("agent"),K(e.id),q("")},children:[(0,t.jsx)(u.AgentIcon,{agentId:e.id,name:e.name,avatarUrl:e.avatarUrl,className:"size-4 mr-1.5 rounded-full"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]},e.id))]}),ed.length>0&&(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("p",{className:"text-xs font-medium text-muted-foreground px-2",children:U("filterGroups")}),ed.map(e=>(0,t.jsxs)(i.Button,{variant:W===e?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{q(W===e?"":e),J("all"),K("")},children:[(0,t.jsx)(d.Folder,{className:"size-3.5 mr-1.5"}),(0,t.jsx)("span",{className:"truncate",children:e})]},e)),r.some(e=>!e.group)&&(0,t.jsxs)(i.Button,{variant:"__none__"===W?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>{q("__none__"===W?"":"__none__"),J("all"),K("")},children:[(0,t.jsx)(o.FileText,{className:"size-3.5 mr-1.5"}),U("filterNoGroup")]})]})]})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col gap-3 min-h-0",children:[(0,t.jsxs)("div",{className:"flex md:hidden flex-col gap-2",children:[(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(p.Input,{value:_,onChange:e=>E(e.target.value),placeholder:U("search"),className:"pl-8"})]}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,t.jsxs)("div",{className:"flex rounded-lg border border-input p-0.5",children:[(0,t.jsx)("button",{type:"button",className:(0,S.cn)("px-2.5 py-1 rounded-md text-xs font-medium transition-colors","all"!==G||W?"text-muted-foreground hover:text-foreground":"bg-muted"),onClick:()=>{J("all"),K(""),q("")},children:U("filterAll")}),(0,t.jsxs)("button",{type:"button",className:(0,S.cn)("px-2.5 py-1 rounded-md text-xs font-medium transition-colors","favorites"===G?"bg-muted":"text-muted-foreground hover:text-foreground"),onClick:()=>{J("favorites"),K(""),q("")},children:[(0,t.jsx)(x.Star,{className:"size-3 inline-block mr-0.5 -mt-px"}),U("filterFavorites")]})]})})]}),(0,t.jsxs)("div",{className:"hidden md:block relative",children:[(0,t.jsx)(m.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(p.Input,{value:_,onChange:e=>E(e.target.value),placeholder:U("search"),className:"pl-8"})]}),(0,t.jsx)(l.ScrollArea,{className:"flex-1 min-h-0",children:z?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:R("loading")}):0===em.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:U("empty")}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-3 pr-2",children:em.map(e=>(0,t.jsxs)("div",{className:"rounded-xl border border-border bg-background p-4 hover:bg-accent/30 transition-colors cursor-pointer",onClick:()=>F(e),children:[(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)("span",{className:"font-medium text-sm",children:e.name}),e.group&&(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium",children:e.group}),(0,t.jsx)("button",{type:"button",className:"flex items-center justify-center size-5 rounded hover:bg-accent cursor-pointer",onClick:t=>{t.stopPropagation(),D(e)},children:e.favorited?(0,t.jsx)(x.Star,{className:"size-3.5 text-yellow-500 fill-yellow-500"}):(0,t.jsx)(f.StarOff,{className:"size-3.5 text-muted-foreground"})})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1 line-clamp-2",children:e.description||e.content.slice(0,120).replace(/^#\s+/,"")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1 shrink-0",onClick:e=>e.stopPropagation(),children:[(0,t.jsxs)(i.Button,{variant:"outline",size:"sm",onClick:()=>B(e),children:[(0,t.jsx)(y.Rocket,{className:"size-3.5 mr-1"}),U("apply")]}),(0,t.jsxs)(h.DropdownMenu,{children:[(0,t.jsx)(h.DropdownMenuTrigger,{render:(0,t.jsx)(i.Button,{variant:"ghost",size:"icon",className:"size-7"}),children:(0,t.jsx)(N.MoreVertical,{className:"size-3.5"})}),(0,t.jsxs)(h.DropdownMenuContent,{align:"end",children:[(0,t.jsxs)(h.DropdownMenuItem,{onClick:()=>fetch(`/api/skills/${encodeURIComponent(e.name)}/reveal`,{method:"POST"}),children:[(0,t.jsx)(k.FolderOpen,{className:"size-3.5 mr-1.5"}),U("revealFolder")]}),(0,t.jsxs)(h.DropdownMenuItem,{className:"text-destructive focus:text-destructive",onClick:()=>$(e),children:[(0,t.jsx)(v.Trash2,{className:"size-3.5 mr-1.5"}),U("delete")]})]})]})]})]}),e.boundAgents.length>0&&(0,t.jsxs)("div",{className:"flex items-center gap-1.5 mt-2.5 pt-2.5 border-t border-border/50",children:[e.boundAgents.map(e=>(0,t.jsx)(u.AgentIcon,{agentId:e.id,name:e.name,avatarUrl:e.avatarUrl,className:"size-5 rounded-full"},e.id)),(0,t.jsx)("span",{className:"text-xs text-muted-foreground ml-1",children:e.boundAgents.length})]})]},e.name))})}),(0,t.jsx)("div",{className:"hidden md:flex items-center justify-end gap-3 pt-2 border-t shrink-0",children:(0,t.jsxs)(i.Button,{variant:"outline",size:"sm",onClick:O,disabled:0===em.length,children:[(0,t.jsx)(y.Rocket,{className:"size-3.5 mr-1"}),U("applyAllToAgent")]})})]})]}),(0,t.jsx)(a.Dialog,{open:eo,onOpenChange:ec,children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-md",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:U("importFromGit")}),(0,t.jsx)(a.DialogDescription,{children:U("importFromGitDesc")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(p.Input,{value:ea,onChange:e=>ei(e.target.value),placeholder:"https://github.com/user/skills-repo.git",onKeyDown:e=>{"Enter"===e.key&&ex()},disabled:el,autoFocus:!0}),(0,t.jsx)(i.Button,{onClick:ex,disabled:el||!ea.trim(),children:el?(0,t.jsx)(C.Loader2,{className:"size-4 animate-spin"}):U("import")})]})]})})]})}var $=e.i(887836),F=e.i(984178),B=e.i(383171),P=e.i(415955),L=e.i(932031),M=e.i(111343),O=e.i(564822);e.i(462506);let U=(0,$.default)(()=>e.A(863812).then(e=>e.default),{loadableGenerated:{modules:[158480]},ssr:!1,loading:()=>(0,t.jsx)("div",{className:"flex items-center justify-center h-full text-muted-foreground text-sm",children:"Loading editor..."})});function R({node:e,depth:s,selectedPath:n,onSelect:a,expandedPaths:i,toggleExpand:l}){let r=i.has(e.path),o=n===e.path;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:(0,S.cn)("flex items-center gap-1 rounded px-2 py-1 cursor-pointer hover:bg-muted/50 text-sm",o&&"bg-muted"),style:{paddingLeft:`${12*s+8}px`},onClick:()=>{e.isDirectory?l(e.path):a(e)},children:[e.isDirectory&&(0,t.jsx)(L.ChevronRightIcon,{className:(0,S.cn)("size-3.5 shrink-0 text-muted-foreground transition-transform",r&&"rotate-90")}),!e.isDirectory&&(0,t.jsx)("span",{className:"size-3.5 shrink-0"}),e.isDirectory?r?(0,t.jsx)(P.FolderOpenIcon,{className:"size-4 text-blue-500 shrink-0"}):(0,t.jsx)(B.FolderIcon,{className:"size-4 text-blue-500 shrink-0"}):(0,t.jsx)(F.FileIcon,{className:"size-4 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"truncate",children:e.name})]}),e.isDirectory&&r&&e.children.map(e=>(0,t.jsx)(R,{node:e,depth:s+1,selectedPath:n,onSelect:a,expandedPaths:i,toggleExpand:l},e.path))]})}function _({skill:e,content:l,onContentChange:r,onClose:o,onSave:c}){let d=(0,n.useTranslations)("skills"),m=(0,n.useTranslations)("common"),p=(0,O.useIsMobile)(),[h,u]=(0,s.useState)([]),[x,f]=(0,s.useState)(null),[g,j]=(0,s.useState)({}),[y,v]=(0,s.useState)(new Set),[N,k]=(0,s.useState)(!1),[w,b]=(0,s.useState)(new Set),z=(0,s.useRef)(new Set);(0,s.useEffect)(()=>{if(!e)return;f(null),j({}),b(new Set),v(new Set),u([]),z.current=new Set,k(!0);let t=e.name;fetch(`/api/skills/${encodeURIComponent(t)}/files`).then(e=>e.ok?e.json():[]).then(e=>{u(e),v(new Set(e.filter(e=>e.isDirectory&&!e.path.includes("/")).map(e=>e.path)));let s=e.find(e=>"SKILL.md"===e.path&&!e.isDirectory)||e.find(e=>!e.isDirectory);if(!s)return void k(!1);f(s.path);let n=s.path.split("/").map(encodeURIComponent).join("/");fetch(`/api/skills/${encodeURIComponent(t)}/files/${n}`).then(e=>e.ok?e.json():null).then(e=>{e&&(j({[s.path]:e.content}),z.current.add(s.path))}).catch(()=>{}).finally(()=>k(!1))}).catch(()=>{u([]),k(!1)})},[e]);let T=(0,s.useCallback)((e,t)=>{if(z.current.has(t))return;z.current.add(t),k(!0);let s=t.split("/").map(encodeURIComponent).join("/");fetch(`/api/skills/${encodeURIComponent(e)}/files/${s}`).then(e=>e.ok?e.json():null).then(e=>{e&&j(s=>({...s,[t]:e.content}))}).catch(()=>{}).finally(()=>k(!1))},[]),D=(0,s.useMemo)(()=>(function(e){let t=[],s=new Map;for(let n of e){let e=n.path.split("/"),a=t;for(let t=0;t<e.length;t++){let i=e.slice(0,t+1).join("/"),l=t<e.length-1||n.isDirectory,r=a.find(s=>s.name===e[t]);if(r)a=r.children;else{let n={name:e[t],path:i,isDirectory:l,children:[]};a.push(n),l&&s.set(i,n),a=n.children}}}return t})(h),[h]),I=t=>{!t.isDirectory&&(f(t.path),e&&T(e.name,t.path))},A=e=>{v(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},$=x?g[x]??"":"",F=x?({md:"markdown",markdown:"markdown",json:"json",js:"javascript",ts:"typescript",tsx:"typescript",jsx:"javascript",py:"python",sh:"shell",bash:"shell",yaml:"yaml",yml:"yaml",xml:"xml",html:"html",css:"css",sql:"sql"})[x.split(".").pop()?.toLowerCase()||""]||"plaintext":"markdown",B=e=>{if(!x)return;let t=e||"";j(e=>({...e,[x]:t})),b(e=>new Set(e).add(x)),r(t)},P=async()=>{if(!e||!x)return;let t=g[x];if(void 0===t)return;let s=x.split("/").map(encodeURIComponent).join("/");(await fetch(`/api/skills/${encodeURIComponent(e.name)}/files/${s}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})})).ok&&(b(e=>{let t=new Set(e);return t.delete(x),t}),c())},L=(0,s.useMemo)(()=>h.filter(e=>!e.isDirectory),[h]);return(0,t.jsx)(a.Dialog,{open:!!e,onOpenChange:e=>{e||o()},children:(0,t.jsxs)(a.DialogContent,{className:"!w-[85vw] !max-w-[85vw] !h-[85vh] flex flex-col",children:[(0,t.jsx)(a.DialogHeader,{children:(0,t.jsxs)("div",{className:"flex items-center justify-between pr-8",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)(a.DialogTitle,{children:d("editTitle",{name:e?.name||""})}),(0,t.jsx)(a.DialogDescription,{children:d("editDescription")})]}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[w.size>0&&(0,t.jsxs)("span",{className:"text-xs text-muted-foreground",children:[w.size," unsaved"]}),(0,t.jsxs)(i.Button,{size:"sm",onClick:P,disabled:!x||!w.has(x??""),children:[(0,t.jsx)(M.Save,{className:"size-3.5 mr-1"}),m("save")]})]})]})}),p?(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col pt-2",children:[(0,t.jsx)("div",{className:"flex overflow-x-auto border-b gap-0.5 px-1 shrink-0",children:L.map(e=>(0,t.jsx)("button",{className:(0,S.cn)("shrink-0 px-3 py-1.5 text-xs rounded-t transition-colors whitespace-nowrap",x===e.path?"bg-muted font-medium":"text-muted-foreground hover:text-foreground",w.has(e.path)&&'after:content-[""] after:inline-block after:size-1.5 after:bg-orange-500 after:rounded-full after:ml-1'),onClick:()=>I({name:e.name,path:e.path,isDirectory:!1,children:[]}),children:e.name},e.path))}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:N?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)(C.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}):(0,t.jsx)(U,{height:"100%",language:F,value:$,onChange:B,theme:"vs-dark",options:{fontSize:13,minimap:{enabled:!1},scrollBeyondLastLine:!1,padding:{top:8},renderLineHighlight:"gutter",wordWrap:"on"}})})]}):(0,t.jsxs)("div",{className:"flex-1 min-h-0 flex gap-0 pt-2 border rounded-md overflow-hidden",children:[(0,t.jsxs)("div",{className:"w-48 shrink-0 border-r bg-muted/20 overflow-y-auto py-1",children:[D.map(e=>(0,t.jsx)(R,{node:e,depth:0,selectedPath:x??"",onSelect:I,expandedPaths:y,toggleExpand:A},e.path)),0===h.length&&(0,t.jsx)("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No files"})]}),(0,t.jsx)("div",{className:"flex-1 min-h-0",children:N?(0,t.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,t.jsx)(C.Loader2,{className:"size-5 animate-spin text-muted-foreground"})}):(0,t.jsx)(U,{height:"100%",language:F,value:$,onChange:B,theme:"vs-dark",options:{fontSize:13,minimap:{enabled:!1},scrollBeyondLastLine:!1,padding:{top:8},renderLineHighlight:"gutter",wordWrap:"on"}})})]})]})})}var E=e.i(239340);function G({skill:e,titleOverride:s,descriptionOverride:a,agents:i,selected:l,onToggle:r,onClose:o,onConfirm:c}){let d=(0,n.useTranslations)("skills"),m=(0,n.useTranslations)("common");return(0,t.jsx)(E.AgentPickerDialog,{open:!!e,onClose:o,onConfirm:c,title:s||d("bindTitle",{name:e?.name||""}),description:a||d("bindDescription"),agents:i,selected:l,onToggle:r,cancelText:m("cancel"),confirmText:m("confirm")})}function J({open:e,onOpenChange:s,items:r,selected:o,onToggle:c,onConfirm:d}){let m=(0,n.useTranslations)("skills"),p=(0,n.useTranslations)("common");return(0,t.jsx)(a.Dialog,{open:e,onOpenChange:s,children:(0,t.jsxs)(a.DialogContent,{className:"sm:max-w-lg",children:[(0,t.jsxs)(a.DialogHeader,{children:[(0,t.jsx)(a.DialogTitle,{children:m("syncTitle")}),(0,t.jsx)(a.DialogDescription,{children:m("syncDescription")})]}),(0,t.jsxs)("div",{className:"space-y-3 pt-2",children:[0===r.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-8 text-muted-foreground text-sm",children:m("syncEmpty")}):(0,t.jsx)(l.ScrollArea,{className:"max-h-72",children:(0,t.jsx)("div",{className:"space-y-1",children:r.map(e=>{let s=`${e.agentId}::${e.skillName}`;return(0,t.jsxs)("button",{type:"button",onClick:()=>c(e.agentId,e.skillName),className:"flex items-center gap-3 w-full px-2 py-1.5 rounded-md hover:bg-muted text-left text-sm transition-colors",children:[(0,t.jsx)("div",{className:(0,S.cn)("flex items-center justify-center size-4 rounded border shrink-0",o.has(s)?"bg-primary border-primary text-primary-foreground":"border-input")}),(0,t.jsx)(u.AgentIcon,{agentId:e.agentId,name:e.agentName,className:"size-5 rounded-full"}),(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate",children:e.agentName}),(0,t.jsxs)("span",{className:"text-muted-foreground text-xs shrink-0",children:[e.skillName,".md"]})]},s)})})}),r.length>0&&(0,t.jsxs)("div",{className:"flex justify-end gap-2 pt-1",children:[(0,t.jsx)(i.Button,{variant:"outline",onClick:()=>s(!1),children:p("cancel")}),(0,t.jsx)(i.Button,{onClick:d,disabled:0===o.size,children:m("syncConfirm")})]})]})]})})}e.s(["SkillsDialog",0,function({open:e,onOpenChange:h,standalone:u}){let x=(0,n.useTranslations)("skills"),f=(0,n.useTranslations)("common"),[g,j]=(0,s.useState)("local"),{skills:y,setSkills:v,agents:N,loading:k,fetchSkills:w,storeSkills:b,storeLoading:C,importingPaths:S,importFromStore:z}=function(e,t){let[n,a]=(0,s.useState)([]),[i,l]=(0,s.useState)([]),[r,o]=(0,s.useState)(!1),[c,d]=(0,s.useState)([]),[m,p]=(0,s.useState)(!1),[h,u]=(0,s.useState)(new Set),x=(0,s.useCallback)(async()=>{o(!0);try{let e=await fetch("/api/skills");e.ok&&a(await e.json())}catch{}o(!1)},[]),f=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/agents/presets");if(e.ok){let t=await e.json();l(t.map(e=>({id:e.id,name:e.name,avatarUrl:e.avatarUrl,description:e.description})))}}catch{}},[]),g=(0,s.useCallback)(async()=>{p(!0);try{let e=await fetch("/public/skills/index.json");e.ok&&d(await e.json())}catch{}p(!1)},[]);(0,s.useEffect)(()=>{(e||t)&&(x(),f(),g())},[e,t,x,f,g]);let j=new Set(n.map(e=>e.name)),y=async e=>{if(j.has(e.id)||h.has(e.path))return!1;u(t=>new Set(t).add(e.path));try{if((await fetch("/api/skills/import-store",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,group:e.group})})).ok)return await x(),!0}catch{}return u(t=>{let s=new Set(t);return s.delete(e.path),s}),!1};return{skills:n,setSkills:a,agents:i,loading:r,fetchSkills:x,storeSkills:c,storeLoading:m,importingPaths:h,importFromStore:y}}(e,u),T={toggleFavorite:async e=>{try{let t=await fetch(`/api/skills/${encodeURIComponent(e.name)}/favorite`,{method:"POST"});if(t.ok){let{favorited:s}=await t.json();v(t=>t.map(t=>t.name===e.name?{...t,favorited:s}:t))}}catch{}},deleteSkill:async e=>{try{(await fetch(`/api/skills/${encodeURIComponent(e.name)}`,{method:"DELETE"})).ok&&v(t=>t.filter(t=>t.name!==e.name))}catch{}},saveEdit:async(e,t)=>{try{if((await fetch(`/api/skills/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:t})})).ok)return v(s=>s.map(s=>s.name===e?{...s,content:t}:s)),!0}catch{}return!1},importBatch:async e=>{let t=e.map(e=>({name:e.name,content:e.content,group:e.group}));try{(await fetch("/api/skills/import-batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:t})})).ok&&w()}catch{}},importFromGit:async e=>{try{let t=await fetch("/api/skills/import-git",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:e})});if(!t.ok)return null;return(await t.json()).map(e=>({id:`git-${e.name}-${Math.random().toString(36).slice(2,8)}`,name:e.name,group:"",content:e.content,selected:!0,sourceName:e.name}))}catch{}return null},bindConfirm:async(e,t,s)=>{for(let n of s){let s=e.boundAgents.some(e=>e.id===n.id),a=t.includes(n.id);if(s&&!a){let t=await fetch(`/api/agents/presets/${n.id}`);if(!t.ok)continue;let s=await t.json(),a=(s.skills||[]).filter(t=>t.replace(/\.md$/i,"")!==e.name);await fetch(`/api/agents/presets/${n.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,skills:a})})}else if(!s&&a){let t=await fetch(`/api/agents/presets/${n.id}`);if(!t.ok)continue;let s=await t.json();if(!(s.skills||[]).map(e=>e.replace(/\.md$/i,"")).includes(e.name)){let t=[...s.skills||[],e.name];await fetch(`/api/agents/presets/${n.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,skills:t})})}}}w()},applyAllToAgent:async(e,t)=>{try{let s=await fetch(`/api/agents/presets/${e}`);if(!s.ok)return;let n=await s.json(),a=new Set((n.skills||[]).map(e=>e.replace(/\.md$/i,""))),i=[...n.skills||[]];for(let e of t)a.has(e)||i.push(e);await fetch(`/api/agents/presets/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({...n,skills:i})}),w()}catch{}},syncCheck:async()=>{let e=await fetch("/api/skills/sync-check");return e.ok?e.json():[]},syncConfirm:async e=>{let t=await fetch("/api/skills/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:e.map(e=>({agentId:e.agentId,skillName:e.skillName}))})});return t.ok&&w(),t.ok}},[D,I]=(0,s.useState)(null),[$,F]=(0,s.useState)(""),[B,P]=(0,s.useState)(null),[L,M]=(0,s.useState)([]),[O,U]=(0,s.useState)([]),[R,E]=(0,s.useState)(new Set),[H,K]=(0,s.useState)(!1),[W,q]=(0,s.useState)(!1),[V,Z]=(0,s.useState)(""),[Q,X]=(0,s.useState)(""),Y="__bind_all__",ee=B?.name===Y,et=async()=>{!D||await T.saveEdit(D.name,$)&&I(null)},es=async()=>{if(B){if(ee){let e=y.map(e=>e.name);for(let t of L)await T.applyAllToAgent(t,e)}else await T.bindConfirm(B,L,N);P(null)}},en=async()=>{q(!0);let e=await T.syncCheck();e.length>0&&(U(e),E(new Set(e.map(e=>`${e.agentId}::${e.skillName}`))),K(!0)),q(!1)},ea=async()=>{let e=O.filter(e=>R.has(`${e.agentId}::${e.skillName}`));0===e.length||await T.syncConfirm(e)&&K(!1)},ei=(u||e)&&!B&&!D,el=Array.from(new Set(b.map(e=>e.group).filter(Boolean))),er=new Set(y.map(e=>e.name)),eo=b.filter(e=>{if(V&&e.group!==V)return!1;if(Q){let t=Q.toLowerCase();if(!e.name.toLowerCase().includes(t)&&!e.id.toLowerCase().includes(t)&&!e.group.toLowerCase().includes(t))return!1}return!0}),ec=async e=>{await z(e)},ed=(0,t.jsx)("div",{className:"flex items-center gap-1 border-b border-border px-1",children:[["local",o.FileText,x("tabLocal")],["store",r.Store,x("tabStore")]].map(([e,s,n])=>(0,t.jsxs)("button",{onClick:()=>j(e),className:`flex items-center gap-1.5 px-3 py-2 text-sm font-medium border-b-2 transition-colors ${g===e?"border-primary text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,t.jsx)(s,{className:"size-3.5"}),n]},e))}),em=(0,t.jsxs)("div",{className:"flex flex-1 min-h-0 gap-4 pt-2",children:[el.length>0&&(0,t.jsx)(l.ScrollArea,{className:"hidden md:block w-44 shrink-0",children:(0,t.jsxs)("div",{className:"flex flex-col gap-1 pr-2",children:[(0,t.jsxs)(i.Button,{variant:V?"ghost":"secondary",size:"sm",className:"w-full justify-start",onClick:()=>Z(""),children:[(0,t.jsx)(o.FileText,{className:"size-3.5 mr-1.5"}),x("filterAll")]}),el.map(e=>(0,t.jsxs)(i.Button,{variant:V===e?"secondary":"ghost",size:"sm",className:"w-full justify-start",onClick:()=>Z(V===e?"":e),children:[(0,t.jsx)(d.Folder,{className:"size-3.5 mr-1.5"}),(0,t.jsx)("span",{className:"truncate",children:e})]},e))]})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col min-h-0",children:[(0,t.jsxs)("div",{className:"relative mb-3",children:[(0,t.jsx)(m.Search,{className:"size-3.5 absolute left-2.5 top-1/2 -translate-y-1/2 text-muted-foreground"}),(0,t.jsx)(p.Input,{value:Q,onChange:e=>X(e.target.value),placeholder:x("search"),className:"pl-8"})]}),(0,t.jsx)(l.ScrollArea,{className:"flex-1",children:C?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:f("loading")}):0===eo.length?(0,t.jsx)("div",{className:"flex items-center justify-center py-12 text-muted-foreground text-sm",children:x("storeEmpty")}):(0,t.jsx)("div",{className:"grid grid-cols-1 gap-3 pr-2",children:eo.map(e=>{let s=er.has(e.id),n=S.has(e.path);return(0,t.jsx)("div",{className:"rounded-xl border border-border bg-background p-4 hover:bg-accent/30 transition-colors",children:(0,t.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,t.jsx)(r.Store,{className:"size-3.5 text-muted-foreground shrink-0"}),(0,t.jsx)("span",{className:"font-medium text-sm",children:e.name}),(0,t.jsx)("span",{className:"text-[10px] px-1.5 py-0.5 rounded-full bg-primary/10 text-primary font-medium",children:e.group})]}),(0,t.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:e.id})]}),(0,t.jsx)(i.Button,{variant:s?"ghost":"outline",size:"sm",className:"shrink-0",disabled:s||n,onClick:()=>ec(e),children:s?x("imported"):n?x("importing"):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(c.Download,{className:"size-3.5 mr-1"}),x("importTo")]})})]})},e.path)})})})]})]}),ep=(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.DialogHeader,{children:(0,t.jsxs)("div",{className:"hidden md:block",children:[u?(0,t.jsx)("h2",{className:"text-base font-semibold",children:x("title")}):(0,t.jsx)(a.DialogTitle,{children:x("title")}),u?(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:x("description")}):(0,t.jsx)(a.DialogDescription,{children:x("description")})]})}),ed,(0,t.jsx)("div",{className:"flex flex-1 min-h-0 flex-col",children:"local"===g?(0,t.jsx)(A,{skills:y,agents:N,loading:k,syncLoading:W,onToggleFavorite:T.toggleFavorite,onDelete:T.deleteSkill,onEdit:e=>{I(e),F(e.content)},onBind:e=>{P(e),M(e.boundAgents.map(e=>e.id))},onImportBatch:T.importBatch,onImportFromGit:T.importFromGit,onSyncCheck:en,onBindAll:()=>{P({name:Y,description:"",filename:"",content:"",favorited:!1,group:"",boundAgents:[]}),M([])}}):em})]});return(0,t.jsxs)(t.Fragment,{children:[u&&ei&&(0,t.jsx)("div",{className:"h-full flex flex-col",children:ep}),!u&&(0,t.jsx)(a.Dialog,{open:ei,onOpenChange:h,children:(0,t.jsx)(a.DialogContent,{className:"!w-[80vw] !max-w-[80vw] !h-[80vh] flex flex-col overflow-hidden",children:ep})}),(0,t.jsx)(_,{skill:D,content:$,onContentChange:F,onClose:()=>I(null),onSave:et}),(0,t.jsx)(G,{skill:B,titleOverride:ee?x("applyAllToAgent"):void 0,descriptionOverride:ee?x("applyAllToAgentDescription"):void 0,agents:N,selected:L,onToggle:e=>M(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),onClose:()=>P(null),onConfirm:es}),(0,t.jsx)(J,{open:H,onOpenChange:K,items:O,selected:R,onToggle:(e,t)=>{let s=`${e}::${t}`;E(e=>{let t=new Set(e);return t.has(s)?t.delete(s):t.add(s),t})},onConfirm:ea})]})}],625873)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,983725,e=>{e.q("/_next/static/media/onig.0dk~55st~1x8..wasm")},635473,e=>{"use strict";e.i(487106);var t,i,r,o=e.i(112231),n=e.i(526097),a=e.i(281482),s=e.i(325438),l=e.i(454514),d=e.i(144881),c=e.i(619122),g=e.i(611130),h=e.i(702320);e.i(71224);var u=e.i(354244),m=e.i(693162),p=e.i(535567),_=e.i(561295),f=e.i(772649),k=e.i(58762),T=e.i(20088),y=e.i(650289),S=e.i(731931),v=e.i(304484),b=e.i(488259),w=e.i(853457),C=e.i(975445),z=e.i(34487),L=e.i(927842),I=e.i(536766),M=e.i(772383),x=e.i(781808),E=g,P=e.i(85280);class D extends E.Disposable{get onDidEncounterLanguage(){return this._onDidEncounterLanguage.event}constructor(e,t,i,r,o,n,a){super(),this._grammar=e,this._initialState=t,this._containsEmbeddedLanguages=i,this._createBackgroundTokenizer=r,this._backgroundTokenizerShouldOnlyVerifyTokens=o,this._reportTokenizationTime=n,this._reportSlowTokenization=a,this._seenLanguages=[],this._onDidEncounterLanguage=this._register(new x.Emitter)}get backgroundTokenizerShouldOnlyVerifyTokens(){return this._backgroundTokenizerShouldOnlyVerifyTokens()}getInitialState(){return this._initialState}tokenize(e,t,i){throw Error("Not supported!")}createBackgroundTokenizer(e,t){if(this._createBackgroundTokenizer)return this._createBackgroundTokenizer(e,t)}tokenizeEncoded(e,t,i){let r,o=1e4*Math.random()<1,n=this._reportSlowTokenization||o,a=n?new P.StopWatch(!0):void 0,s=this._grammar.tokenizeLine2(e,i,500);if(n){let t=a.elapsed();(o||t>32)&&this._reportTokenizationTime(t,e.length,o)}if(s.stoppedEarly)return console.warn(`Time limit reached when tokenizing line: ${e.substring(0,100)}`),new f.EncodedTokenizationResult(s.tokens,s.fonts,i);if(this._containsEmbeddedLanguages){let e=this._seenLanguages,t=s.tokens;for(let i=0,r=t.length>>>1;i<r;i++){let r=t[(i<<1)+1],o=_.TokenMetadata.getLanguageId(r);e[o]||(e[o]=!0,this._onDidEncounterLanguage.fire(o))}}return r=i.equals(s.ruleStack)?i:s.ruleStack,new f.EncodedTokenizationResult(s.tokens,s.fonts,r)}}var N=e.i(305638),A=g,O=e.i(465376);class R extends A.Disposable{get backgroundTokenizerShouldOnlyVerifyTokens(){return this._actual.backgroundTokenizerShouldOnlyVerifyTokens}constructor(e,t,i,r){super(),this._encodedLanguageId=e,this._actual=t,this._maxTokenizationLineLength=r,this._register((0,O.keepObserved)(this._maxTokenizationLineLength)),this._register(i)}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){throw Error("Not supported!")}tokenizeEncoded(e,t,i){return e.length>=this._maxTokenizationLineLength.get()?(0,N.nullTokenizeEncoded)(this._encodedLanguageId,i):this._actual.tokenizeEncoded(e,t,i)}createBackgroundTokenizer(e,t){return this._actual.createBackgroundTokenizer?this._actual.createBackgroundTokenizer(e,t):void 0}}var F=e.i(802136);class j{static{this.CHANNEL_NAME="textMateWorkerHost"}static getChannel(e){return e.getChannel(j.CHANNEL_NAME)}static setChannel(e,t){e.setChannel(j.CHANNEL_NAME,t)}}var W=g,B=e.i(194558),$=e.i(166969),G=e.i(589325),V=e.i(425728),H=e.i(893249),q=e.i(531452);class U{static fromMany(e){return new J(e.map(e=>new U(e)))}constructor(e){this.transformation=e,this.idx=0,this.offset=0}transform(e){let t=this.transformation.replacements.at(this.idx);for(;t&&t.replaceRange.endExclusive<=e;)this.offset+=t.getLengthDelta(),this.idx++,t=this.transformation.replacements.at(this.idx);if(!t||!(t.replaceRange.start<=e))return e+this.offset}}class J{constructor(e){this.transformers=e}transform(e){for(let t of this.transformers){let i=t.transform(e);if(void 0===i)return;e=i}return e}}var K=e.i(619456),Q=e.i(443665),X=e.i(103346),Y=e.i(705679),Z=e.i(896344);class ee extends W.Disposable{static{this._id=0}constructor(e,t,i,r,o,n){super(),this._model=e,this._worker=t,this._languageIdCodec=i,this._backgroundTokenizationStore=r,this._configurationService=o,this._maxTokenizationLineLength=n,this.controllerId=ee._id++,this._pendingChanges=[],this._states=new G.TokenizationStateStore,this._loggingEnabled=(0,q.observableConfigValue)("editor.experimental.asyncTokenizationLogging",!1,this._configurationService),this._register((0,O.keepObserved)(this._loggingEnabled)),this._register(this._model.onDidChangeContent(e=>{this._shouldLog&&console.log("model change",{fileName:this._model.uri.fsPath.split("\\").pop(),changes:et(e.changes)}),this._worker.$acceptModelChanged(this.controllerId,e),this._pendingChanges.push(e)})),this._register(this._model.onDidChangeLanguage(e=>{let t=this._model.getLanguageId(),i=this._languageIdCodec.encodeLanguageId(t);this._worker.$acceptModelLanguageChanged(this.controllerId,t,i)}));const a=this._model.getLanguageId(),s=this._languageIdCodec.encodeLanguageId(a);this._worker.$acceptNewModel({uri:this._model.uri,versionId:this._model.getVersionId(),lines:this._model.getLinesContent(),EOL:this._model.getEOL(),languageId:a,encodedLanguageId:s,maxTokenizationLineLength:this._maxTokenizationLineLength.get(),controllerId:this.controllerId}),this._register((0,Z.autorun)(e=>{let t=this._maxTokenizationLineLength.read(e);this._worker.$acceptMaxTokenizationLineLength(this.controllerId,t)}))}dispose(){super.dispose(),this._worker.$acceptRemovedModel(this.controllerId)}requestTokens(e,t){this._worker.$retokenize(this.controllerId,e,t)}async setTokensAndStates(t,i,r,o,n){if(this.controllerId!==t)return;let a=H.ContiguousMultilineTokensBuilder.deserialize(new Uint8Array(r)),s=Y.AnnotationsUpdate.deserialize(o,(0,V.deserializeFontTokenOptions)());for(this._shouldLog&&console.log("received background tokenization result",{fileName:this._model.uri.fsPath.split("\\").pop(),updatedTokenLines:a.map(e=>e.getLineRange()).join(" & "),updatedStateLines:n.map(e=>new B.LineRange(e.startLineNumber,e.startLineNumber+e.stateDeltas.length).toString()).join(" & ")}),this._shouldLog&&console.log("Applying changes to local states",this._pendingChanges.filter(e=>e.versionId<=i).map(e=>e.changes).map(e=>et(e)).join(" then "));this._pendingChanges.length>0&&this._pendingChanges[0].versionId<=i;){let e=this._pendingChanges.shift();this._states.acceptChanges(e.changes)}if(this._pendingChanges.length>0){this._shouldLog&&console.log("Considering non-processed changes",this._pendingChanges.map(e=>e.changes).map(e=>et(e)).join(" then "));let e=U.fromMany(this._pendingChanges.map(e=>(0,K.linesLengthEditFromModelContentChange)(e.changes))),t=new H.ContiguousMultilineTokensBuilder;for(let i of a)for(let r=i.startLineNumber;r<=i.endLineNumber;r++)void 0!==e.transform(r-1)&&t.add(r,i.getLineTokens(r));for(let e of(a=t.finalize(),this._pendingChanges))for(let t of e.changes)for(let e=0;e<a.length;e++)a[e].applyEdit(t.range,t.text);s.rebase(this._stringEditFromChanges(this._model,this._pendingChanges))}let l=U.fromMany(this._pendingChanges.map(e=>(0,K.linesLengthEditFromModelContentChange)(e.changes)));if(!this._applyStateStackDiffFn||!this._initialState){let{applyStateStackDiff:t,INITIAL:i}=await e.A(895001).then(function(e){return e.main});this._applyStateStackDiffFn=t,this._initialState=i}for(let e of n){let t=e.startLineNumber<=1?this._initialState:this._states.getEndState(e.startLineNumber-1);for(let i=0;i<e.stateDeltas.length;i++){let r,o=e.stateDeltas[i];o?(r=this._applyStateStackDiffFn(t,o),this._states.setEndState(e.startLineNumber+i,r)):r=this._states.getEndState(e.startLineNumber+i);let n=l.transform(e.startLineNumber+i-1);void 0!==n&&this._backgroundTokenizationStore.setEndState(n+1,r),e.startLineNumber+i>=this._model.getLineCount()-1&&this._backgroundTokenizationStore.backgroundTokenizationFinished(),t=r}}this._backgroundTokenizationStore.setTokens(a),this._backgroundTokenizationStore.setFontInfo(s)}_stringEditFromChanges(e,t){let i=[];for(let r of t)for(let t of r.changes){let r=$.Range.lift(t.range),o=t.text,n=e.getOffsetAt(r.getStartPosition()),a=e.getOffsetAt(r.getEndPosition());i.push(Q.StringEdit.replace(new X.OffsetRange(n,a),o))}return Q.StringEdit.compose(i)}get _shouldLog(){return this._loggingEnabled.get()}}function et(e){return e.map(e=>$.Range.lift(e.range).toString()+" => "+e.text).join(" & ")}var ei=e.i(454683),er=e.i(557941);let eo=class{static{t=this}static{this._reportedMismatchingTokens=!1}constructor(e,t,i,r,o,n,a,s){this._reportTokenizationTime=e,this._shouldTokenizeAsync=t,this._extensionResourceLoaderService=i,this._configurationService=r,this._languageService=o,this._notificationService=n,this._telemetryService=a,this._webWorkerService=s,this._workerProxyPromise=null,this._worker=null,this._workerProxy=null,this._workerTokenizerControllers=new Map,this._currentTheme=null,this._currentTokenColorMap=null,this._grammarDefinitions=[]}dispose(){this._disposeWorker()}createBackgroundTokenizer(e,i,r){if(!this._shouldTokenizeAsync()||e.isTooLargeForSyncing())return;let o=new g.DisposableStore,n=this._getWorkerProxy().then(t=>{if(o.isDisposed||!t)return;let n={controller:void 0,worker:this._worker};return o.add(function(e,t){let i=new g.DisposableStore,r=i.add(new g.DisposableStore);function o(){e.isAttachedToEditor()?r.add(t()):r.clear()}return o(),i.add(e.onDidChangeAttached(()=>{o()})),i}(e,()=>{let o=new ee(e,t,this._languageService.languageIdCodec,i,this._configurationService,r);return n.controller=o,this._workerTokenizerControllers.set(o.controllerId,o),(0,g.toDisposable)(()=>{n.controller=void 0,this._workerTokenizerControllers.delete(o.controllerId),o.dispose()})})),n});return{dispose(){o.dispose()},requestTokens:async(e,t)=>{let i=await n;i?.controller&&i.worker===this._worker&&i.controller.requestTokens(e,t)},reportMismatchingTokens:e=>{t._reportedMismatchingTokens||(t._reportedMismatchingTokens=!0,this._notificationService.error({message:"Async Tokenization Token Mismatch in line "+e,name:"Async Tokenization Token Mismatch"}),this._telemetryService.publicLog2("asyncTokenizationMismatchingTokens",{}))}}}setGrammarDefinitions(e){this._grammarDefinitions=e,this._disposeWorker()}acceptTheme(e,t){this._currentTheme=e,this._currentTokenColorMap=t,this._currentTheme&&this._currentTokenColorMap&&this._workerProxy&&this._workerProxy.$acceptTheme(this._currentTheme,this._currentTokenColorMap)}_getWorkerProxy(){return this._workerProxyPromise||(this._workerProxyPromise=this._createWorkerProxy()),this._workerProxyPromise}async _createWorkerProxy(){let t={grammarDefinitions:this._grammarDefinitions,onigurumaWASMUri:new e.U(e.r(983725)).href},i=this._worker=this._webWorkerService.createWorkerClient(new ei.WebWorkerDescriptor({esmModuleLocation:h.FileAccess.asBrowserUri("vs/workbench/services/textMate/browser/backgroundTokenization/worker/textMateTokenizationWorker.workerMain.js"),label:"TextMateWorker"}));return(j.setChannel(i,{$readFile:async e=>{let t=F.URI.revive(e);return this._extensionResourceLoaderService.readExtensionResource(t)},$setTokensAndStates:async(e,t,i,r,o)=>{let n=this._workerTokenizerControllers.get(e);n&&n.setTokensAndStates(e,t,i,r,o)},$reportTokenizationTime:(e,t,i,r,o)=>{this._reportTokenizationTime(e,t,i,r,o)}}),await i.proxy.$init(t),this._worker!==i)?null:(this._workerProxy=i.proxy,this._currentTheme&&this._currentTokenColorMap&&this._workerProxy.$acceptTheme(this._currentTheme,this._currentTokenColorMap),i.proxy)}_disposeWorker(){for(let e of this._workerTokenizerControllers.values())e.dispose();this._workerTokenizerControllers.clear(),this._worker&&(this._worker.dispose(),this._worker=null),this._workerProxy=null,this._workerProxyPromise=null}};eo=t=(0,a.__decorate)([(0,a.__param)(2,v.IExtensionResourceLoaderService),(0,a.__param)(3,S.IConfigurationService),(0,a.__param)(4,k.ILanguageService),(0,a.__param)(5,C.INotificationService),(0,a.__param)(6,I.ITelemetryService),(0,a.__param)(7,er.IWebWorkerService)],eo);var en=g;class ea{constructor(){this._scopeNameToLanguageRegistration=Object.create(null)}reset(){this._scopeNameToLanguageRegistration=Object.create(null)}register(e){this._scopeNameToLanguageRegistration[e.scopeName]=e}getGrammarDefinition(e){return this._scopeNameToLanguageRegistration[e]||null}}let es="No TM Grammar registered for this language.";class el extends en.Disposable{constructor(e,t,i,r){for(const o of(super(),this._host=e,this._initialState=i.INITIAL,this._scopeRegistry=new ea,this._injections={},this._injectedEmbeddedLanguages={},this._languageToScope=new Map,this._grammarRegistry=this._register(new i.Registry({onigLib:r,loadGrammar:async e=>{let t=this._scopeRegistry.getGrammarDefinition(e);if(!t)return this._host.logTrace(`No grammar found for scope ${e}`),null;let r=t.location;try{let e=await this._host.readFile(r);return i.parseRawGrammar(e,r.path)}catch(t){return this._host.logError(`Unable to load and parse grammar for scope ${e} from ${r}`,t),null}},getInjections:e=>{let t=e.split("."),i=[];for(let e=1;e<=t.length;e++){let r=t.slice(0,e).join(".");i=[...i,...this._injections[r]||[]]}return i}})),t)){if(this._scopeRegistry.register(o),o.injectTo){for(const e of o.injectTo){let t=this._injections[e];t||(this._injections[e]=t=[]),t.push(o.scopeName)}if(o.embeddedLanguages)for(const e of o.injectTo){let t=this._injectedEmbeddedLanguages[e];t||(this._injectedEmbeddedLanguages[e]=t=[]),t.push(o.embeddedLanguages)}}o.language&&this._languageToScope.set(o.language,o.scopeName)}}has(e){return this._languageToScope.has(e)}setTheme(e,t){this._grammarRegistry.setTheme(e,t)}getColorMap(){return this._grammarRegistry.getColorMap()}async createGrammar(e,t){let i,r=this._languageToScope.get(e);if("string"!=typeof r)throw Error(es);let o=this._scopeRegistry.getGrammarDefinition(r);if(!o)throw Error(es);let n=o.embeddedLanguages;if(this._injectedEmbeddedLanguages[r])for(let e of this._injectedEmbeddedLanguages[r])for(let t of Object.keys(e))n[t]=e[t];let a=Object.keys(n).length>0;try{i=await this._grammarRegistry.loadGrammarWithConfiguration(r,t,{embeddedLanguages:n,tokenTypes:o.tokenTypes,balancedBracketSelectors:o.balancedBracketSelectors,unbalancedBracketSelectors:o.unbalancedBracketSelectors})}catch(e){if(e.message&&e.message.startsWith("No grammar provided for"))throw Error(es);throw e}return{languageId:e,grammar:i,initialState:this._initialState,containsEmbeddedLanguages:a,sourceExtensionId:o.sourceExtensionId}}}var ed=e.i(425024),ec=e.i(695519);let eg=ed.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"grammars",deps:[ec.languagesExtPoint],jsonSchema:{description:(0,y.localize)(14288,"Contributes textmate tokenizers."),type:"array",defaultSnippets:[{body:[{language:"${1:id}",scopeName:"source.${2:id}",path:"./syntaxes/${3:id}.tmLanguage."}]}],items:{type:"object",defaultSnippets:[{body:{language:"${1:id}",scopeName:"source.${2:id}",path:"./syntaxes/${3:id}.tmLanguage."}}],properties:{language:{description:(0,y.localize)(14289,"Language identifier for which this syntax is contributed to."),type:"string"},scopeName:{description:(0,y.localize)(14290,"Textmate scope name used by the tmLanguage file."),type:"string"},path:{description:(0,y.localize)(14291,"Path of the tmLanguage file. The path is relative to the extension folder and typically starts with './syntaxes/'."),type:"string"},embeddedLanguages:{description:(0,y.localize)(14292,"A map of scope name to language id if this grammar contains embedded languages."),type:"object"},tokenTypes:{description:(0,y.localize)(14293,"A map of scope name to token types."),type:"object",additionalProperties:{enum:["string","comment","other"]}},injectTo:{description:(0,y.localize)(14294,"List of language scope names to which this grammar is injected to."),type:"array",items:{type:"string"}},balancedBracketScopes:{description:(0,y.localize)(14295,"Defines which scope names contain balanced brackets."),type:"array",items:{type:"string"},default:["*"]},unbalancedBracketScopes:{description:(0,y.localize)(14296,"Defines which scope names do not contain balanced brackets."),type:"array",items:{type:"string"},default:[]}},required:["scopeName","path"]}}});var eh=e.i(905192),eu=e.i(229081);let em=class extends g.Disposable{static{i=this}static{this.reportTokenizationTimeCounter={sync:0,async:0}}constructor(e,t,i,r,o,n,a,l,d,c){super(),this._languageService=e,this._themeService=t,this._extensionResourceLoaderService=i,this._notificationService=r,this._logService=o,this._configurationService=n,this._progressService=a,this._environmentService=l,this._instantiationService=d,this._telemetryService=c,this._createdModes=[],this._encounteredLanguages=[],this._debugMode=!1,this._debugModePrintFunc=()=>{},this._grammarDefinitions=null,this._grammarFactory=null,this._tokenizersRegistrations=this._register(new g.DisposableStore),this._currentTheme=null,this._currentTokenColorMap=null,this._currentTokenFontMap=null,this._threadedBackgroundTokenizerFactory=this._instantiationService.createInstance(eo,(e,t,i,r,o)=>this._reportTokenizationTime(e,t,i,r,!0,o),()=>this.getAsyncTokenizationEnabled()),this._vscodeOniguruma=null,this._styleElement=(0,s.createStyleSheet)(),this._styleElement.className="vscode-tokens-styles",eg.setHandler(e=>this._handleGrammarsExtPoint(e)),this._updateTheme(this._themeService.getColorTheme(),!0),this._register(this._themeService.onDidColorThemeChange(()=>{this._updateTheme(this._themeService.getColorTheme(),!1)})),this._register(this._languageService.onDidRequestRichLanguageFeatures(e=>{this._createdModes.push(e)}))}getAsyncTokenizationEnabled(){return!!this._configurationService.getValue("editor.experimental.asyncTokenization")}getAsyncTokenizationVerification(){return!!this._configurationService.getValue("editor.experimental.asyncTokenizationVerification")}_handleGrammarsExtPoint(e){for(let t of(this._grammarDefinitions=null,this._grammarFactory&&(this._grammarFactory.dispose(),this._grammarFactory=null),this._tokenizersRegistrations.clear(),this._grammarDefinitions=[],e))for(let e of t.value){let i=this._validateGrammarDefinition(t,e);if(i&&(this._grammarDefinitions.push(i),i.language)){let e=new f.LazyTokenizationSupport(()=>this._createTokenizationSupport(i.language));this._tokenizersRegistrations.add(e),this._tokenizersRegistrations.add(f.TokenizationRegistry.registerFactory(i.language,e))}}for(let e of(this._threadedBackgroundTokenizerFactory.setGrammarDefinitions(this._grammarDefinitions),this._createdModes))f.TokenizationRegistry.getOrCreate(e)}_validateGrammarDefinition(e,t){if(!function(e,t,i,r){if(t.language&&("string"!=typeof t.language||!r.isRegisteredLanguageId(t.language)))return i.error((0,y.localize)(14281,"Unknown language in `contributes.{0}.language`. Provided value: {1}",eg.name,String(t.language))),!1;if(!t.scopeName||"string"!=typeof t.scopeName)return i.error((0,y.localize)(14282,"Expected string in `contributes.{0}.scopeName`. Provided value: {1}",eg.name,String(t.scopeName))),!1;if(!t.path||"string"!=typeof t.path)return i.error((0,y.localize)(14283,"Expected string in `contributes.{0}.path`. Provided value: {1}",eg.name,String(t.path))),!1;if(t.injectTo&&(!Array.isArray(t.injectTo)||t.injectTo.some(e=>"string"!=typeof e)))return i.error((0,y.localize)(14284,"Invalid value in `contributes.{0}.injectTo`. Must be an array of language scope names. Provided value: {1}",eg.name,JSON.stringify(t.injectTo))),!1;if(t.embeddedLanguages&&!(0,p.isObject)(t.embeddedLanguages))return i.error((0,y.localize)(14285,"Invalid value in `contributes.{0}.embeddedLanguages`. Must be an object map from scope name to language. Provided value: {1}",eg.name,JSON.stringify(t.embeddedLanguages))),!1;if(t.tokenTypes&&!(0,p.isObject)(t.tokenTypes))return i.error((0,y.localize)(14286,"Invalid value in `contributes.{0}.tokenTypes`. Must be an object map from scope name to token type. Provided value: {1}",eg.name,JSON.stringify(t.tokenTypes))),!1;let o=(0,m.joinPath)(e,t.path);return(0,m.isEqualOrParent)(o,e)||i.warn((0,y.localize)(14287,"Expected `contributes.{0}.path` ({1}) to be included inside extension's folder ({2}). This might make the extension non-portable.",eg.name,o.path,e.path)),!0}(e.description.extensionLocation,t,e.collector,this._languageService))return null;let i=(0,m.joinPath)(e.description.extensionLocation,t.path),r=Object.create(null);if(t.embeddedLanguages){let e=Object.keys(t.embeddedLanguages);for(let i=0,o=e.length;i<o;i++){let o=e[i],n=t.embeddedLanguages[o];"string"==typeof n&&this._languageService.isRegisteredLanguageId(n)&&(r[o]=this._languageService.languageIdCodec.encodeLanguageId(n))}}let o=Object.create(null);if(t.tokenTypes)for(let e of Object.keys(t.tokenTypes))switch(t.tokenTypes[e]){case"string":o[e]=_.StandardTokenType.String;break;case"other":o[e]=_.StandardTokenType.Other;break;case"comment":o[e]=_.StandardTokenType.Comment}function n(e,t){return Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:t}return{location:i,language:t.language&&this._languageService.isRegisteredLanguageId(t.language)?t.language:void 0,scopeName:t.scopeName,embeddedLanguages:r,tokenTypes:o,injectTo:t.injectTo,balancedBracketSelectors:n(t.balancedBracketScopes,["*"]),unbalancedBracketSelectors:n(t.unbalancedBracketScopes,[]),sourceExtensionId:e.description.id}}startDebugMode(e,t){this._debugMode?this._notificationService.error((0,y.localize)(14277,"Already Logging.")):(this._debugModePrintFunc=e,this._debugMode=!0,this._debugMode&&this._progressService.withProgress({location:z.ProgressLocation.Notification,buttons:[(0,y.localize)(14278,"Stop")]},e=>(e.report({message:(0,y.localize)(14279,"Preparing to log TM Grammar parsing. Press Stop when finished.")}),this._getVSCodeOniguruma().then(t=>(t.setDefaultDebugCall(!0),e.report({message:(0,y.localize)(14280,"Now logging TM Grammar parsing. Press Stop when finished.")}),new Promise((e,t)=>{})))),e=>{this._getVSCodeOniguruma().then(e=>{this._debugModePrintFunc=()=>{},this._debugMode=!1,e.setDefaultDebugCall(!1),t()})}))}_canCreateGrammarFactory(){return!!this._grammarDefinitions}async _getOrCreateGrammarFactory(){if(this._grammarFactory)return this._grammarFactory;let[t,i]=await Promise.all([e.A(895001).then(function(e){return e.main}),this._getVSCodeOniguruma()]),r=Promise.resolve({createOnigScanner:e=>i.createOnigScanner(e),createOnigString:e=>i.createOnigString(e)});return this._grammarFactory||(this._grammarFactory=new el({logTrace:e=>this._logService.trace(e),logError:(e,t)=>this._logService.error(e,t),readFile:e=>this._extensionResourceLoaderService.readExtensionResource(e)},this._grammarDefinitions||[],t,r),this._updateTheme(this._themeService.getColorTheme(),!0)),this._grammarFactory}async _createTokenizationSupport(e){if(!this._languageService.isRegisteredLanguageId(e)||!this._canCreateGrammarFactory())return null;try{var t,i,r;let o=await this._getOrCreateGrammarFactory();if(!o.has(e))return null;let n=this._languageService.languageIdCodec.encodeLanguageId(e),a=await o.createGrammar(e,n);if(!a.grammar)return null;let s=(t="editor.maxTokenizationLineLength",i=e,r=this._configurationService,(0,eu.observableFromEvent)(e=>r.onDidChangeConfiguration(r=>{r.affectsConfiguration(t,{overrideIdentifier:i})&&e(r)}),()=>r.getValue(t,{overrideIdentifier:i})??-1)),l=new g.DisposableStore,d=l.add(new D(a.grammar,a.initialState,a.containsEmbeddedLanguages,(e,t)=>this._threadedBackgroundTokenizerFactory.createBackgroundTokenizer(e,t,s),()=>this.getAsyncTokenizationVerification(),(t,i,r)=>{this._reportTokenizationTime(t,e,a.sourceExtensionId,i,!1,r)},!0));return l.add(d.onDidEncounterLanguage(e=>{if(!this._encounteredLanguages[e]){let t=this._languageService.languageIdCodec.decodeLanguageId(e);this._encounteredLanguages[e]=!0,this._languageService.requestBasicLanguageFeatures(t)}})),new R(n,d,l,s)}catch(e){if(e.message&&e.message===es)return null;return(0,c.onUnexpectedError)(e),null}}_updateTheme(e,t){if(!t&&this._currentTheme&&this._currentTokenColorMap&&function(e,t){if(!t||!e||t.length!==e.length)return!1;for(let i=t.length-1;i>=0;i--){let r=t[i],o=e[i];if(r.scope!==o.scope)return!1;let n=r.settings,a=o.settings;if(n&&a){if(n.fontStyle!==a.fontStyle||n.foreground!==a.foreground||n.background!==a.background)return!1}else if(!n||!a)return!1}return!0}(this._currentTheme.settings,e.tokenColors)&&(0,l.equals)(this._currentTokenColorMap,e.tokenColorMap)&&this._currentTokenFontMap&&(0,l.equals)(this._currentTokenFontMap,e.tokenFontMap))return;this._currentTheme={name:e.label,settings:e.tokenColors},this._currentTokenColorMap=e.tokenColorMap,this._currentTokenFontMap=e.tokenFontMap,this._grammarFactory?.setTheme(this._currentTheme,this._currentTokenColorMap);let i=function(e){let t=[null];for(let i=1,r=e.length;i<r;i++)t[i]=d.Color.fromHex(e[i]);return t}(this._currentTokenColorMap),r=(0,T.generateTokensCSSForColorMap)(i),o=(0,T.generateTokensCSSForFontMap)(this._currentTokenFontMap);this._styleElement.textContent=r+o,f.TokenizationRegistry.setColorMap(i),this._currentTheme&&this._currentTokenColorMap&&this._threadedBackgroundTokenizerFactory.acceptTheme(this._currentTheme,this._currentTokenColorMap)}async createTokenizer(e){if(!this._languageService.isRegisteredLanguageId(e))return null;let t=await this._getOrCreateGrammarFactory();if(!t.has(e))return null;let i=this._languageService.languageIdCodec.encodeLanguageId(e),{grammar:r}=await t.createGrammar(e,i);return r}_getVSCodeOniguruma(){return this._vscodeOniguruma||(this._vscodeOniguruma=(async()=>{let[t,i]=await Promise.all([e.A(667804).then(function(e){return e.main}),this._loadVSCodeOnigurumaWASM()]);return await t.loadWASM({data:i,print:e=>{this._debugModePrintFunc(e)}}),t})()),this._vscodeOniguruma}async _loadVSCodeOnigurumaWASM(){if(!u.isWeb)return await fetch(h.FileAccess.asBrowserUri(`${h.nodeModulesPath}/vscode-oniguruma/release/onig.wasm`).toString(!0));{let t=await fetch(new e.U(e.r(983725)).href);return await t.arrayBuffer()}}_reportTokenizationTime(e,t,r,o,n,a){let s=n?"async":"sync";i.reportTokenizationTimeCounter[s]>50||(0===i.reportTokenizationTimeCounter[s]&&setTimeout(()=>{i.reportTokenizationTimeCounter[s]=0},36e5),i.reportTokenizationTimeCounter[s]++,this._telemetryService.publicLog2("editor.tokenizedLine",{timeMs:e,languageId:t,lineLength:o,fromWorker:n,sourceExtensionId:r,isRandomSample:a,tokenizationSetting:this.getAsyncTokenizationEnabled()?this.getAsyncTokenizationVerification()?2:1:0}))}};em=i=(0,a.__decorate)([(0,a.__param)(0,k.ILanguageService),(0,a.__param)(1,eh.IWorkbenchThemeService),(0,a.__param)(2,v.IExtensionResourceLoaderService),(0,a.__param)(3,C.INotificationService),(0,a.__param)(4,w.ILogService),(0,a.__param)(5,S.IConfigurationService),(0,a.__param)(6,L.IProgressService),(0,a.__param)(7,M.IWorkbenchEnvironmentService),(0,a.__param)(8,b.IInstantiationService),(0,a.__param)(9,I.ITelemetryService)],em);var ep=e.i(68629),e_=e.i(844141),ef=e.i(697786);let ek=(0,e_.getTokenClassificationRegistry)(),eT=ed.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"semanticTokenTypes",jsonSchema:{description:(0,y.localize)(14487,"Contributes semantic token types."),type:"array",items:{type:"object",properties:{id:{type:"string",description:(0,y.localize)(14488,"The identifier of the semantic token type"),pattern:e_.typeAndModifierIdPattern,patternErrorMessage:(0,y.localize)(14489,"Identifiers should be in the form letterOrDigit[_-letterOrDigit]*")},superType:{type:"string",description:(0,y.localize)(14490,"The super type of the semantic token type"),pattern:e_.typeAndModifierIdPattern,patternErrorMessage:(0,y.localize)(14491,"Super types should be in the form letterOrDigit[_-letterOrDigit]*")},description:{type:"string",description:(0,y.localize)(14492,"The description of the semantic token type")}}}}}),ey=ed.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"semanticTokenModifiers",jsonSchema:{description:(0,y.localize)(14493,"Contributes semantic token modifiers."),type:"array",items:{type:"object",properties:{id:{type:"string",description:(0,y.localize)(14494,"The identifier of the semantic token modifier"),pattern:e_.typeAndModifierIdPattern,patternErrorMessage:(0,y.localize)(14495,"Identifiers should be in the form letterOrDigit[_-letterOrDigit]*")},description:{type:"string",description:(0,y.localize)(14496,"The description of the semantic token modifier")}}}}}),eS=ed.ExtensionsRegistry.registerExtensionPoint({extensionPoint:"semanticTokenScopes",jsonSchema:{description:(0,y.localize)(14497,"Contributes semantic token scope maps."),type:"array",items:{type:"object",properties:{language:{description:(0,y.localize)(14498,"Lists the languge for which the defaults are."),type:"string"},scopes:{description:(0,y.localize)(14499,"Maps a semantic token (described by semantic token selector) to one or more textMate scopes used to represent that token."),type:"object",additionalProperties:{type:"array",items:{type:"string"}}}}}}});class ev{constructor(){function e(e,t,i){if("string"!=typeof e.id||0===e.id.length)return i.error((0,y.localize)(14500,"'configuration.{0}.id' must be defined and can not be empty",t)),!1;if(!e.id.match(e_.typeAndModifierIdPattern))return i.error((0,y.localize)(14501,"'configuration.{0}.id' must follow the pattern letterOrDigit[-_letterOrDigit]*",t)),!1;let r=e.superType;return r&&!r.match(e_.typeAndModifierIdPattern)?(i.error((0,y.localize)(14502,"'configuration.{0}.superType' must follow the pattern letterOrDigit[-_letterOrDigit]*",t)),!1):"string"==typeof e.description&&0!==e.id.length||(i.error((0,y.localize)(14503,"'configuration.{0}.description' must be defined and can not be empty",t)),!1)}eT.setHandler((t,i)=>{for(let t of i.added){let i=t.value,r=t.collector;if(!i||!Array.isArray(i))return void r.error((0,y.localize)(14504,"'configuration.semanticTokenType' must be an array"));for(let t of i)e(t,"semanticTokenType",r)&&ek.registerTokenType(t.id,t.description,t.superType)}for(let e of i.removed)for(let t of e.value)ek.deregisterTokenType(t.id)}),ey.setHandler((t,i)=>{for(let t of i.added){let i=t.value,r=t.collector;if(!i||!Array.isArray(i))return void r.error((0,y.localize)(14505,"'configuration.semanticTokenModifier' must be an array"));for(let t of i)e(t,"semanticTokenModifier",r)&&ek.registerTokenModifier(t.id,t.description)}for(let e of i.removed)for(let t of e.value)ek.deregisterTokenModifier(t.id)}),eS.setHandler((e,t)=>{for(let e of t.added){let t=e.value,i=e.collector;if(!t||!Array.isArray(t))return void i.error((0,y.localize)(14506,"'configuration.semanticTokenScopes' must be an array"));for(let e of t){if(e.language&&"string"!=typeof e.language){i.error((0,y.localize)(14507,"'configuration.semanticTokenScopes.language' must be a string"));continue}if(!e.scopes||"object"!=typeof e.scopes){i.error((0,y.localize)(14508,"'configuration.semanticTokenScopes.scopes' must be defined as an object"));continue}for(let t in e.scopes){let r=e.scopes[t];if(!Array.isArray(r)||r.some(e=>"string"!=typeof e)){i.error((0,y.localize)(14509,"'configuration.semanticTokenScopes.scopes' values must be an array of strings"));continue}try{let i=ek.parseTokenSelector(t,e.language);ek.registerTokenStyleDefault(i,{scopesToProbe:r.map(e=>e.split(" "))})}catch(e){i.error((0,y.localize)(14510,"configuration.semanticTokenScopes.scopes': Problems parsing selector {0}.",t))}}}}for(let e of t.removed)for(let t of e.value)for(let e in t.scopes){let i=t.scopes[e];try{let r=ek.parseTokenSelector(e,t.language);ek.registerTokenStyleDefault(r,{scopesToProbe:i.map(e=>e.split(" "))})}catch(e){}}})}}let eb=class{static{this.ID="workbench.contrib.tokenClassificationExtensionPoint"}constructor(e){this.instantiationService=e,this.instantiationService.createInstance(ev)}};eb=(0,a.__decorate)([(0,a.__param)(0,b.IInstantiationService)],eb),(0,ef.registerWorkbenchContribution2)(eb.ID,eb,ef.WorkbenchPhase.BlockStartup);var ew=e.i(654295),eC=e.i(850887),ez=e.i(601293),eL=e.i(83823),eI=g,eM=e.i(163731),ex=e.i(478697);class eE{constructor(e,t){this.rawSelector=e,this.settings=t;const i=this.rawSelector.split(/ /);this.scope=i[i.length-1],this.parentScopes=i.slice(0,i.length-1)}matches(e,t){return eE._matches(this.scope,this.parentScopes,e,t)}static _cmp(e,t){if(null===e&&null===t)return 0;if(null===e)return -1;if(null===t)return 1;if(e.scope.length!==t.scope.length)return e.scope.length-t.scope.length;let i=e.parentScopes.length,r=t.parentScopes.length;if(i!==r)return i-r;for(let r=0;r<i;r++){let i=e.parentScopes[r].length,o=t.parentScopes[r].length;if(i!==o)return i-o}return 0}isMoreSpecific(e){return eE._cmp(this,e)>0}static _matchesOne(e,t){let i=e+".";return e===t||t.substring(0,i.length)===i}static _matches(e,t,i,r){if(!this._matchesOne(e,i))return!1;let o=t.length-1,n=r.length-1;for(;o>=0&&n>=0;)this._matchesOne(t[o],r[n])&&o--,n--;return -1===o}}var eP=e.i(704994),eD=e.i(88124),eN=e.i(407791),eA=e.i(70594);(0,ew.registerCss)(void 0);let eO=eC.$,eR=class extends eI.Disposable{static{r=this}static{this.ID="editor.contrib.inspectEditorTokens"}static get(e){return e.getContribution(r.ID)}constructor(e,t,i,r,o,n,a){super(),this._editor=e,this._textMateService=t,this._themeService=r,this._languageService=i,this._notificationService=o,this._configurationService=n,this._languageFeaturesService=a,this._widget=null,this._register(this._editor.onDidChangeModel(e=>this.stop())),this._register(this._editor.onDidChangeModelLanguage(e=>this.stop())),this._register(this._editor.onKeyUp(e=>e.keyCode===eL.KeyCode.Escape&&this.stop()))}dispose(){this.stop(),super.dispose()}launch(){this._widget||!this._editor.hasModel()||this._editor.getModel().uri.scheme!==h.Schemas.vscodeNotebookCell&&(this._widget=new eW(this._editor,this._textMateService,this._languageService,this._themeService,this._notificationService,this._configurationService,this._languageFeaturesService))}stop(){this._widget&&(this._widget.dispose(),this._widget=null)}toggle(){this._widget?this.stop():this.launch()}};eR=r=(0,a.__decorate)([(0,a.__param)(1,o.ITextMateTokenizationService),(0,a.__param)(2,k.ILanguageService),(0,a.__param)(3,eh.IWorkbenchThemeService),(0,a.__param)(4,C.INotificationService),(0,a.__param)(5,S.IConfigurationService),(0,a.__param)(6,eN.ILanguageFeaturesService)],eR);class eF extends ex.EditorAction{constructor(){super({id:"editor.action.inspectTMScopes",label:(0,y.localize2)(6175,"Developer: Inspect Editor Tokens and Scopes"),precondition:void 0})}run(e,t){let i=eR.get(t);i?.toggle()}}function ej(e){e.length>40&&(e=e.substr(0,20)+"…"+e.substr(e.length-20));let t="";for(let i=0,r=e.length;i<r;i++){let r=e.charCodeAt(i);switch(r){case ez.CharCode.Tab:t+="→";break;case ez.CharCode.Space:t+="·";break;default:t+=String.fromCharCode(r)}}return t}class eW extends eI.Disposable{static{this._ID="editor.contrib.inspectEditorTokensWidget"}constructor(e,t,i,r,o,n,a){super(),this.allowEditorOverflow=!0,this._isDisposed=!1,this._editor=e,this._languageService=i,this._themeService=r,this._textMateService=t,this._notificationService=o,this._configurationService=n,this._languageFeaturesService=a,this._model=this._editor.getModel(),this._domNode=(0,eC.createElement)("div"),this._domNode.className="token-inspect-widget",this._currentRequestCancellationTokenSource=new eP.CancellationTokenSource,this._beginCompute(this._editor.getPosition()),this._register(this._editor.onDidChangeCursorPosition(e=>this._beginCompute(this._editor.getPosition()))),this._register(r.onDidColorThemeChange(e=>this._beginCompute(this._editor.getPosition()))),this._register(n.onDidChangeConfiguration(e=>e.affectsConfiguration("editor.semanticHighlighting.enabled")&&this._beginCompute(this._editor.getPosition()))),this._editor.addContentWidget(this)}dispose(){this._isDisposed=!0,this._editor.removeContentWidget(this),this._currentRequestCancellationTokenSource.cancel(),super.dispose()}getId(){return eW._ID}_beginCompute(e){let t=this._textMateService.createTokenizer(this._model.getLanguageId()),i=this._computeSemanticTokens(e),r=this._model.tokenization.tokens.get(),o=r instanceof eA.TreeSitterSyntaxTokenBackend?r:void 0;(0,eC.clearNode)(this._domNode),this._domNode.appendChild((0,eC.createTextNode)((0,y.localize)(6176,"Loading..."))),Promise.all([t,i]).then(([t,i])=>{if(this._isDisposed)return;let r=o?.tree.get();this._compute(t,i,r,e),this._domNode.style.maxWidth=`${Math.max(.66*this._editor.getLayoutInfo().width,500)}px`,this._editor.layoutContentWidget(this)},e=>{this._notificationService.warn(e),setTimeout(()=>{eR.get(this._editor)?.stop()})})}_isSemanticColoringEnabled(){let e=this._configurationService.getValue(eD.SEMANTIC_HIGHLIGHTING_SETTING_ID,{overrideIdentifier:this._model.getLanguageId(),resource:this._model.uri})?.enabled;return"boolean"==typeof e?e:this._themeService.getColorTheme().semanticHighlighting}_compute(e,t,i,r){let o=e&&this._getTokensAtPosition(e,r),n=t&&this._getSemanticTokenAtPosition(t,r),a=i&&this._getTreeSitterTokenAtPosition(i,r);if(!o&&!n&&!a)return void(0,eC.reset)(this._domNode,"No grammar or semantic tokens available.");let s=o?.metadata,l=n?.metadata,d=n&&ej(this._model.getValueInRange(n.range)),c=o&&ej(this._model.getLineContent(r.lineNumber).substring(o.token.startIndex,o.token.endIndex)),g=n&&this._model.getValueLengthInRange(n.range),h=o&&o.token.endIndex-o.token.startIndex,u=d||c||"",m=g||h||0;if((0,eC.reset)(this._domNode,eO("h2.tiw-token",void 0,u,eO("span.tiw-token-length",void 0,`${m} ${1===m?"char":"chars"}`))),(0,eC.append)(this._domNode,eO("hr.tiw-metadata-separator",{style:"clear:both"})),(0,eC.append)(this._domNode,eO("table.tiw-metadata-table",void 0,eO("tbody",void 0,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"language"),eO("td.tiw-metadata-value",void 0,s?.languageId||"")),eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"standard token type"),eO("td.tiw-metadata-value",void 0,this._tokenTypeToString(s?.tokenType||_.StandardTokenType.Other))),...this._formatMetadata(l,s)))),n){(0,eC.append)(this._domNode,eO("hr.tiw-metadata-separator"));let e=(0,eC.append)(this._domNode,eO("table.tiw-metadata-table",void 0)),t=(0,eC.append)(e,eO("tbody",void 0,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"semantic token type"),eO("td.tiw-metadata-value",void 0,n.type))));if(n.modifiers.length&&(0,eC.append)(t,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"modifiers"),eO("td.tiw-metadata-value",void 0,n.modifiers.join(" ")))),n.metadata){let e={},i=[];for(let t of["foreground","bold","italic","underline","strikethrough"])if(void 0!==n.metadata[t]){let r=n.definitions[t],o=this._renderTokenStyleDefinition(r,t),a=o.map(e=>(0,eC.isHTMLElement)(e)?e.outerHTML:e).join(),s=e[a];s||(e[a]=s=[],i.push([o,a])),s.push(t)}for(let[r,o]of i)(0,eC.append)(t,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,e[o].join(", ")),eO("td.tiw-metadata-value",void 0,...r)))}}if(o){let e=this._themeService.getColorTheme();(0,eC.append)(this._domNode,eO("hr.tiw-metadata-separator"));let t=(0,eC.append)(this._domNode,eO("table.tiw-metadata-table")),i=(0,eC.append)(t,eO("tbody"));c&&c!==u&&(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"textmate token"),eO("td.tiw-metadata-value",void 0,`${c} (${c.length})`)));let r=[];for(let e=o.token.scopes.length-1;e>=0;e--)r.push(o.token.scopes[e]),e>0&&r.push(eO("br"));(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"textmate scopes"),eO("td.tiw-metadata-value.tiw-metadata-scopes",void 0,...r)));let a=function(e,t,i=!0){for(let r=t.length-1;r>=0;r--){let o=t.slice(0,r),n=function(e,t,i,r){let o=null;for(let n=e.tokenColors.length-1;n>=0;n--){let a,s=e.tokenColors[n];if(!r||s.settings.foreground){if("string"==typeof s.scope)a=s.scope.split(/,/).map(e=>e.trim());else{if(!Array.isArray(s.scope))continue;a=s.scope}for(let e=0,r=a.length;e<r;e++){let r=new eE(a[e],s.settings);r.matches(t,i)&&r.isMoreSpecific(o)&&(o=r)}}}return o}(e,t[r],o,i);if(n)return n}return null}(e,o.token.scopes,!1),s=n?.metadata?.foreground;if(a){if(s!==o.metadata.foreground){let e=eO("code.tiw-theme-selector",void 0,a.rawSelector,eO("br"),JSON.stringify(a.settings,null," "));s&&(e=eO("s",void 0,e)),(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"foreground"),eO("td.tiw-metadata-value",void 0,e)))}}else s||(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"foreground"),eO("td.tiw-metadata-value",void 0,"No theme selector")))}if(a){let e=a[a.length-1];(0,eC.append)(this._domNode,eO("hr.tiw-metadata-separator"));let t=(0,eC.append)(this._domNode,eO("table.tiw-metadata-table")),i=(0,eC.append)(t,eO("tbody"));(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,`tree-sitter token ${e.id}`),eO("td.tiw-metadata-value",void 0,`${e.text}`)));let o=[],n=a.length-1,s=a[n];for(;s.parent||n>0;)o.push(s.type),(s=s.parent??a[--n])&&o.push(eO("br"));(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"tree-sitter tree"),eO("td.tiw-metadata-value.tiw-metadata-scopes",void 0,...o)));let l=this._model.tokenization.tokens.get().tokenizationImpl.get(),d=l?.captureAtPosition(r.lineNumber,r.column);d&&d.length>0&&(0,eC.append)(i,eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"foreground"),eO("td.tiw-metadata-value",void 0,d.map(e=>e.name).join(" "))))}}_formatMetadata(e,t){let i=[];function r(r){let o=e?.[r]||t?.[r];if(void 0!==o){let t=e?.[r]?"tiw-metadata-semantic":"";i.push(eO("tr",void 0,eO("td.tiw-metadata-key",void 0,r),eO(`td.tiw-metadata-value.${t}`,void 0,o)))}return o}let o=r("foreground"),n=r("background");if(o&&n){let e=d.Color.fromHex(n),t=d.Color.fromHex(o);e.isOpaque()?i.push(eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"contrast ratio"),eO("td.tiw-metadata-value",void 0,e.getContrastRatio(t.makeOpaque(e)).toFixed(2)))):i.push(eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"Contrast ratio cannot be precise for background colors that use transparency"),eO("td.tiw-metadata-value")))}let a=[];function s(i){let r;e&&e[i]?r=eO("span.tiw-metadata-semantic",void 0,i):t&&t[i]&&(r=i),r&&(a.length&&a.push(" "),a.push(r))}return s("bold"),s("italic"),s("underline"),s("strikethrough"),a.length&&i.push(eO("tr",void 0,eO("td.tiw-metadata-key",void 0,"font style"),eO("td.tiw-metadata-value",void 0,...a))),i}_decodeMetadata(e){let t=this._themeService.getColorTheme().tokenColorMap,i=_.TokenMetadata.getLanguageId(e),r=_.TokenMetadata.getTokenType(e),o=_.TokenMetadata.getFontStyle(e),n=_.TokenMetadata.getForeground(e),a=_.TokenMetadata.getBackground(e);return{languageId:this._languageService.languageIdCodec.decodeLanguageId(i),tokenType:r,bold:!!(o&_.FontStyle.Bold)||void 0,italic:!!(o&_.FontStyle.Italic)||void 0,underline:!!(o&_.FontStyle.Underline)||void 0,strikethrough:!!(o&_.FontStyle.Strikethrough)||void 0,foreground:t[n],background:t[a]}}_tokenTypeToString(e){switch(e){case _.StandardTokenType.Other:return"Other";case _.StandardTokenType.Comment:return"Comment";case _.StandardTokenType.String:return"String";case _.StandardTokenType.RegEx:return"RegEx";default:return"??"}}_getTokensAtPosition(e,t){let i=t.lineNumber,r=this._getStateBeforeLine(e,i),o=e.tokenizeLine(this._model.getLineContent(i),r),n=e.tokenizeLine2(this._model.getLineContent(i),r),a=0;for(let e=o.tokens.length-1;e>=0;e--){let i=o.tokens[e];if(t.column-1>=i.startIndex){a=e;break}}let s=0;for(let e=n.tokens.length>>>1;e>=0;e--)if(t.column-1>=n.tokens[e<<1]){s=e;break}return{token:o.tokens[a],metadata:this._decodeMetadata(n.tokens[(s<<1)+1])}}_getStateBeforeLine(e,t){let i=null;for(let r=1;r<t;r++)i=e.tokenizeLine(this._model.getLineContent(r),i).ruleStack;return i}isSemanticTokens(e){return e&&e.data}async _computeSemanticTokens(e){if(!this._isSemanticColoringEnabled())return null;let t=this._languageFeaturesService.documentSemanticTokensProvider.ordered(this._model);if(t.length){let e=t[0],i=await Promise.resolve(e.provideDocumentSemanticTokens(this._model,null,this._currentRequestCancellationTokenSource.token));if(this.isSemanticTokens(i))return{tokens:i,legend:e.getLegend()}}let i=this._languageFeaturesService.documentRangeSemanticTokensProvider.ordered(this._model);if(i.length){let t=i[0],r=e.lineNumber,o=new $.Range(r,1,r,this._model.getLineMaxColumn(r)),n=await Promise.resolve(t.provideDocumentRangeSemanticTokens(this._model,o,this._currentRequestCancellationTokenSource.token));if(this.isSemanticTokens(n))return{tokens:n,legend:t.getLegend()}}return null}_getSemanticTokenAtPosition(e,t){let i=e.tokens.data,r=this._model.getLanguageId(),o=0,n=0,a=t.lineNumber-1,s=t.column-1;for(let t=0;t<i.length;t+=5){let l=i[t],d=i[t+1],c=i[t+2],g=i[t+3],h=i[t+4],u=o+l,m=0===l?n+d:d;if(a===u&&m<=s&&s<m+c){let t,i=e.legend.tokenTypes[g]||"not in legend (ignored)",o=[],n=h;for(let t=0;n>0&&t<e.legend.tokenModifiers.length;t++)1&n&&o.push(e.legend.tokenModifiers[t]),n>>=1;n>0&&o.push("not in legend (ignored)");let a=new $.Range(u+1,m+1,u+1,m+1+c),s={},l=this._themeService.getColorTheme().tokenColorMap,d=this._themeService.getColorTheme().getTokenStyleMetadata(i,o,r,!0,s);return d&&(t={languageId:void 0,tokenType:_.StandardTokenType.Other,bold:d?.bold,italic:d?.italic,underline:d?.underline,strikethrough:d?.strikethrough,foreground:l[d?.foreground||_.ColorId.None],background:void 0}),{type:i,modifiers:o,range:a,metadata:t,definitions:s}}o=u,n=m}return null}_walkTreeforPosition(e,t){let i=this._model.getOffsetAt(t);e.gotoFirstChild();let r=!1,o=null;do e.currentNode.startIndex<=i&&i<e.currentNode.endIndex?(r=!0,o=e.currentNode):r=!1;while(r?e.gotoFirstChild():e.gotoNextSibling())return o}_getTreeSitterTokenAtPosition(e,t){let i=[],r=e?.tree.get();for(;r;){let o=r.walk(),n=this._walkTreeforPosition(o,t);o.delete(),n?(i.push(n),e=e?.getInjectionTrees(n.startIndex,e.languageId),r=e?.tree.get()):r=void 0}return i.length>0?i:null}_renderTokenStyleDefinition(e,t){let i=[];if(void 0===e)return i;let r=this._themeService.getColorTheme();if(Array.isArray(e)){let o={};r.resolveScopes(e,o);let n=o[t];if(n&&o.scope){let e=eO("ul.tiw-metadata-values");for(let t of Array.isArray(n.scope)?n.scope:[String(n.scope)])e.appendChild(eO("li.tiw-metadata-value.tiw-metadata-scopes",void 0,t));i.push(o.scope.join(" "),e,eO("code.tiw-theme-selector",void 0,JSON.stringify(n.settings,null," ")))}return i}if(e_.SemanticTokenRule.is(e)){let o=r.getTokenStylingRuleScope(e);return"setting"===o?i.push(`User settings: ${e.selector.id} - ${this._renderStyleProperty(e.style,t)}`):"theme"===o&&i.push(`Color theme: ${e.selector.id} - ${this._renderStyleProperty(e.style,t)}`),i}{let o=r.resolveTokenStyleValue(e);return i.push(`Default: ${o?this._renderStyleProperty(o,t):""}`),i}}_renderStyleProperty(e,t){return"foreground"===t?e.foreground?d.Color.Format.CSS.formatHexA(e.foreground,!0):"":void 0!==e[t]?String(e[t]):""}getDomNode(){return this._domNode}getPosition(){return{position:this._editor.getPosition(),preference:[eM.ContentWidgetPositionPreference.BELOW,eM.ContentWidgetPositionPreference.ABOVE]}}}(0,ex.registerEditorContribution)(eR.ID,eR,ex.EditorContributionInstantiation.Lazy),(0,ex.registerEditorAction)(eF),e.i(157255);var eB=e.i(318581),e$=e.i(170774);let eG=class{static{this.ID="workbench.contrib.textMateTokenizationInstantiator"}constructor(e){}};function eV(){return{...(0,ep.default)(),[o.ITextMateTokenizationService.toString()]:new n.SyncDescriptor(em,[],!1)}}eG=(0,a.__decorate)([(0,a.__param)(0,o.ITextMateTokenizationService)],eG),(0,ef.registerWorkbenchContribution2)(eG.ID,eG,ef.WorkbenchPhase.BlockRestore),eB.CommandsRegistry.registerCommand("_workbench.colorizeTextMateTokens",async(e,t)=>{let i=e.get(e$.ITextFileService),r=t?(await i.files.resolve(t)).textEditorModel:void 0;if(!r)throw Error(`Cannot resolve text model for resource ${t}`);let o=await f.TokenizationRegistry.getOrCreate(r.getLanguageId());if(!o)throw Error(`Cannot resolve tokenizer for language ${r.getLanguageId()}`);let n=new P.StopWatch,a=o.getInitialState();for(let e=1;e<=r.getLineCount();e++)a=o.tokenizeEncoded(r.getLineContent(e),!0,a).endState;return n.stop(),{tokenizeTime:n.elapsed()}}),e.s(["default",0,eV],451992),e.i(451992),e.s(["default",0,eV],635473)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,386041,e=>{"use strict";let t=(0,e.i(433721).default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);e.s(["Code2",0,t],386041)},194228,e=>{"use strict";let t=(0,e.i(433721).default)("git-commit-horizontal",[["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}],["line",{x1:"3",x2:"9",y1:"12",y2:"12",key:"1dyftd"}],["line",{x1:"15",x2:"21",y1:"12",y2:"12",key:"oup4p8"}]]);e.s(["GitCommitHorizontal",0,t],194228)},363156,e=>{"use strict";var t=e.i(816709);let r=/not a git repository/i;function i(e){return e instanceof Error&&r.test(e.message)}let s=(0,t.create)(e=>({status:null,diffs:[],selectedFile:null,log:[],branches:[],loading:!1,error:null,notGitRepo:!1,commitMsg:"",loadStatus:async t=>{try{let r=await fetch(`/api/workspaces/${t}/git/status`);if(!r.ok)throw Error(await r.text());let i=await r.json();e({status:i,notGitRepo:!1})}catch(t){e({error:t instanceof Error?t.message:String(t),notGitRepo:i(t)})}},loadDiffs:async(t,r)=>{e({loading:!0});try{let i=r?`/api/workspaces/${t}/git/diff?path=${encodeURIComponent(r)}`:`/api/workspaces/${t}/git/diff`,s=await fetch(i);if(!s.ok)throw Error(await s.text());let a=await s.json();e({diffs:a,loading:!1,notGitRepo:!1})}catch(t){e({error:t instanceof Error?t.message:String(t),loading:!1,notGitRepo:i(t)})}},loadLog:async t=>{try{let r=await fetch(`/api/workspaces/${t}/git/log`);if(!r.ok)throw Error(await r.text());let i=await r.json();e({log:i,notGitRepo:!1})}catch(t){e({error:t instanceof Error?t.message:String(t),notGitRepo:i(t)})}},loadBranches:async t=>{try{let r=await fetch(`/api/workspaces/${t}/git/branches`);if(!r.ok)throw Error(await r.text());let i=await r.json();e({branches:i,notGitRepo:!1})}catch(t){e({error:t instanceof Error?t.message:String(t),notGitRepo:i(t)})}},initRepo:async t=>{try{let r=await fetch(`/api/workspaces/${t}/git/init`,{method:"POST"});if(!r.ok)throw Error(await r.text());e({error:null,notGitRepo:!1})}catch(t){e({error:t instanceof Error?t.message:String(t)})}},commit:async(t,r)=>{try{let e=await fetch(`/api/workspaces/${t}/git/commit`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:r})});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},discard:async(t,r)=>{try{let e=await fetch(`/api/workspaces/${t}/git/discard`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:r})});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},discardAll:async t=>{try{let e=await fetch(`/api/workspaces/${t}/git/discard-all`,{method:"POST"});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},stage:async(t,r)=>{try{let e=await fetch(`/api/workspaces/${t}/git/stage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:r})});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},unstage:async(t,r)=>{try{let e=await fetch(`/api/workspaces/${t}/git/unstage`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:r})});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},resolveFile:async(e,t,r,i=!0)=>{let s=await fetch(`/api/workspaces/${e}/git/resolve-file`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:t,content:r,stage:i})});if(!s.ok)throw Error(await s.text())},checkout:async(t,r)=>{try{let e=await fetch(`/api/workspaces/${t}/git/checkout`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({branch:r})});if(!e.ok)throw Error(await e.text())}catch(t){e({error:t instanceof Error?t.message:String(t)})}},push:async e=>{let t=await fetch(`/api/workspaces/${e}/git/push`,{method:"POST"});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Push failed"}))).error)},pull:async e=>{let t=await fetch(`/api/workspaces/${e}/git/pull`,{method:"POST"});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Pull failed"}))).error)},fetchRemote:async e=>{let t=await fetch(`/api/workspaces/${e}/git/fetch`,{method:"POST"});if(!t.ok)throw Error((await t.json().catch(()=>({error:"Fetch failed"}))).error)},getRemotes:async e=>{let t=await fetch(`/api/workspaces/${e}/git/remotes`);if(!t.ok)throw Error(await t.text());return t.json()},addRemote:async(e,t,r)=>{let i=await fetch(`/api/workspaces/${e}/git/remotes`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,url:r})});if(!i.ok)throw Error((await i.json().catch(()=>({error:"Failed to add remote"}))).error)},selectFile:t=>e({selectedFile:t}),setCommitMsg:t=>e({commitMsg:t}),checkoutDetached:async(e,t)=>{let r=await fetch(`/api/workspaces/${e}/git/checkout-detached`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commitHash:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error)},cherryPick:async(e,t)=>{let r=await fetch(`/api/workspaces/${e}/git/cherry-pick`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({commitHash:t})});if(!r.ok)throw Error((await r.json().catch(()=>({}))).error)},createBranch:async(e,t,r)=>{let i=await fetch(`/api/workspaces/${e}/git/create-branch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,startPoint:r})});if(!i.ok)throw Error((await i.json().catch(()=>({}))).error)},deleteBranch:async(e,t,r)=>{let i=await fetch(`/api/workspaces/${e}/git/delete-branch`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,force:r})});if(!i.ok)throw Error((await i.json().catch(()=>({}))).error)},createTag:async(e,t,r)=>{let i=await fetch(`/api/workspaces/${e}/git/create-tag`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,commitHash:r})});if(!i.ok)throw Error((await i.json().catch(()=>({}))).error)},getCommitDiff:async(e,t)=>{let r=await fetch(`/api/workspaces/${e}/git/commit-diff?hash=${encodeURIComponent(t)}`);if(!r.ok)throw Error((await r.json().catch(()=>({}))).error);return r.json()},getRemoteUrl:async e=>{let t=await fetch(`/api/workspaces/${e}/git/remote-url`);if(!t.ok)throw Error((await t.json().catch(()=>({}))).error);return(await t.json()).url},getMergeBase:async e=>{let t=await fetch(`/api/workspaces/${e}/git/merge-base`);if(!t.ok)throw Error((await t.json().catch(()=>({}))).error);return(await t.json()).hash}}));e.s(["useGitStore",0,s])},253307,e=>{"use strict";let t=(0,e.i(433721).default)("file-diff",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M9 10h6",key:"9gxzsh"}],["path",{d:"M12 13V7",key:"h0r20n"}],["path",{d:"M9 17h6",key:"r8uit2"}]]);e.s(["FileDiff",0,t],253307)},524360,e=>{"use strict";var t=e.i(816709),r=e.i(360112);let i=new Map,s=(0,t.create)((e,t)=>({sessions:[],activeId:null,ws:null,workspaceId:null,_initialized:!1,_restored:!1,init:(s,a)=>{let o=t();if(o._initialized&&o.ws===s)return;let n=o.workspaceId!==s.workspaceId;n&&i.clear(),e({ws:s,workspaceId:s.workspaceId,sessions:n?[]:o.sessions,activeId:n?null:o.activeId,_initialized:!0,_restored:!1}),s.on("terminal.created",t=>{let{sessionId:r,cwd:i,shell:s}=t;e(e=>e.sessions.some(e=>e.id===r)?e:{sessions:[...e.sessions,{id:r,cwd:i,shell:s}],activeId:r})}),s.on("terminal.error",e=>{let{error:t}=e;r.toast.error(t)}),s.on("terminal.closed",t=>{let{sessionId:r}=t;e(e=>{let t=e.sessions.filter(e=>e.id!==r),i=e.activeId===r?t[0]?.id??null:e.activeId;return{sessions:t,activeId:i}})}),s.on("terminal.sessions",t=>{let{sessions:r}=t;e(e=>{let t=new Map(e.sessions.map(e=>[e.id,e])),s=r.map(e=>{let r=t.get(e.sessionId);return e.buffer&&i.set(e.sessionId,e.buffer),{...r,id:e.sessionId,cwd:e.cwd,shell:e.shell??r?.shell}}),a=!!e.activeId&&s.some(t=>t.id===e.activeId);for(let e of r)e.buffer||i.delete(e.sessionId);return{sessions:s,activeId:a?e.activeId:s[0]?.id??null,_restored:!0}}),a?.()})},createSession:(e,r)=>{let{ws:i}=t();i?.send("terminal.create",{sessionId:crypto.randomUUID?.()??crypto.getRandomValues(new Uint8Array(16)).reduce((e,t)=>e+t.toString(16).padStart(2,"0"),""),shell:e,cwd:r})},setActive:t=>e({activeId:t}),setSessionName:(t,r)=>e(e=>({sessions:e.sessions.map(e=>e.id===t?{...e,name:r}:e)})),removeSession:r=>{let{ws:i,sessions:s,activeId:a}=t();i?.send("terminal.close",{sessionId:r});let o=s.filter(e=>e.id!==r),n=a===r?o[0]?.id??null:a;e({sessions:o,activeId:n})},sendInput:(e,r)=>{t().ws?.send("terminal.input",{sessionId:e,data:r})},resize:(e,r,i)=>{t().ws?.send("terminal.resize",{sessionId:e,cols:r,rows:i})}}));e.s(["consumeSessionBuffer",0,function(e){let t=i.get(e);return i.delete(e),t},"useTerminalStore",0,s])},191441,e=>{"use strict";let t=(0,e.i(433721).default)("list-checks",[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]);e.s(["ListChecks",0,t],191441)},404175,e=>{"use strict";var t=e.i(344180),r=e.i(227634),i=e.i(191441),s=e.i(451534),a=e.i(386041),o=e.i(426022),n=e.i(989484),c=e.i(433721);let l=(0,c.default)("square-terminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);var d=e.i(253307),h=e.i(194228),p=e.i(210),f=e.i(255742),g=e.i(943997);let u=(0,c.default)("kanban",[["path",{d:"M5 3v14",key:"9nsxs2"}],["path",{d:"M12 3v8",key:"1h2ygw"}],["path",{d:"M19 3v18",key:"1sk56x"}]]),m=[{id:"channel-list",icon:r.Hash,group:"channel"},{id:"chat",icon:o.MessageSquare,group:"channel"},{id:"issue-list",icon:i.ListChecks,group:"issue"},{id:"issue-detail",icon:d.FileDiff,group:"issue"},{id:"workfolder",icon:s.FolderOpen,group:"workfolder"},{id:"code-editor",icon:a.Code2,group:"workfolder"},{id:"terminal",icon:l,group:"tools"},{id:"git-commits",icon:h.GitCommitHorizontal,group:"git"},{id:"project-settings",icon:p.Settings2,group:"settings"},{id:"code-favorites",icon:f.Star,group:"workfolder"},{id:"database",icon:g.Database,group:"workfolder"},{id:"kanban",icon:u,group:"workfolder"}],w={"channel-list":(0,t.jsx)(r.Hash,{size:16}),"issue-list":(0,t.jsx)(i.ListChecks,{size:16}),workfolder:(0,t.jsx)(s.FolderOpen,{size:16}),"code-editor":(0,t.jsx)(a.Code2,{size:16}),chat:(0,t.jsx)(o.MessageSquare,{size:16}),"issue-detail":(0,t.jsx)(n.FileText,{size:16}),terminal:(0,t.jsx)(l,{size:16}),"git-commits":(0,t.jsx)(h.GitCommitHorizontal,{size:16}),"project-settings":(0,t.jsx)(p.Settings2,{size:16}),"code-favorites":(0,t.jsx)(f.Star,{size:16}),database:(0,t.jsx)(g.Database,{size:16}),kanban:(0,t.jsx)(u,{size:16}),...{}};function y(e,r,i,s,a){if("git-commits"===e&&r&&!r.clean){let e=r.insertions>0||r.deletions>0,i=(0,t.jsx)("span",{className:"ml-1 text-[10px] font-medium leading-none flex items-center gap-0.5",children:e?(0,t.jsxs)(t.Fragment,{children:[r.insertions>0&&(0,t.jsxs)("span",{className:"text-green-600",children:["+",r.insertions]}),r.deletions>0&&(0,t.jsxs)("span",{className:"text-red-500",children:["-",r.deletions]})]}):(0,t.jsx)("span",{className:"text-orange-500",children:r.files.length})}),s=r.files.length;return{trailing:i,badge:s>0?(0,t.jsx)("span",{className:"absolute -top-1 -right-1.5 min-w-[14px] h-[14px] rounded-full bg-blue-500 text-white text-[9px] font-medium leading-none flex items-center justify-center px-0.5",children:s}):null}}if("terminal"===e&&i.length>0)return{trailing:null,badge:(0,t.jsx)("span",{className:"absolute -top-1 -right-1.5 min-w-[14px] h-[14px] rounded-full bg-green-500 text-white text-[9px] font-medium leading-none flex items-center justify-center px-0.5",children:i.length})};let o=(0,t.jsxs)("span",{className:"absolute -top-1 -right-1 flex h-2 w-2",children:[(0,t.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-blue-400 opacity-75"}),(0,t.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2 bg-blue-500"})]});return"channel-list"===e&&Object.values(s).some(e=>e.some(e=>"streaming"===e.status||"pending"===e.status))||"issue-detail"===e&&a.some(e=>"pending"===e.status||"running"===e.status||"retrying"===e.status||"waiting_review"===e.status)?{trailing:null,badge:o}:{trailing:null,badge:null}}e.s(["RIGHT_TO_LEFT_TAB_MAP",0,{"code-editor":"workfolder",chat:"channel-list","issue-detail":"issue-list",database:"workfolder"},"TAB_ITEMS",0,m,"getTabBadge",0,y,"renderTabIcon",0,function(e,r,i,s,a,o){let n=w[e];if(!n)return null;let{trailing:c,badge:l}=y(e,i,s,a,o);return(0,t.jsxs)("span",{title:r,className:"flex items-center justify-center",children:[(0,t.jsxs)("span",{className:"relative",children:[n,l]}),c]})}],404175)},217061,e=>{"use strict";var t=e.i(344180),r=e.i(250226),i=e.i(363156),s=e.i(524360),a=e.i(31807),o=e.i(873111),n=e.i(465458),c=e.i(404175);e.s(["MobileTabBar",0,function(){let{activePanel:e,setActivePanel:l}=(0,r.useMobilePanelStore)(),d=(0,i.useGitStore)(e=>e.status),h=(0,s.useTerminalStore)(e=>e.sessions),p=(0,a.useChannelStore)(e=>e.messages),f=(0,o.useTaskStore)(e=>e.tasks);return(0,t.jsx)("div",{className:"relative shrink-0 bg-background",children:(0,t.jsx)("div",{className:"flex items-center h-10 border-b px-1 gap-2 shrink-0 overflow-x-auto overflow-y-visible md:hidden",children:c.TAB_ITEMS.map((r,i)=>{let s=r.icon,a=i>0?c.TAB_ITEMS[i-1].group:null,o=null!==a&&a!==r.group,{trailing:g,badge:u}=(0,c.getTabBadge)(r.id,d,h,p,f);return(0,t.jsxs)("div",{className:"flex items-center shrink-0 overflow-visible",children:[o&&(0,t.jsx)("div",{className:"w-px h-4 bg-border mx-0.5"}),(0,t.jsxs)("button",{onClick:()=>{var e;l(e=r.id),c.RIGHT_TO_LEFT_TAB_MAP[e]},className:(0,n.cn)("relative flex items-center justify-center h-8 min-w-8 px-1 rounded-md transition-colors",e===r.id?"bg-accent text-accent-foreground":"text-muted-foreground hover:bg-accent/50"),children:[(0,t.jsxs)("span",{className:"relative",children:[(0,t.jsx)(s,{size:16}),u]}),g]})]},r.id)})})})}])},404069,e=>{e.n(e.i(217061))}]);
@@ -0,0 +1 @@
1
+ .xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/0xwqf.llmm_u2.js","static/chunks/031c~uxc3ie87.js","static/chunks/0h256h-tu4e0r.js","static/chunks/0202ia13sijwb.js","static/chunks/0gyede80jpy3n.js"],runtimeModuleIds:[933412]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function w(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function O(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=w,u.A=function(e){return this.r(e)(w.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=O(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=O(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[U]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[C]=e):i(u[U]),P(n)}),n&&-1===n.status&&(n.status=0)};let v=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}v.prototype=URL.prototype,u.U=v,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let _=new Map,E=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||_.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>E.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)E.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));E.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))E.has(o)||E.set(o,n)}for(let e of o)_.has(e)||_.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let q=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return K.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(q.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(q.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/02mf61htij8g0.js","static/chunks/031c~uxc3ie87.js","static/chunks/0h18ej5yf974e.js","static/chunks/0h256h-tu4e0r.js","static/chunks/0np.d~hc1-pmh.js"],runtimeModuleIds:[933412]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=function(){if(null!=self.TURBOPACK_ASSET_SUFFIX)return self.TURBOPACK_ASSET_SUFFIX;let e=document?.currentScript?.getAttribute?.("src")??"",t=e.indexOf("?");return t>=0?e.slice(t):""}(),n=["NEXT_DEPLOYMENT_ID","NEXT_CLIENT_ASSET_SUFFIX"];var o,i=((o=i||{})[o.Runtime=0]="Runtime",o[o.Parent=1]="Parent",o[o.Update=2]="Update",o);let l=new WeakMap;function s(e,t){this.m=e,this.e=t}let u=s.prototype,a=Object.prototype.hasOwnProperty,c="u">typeof Symbol&&Symbol.toStringTag;function f(e,t,r){a.call(e,t)||Object.defineProperty(e,t,r)}function p(e,t){let r=e[t];return r||(r=h(t),e[t]=r),r}function h(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function d(e,t){f(e,"__esModule",{value:!0}),c&&f(e,c,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)f(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?f(e,n,{get:o,set:t[r++],enumerable:!0}):f(e,n,{get:o,enumerable:!0})}Object.seal(e)}function m(e,t){(null!=t?p(this.c,t):this.m).exports=e}u.s=function(e,t){let r,n;null!=t?n=(r=p(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,d(n,e)},u.j=function(e,t){var r,n;let o,i,s;null!=t?i=(o=p(this.c,t)).exports:(o=this.m,i=this.e);let u=(r=o,n=i,(s=l.get(r))||(l.set(r,s=[]),r.exports=r.namespaceObject=new Proxy(n,{get(e,t){if(a.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of s){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of s)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),s);"object"==typeof e&&null!==e&&u.push(e)},u.v=m,u.n=function(e,t){let r;(r=null!=t?p(this.c,t):this.m).exports=r.namespaceObject=e};let b=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,y=[null,b({}),b([]),b(b)];function g(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!y.includes(t);t=b(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),d(t,n),t}function O(e){let t=B(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=g(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function w(e){let t=e.indexOf("#");-1!==t&&(e=e.substring(0,t));let r=e.indexOf("?");return -1!==r&&(e=e.substring(0,r)),e}function j(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}u.i=O,u.A=function(e){return this.r(e)(O.bind(this))},u.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},u.r=function(e){return B(e,this.m).exports},u.f=function(e){function t(t){if(t=w(t),a.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(t=w(t),a.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let k=Symbol("turbopack queues"),U=Symbol("turbopack exports"),C=Symbol("turbopack error");function P(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}u.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:i,reject:l,promise:s}=j(),u=Object.assign(s,{[U]:r.exports,[k]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[U]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(k in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[U]:{},[k]:e=>e(t)};return e.then(e=>{r[U]=e,P(t)},e=>{r[C]=e,P(t)}),r}}return{[U]:e,[k]:()=>{}}}),r=()=>t.map(e=>{if(e[C])throw e[C];return e[U]}),{promise:i,resolve:l}=j(),s=Object.assign(()=>l(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[k](u)),s.queueCount?i:r()},function(e){e?l(u[C]=e):i(u[U]),P(n)}),n&&-1===n.status&&(n.status=0)};let v=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function R(e,t){throw Error(`Invariant: ${t(e)}`)}v.prototype=URL.prototype,u.U=v,u.z=function(e){throw Error("dynamic usage of require is not supported")},u.g=globalThis;let S=s.prototype,$=new Map;u.M=$;let E=new Map,_=new Map;async function T(e,t,r){let n;if("string"==typeof r)return M(e,t,N(r));let o=r.included||[],i=o.map(e=>!!$.has(e)||E.get(e));if(i.length>0&&i.every(e=>e))return void await Promise.all(i);let l=r.moduleChunks||[],s=l.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===l.length)return void await Promise.all(s);let r=new Set;for(let e of l)_.has(e)||r.add(e);for(let n of r){let r=M(e,t,N(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=M(e,t,N(r.path)),l))_.has(o)||_.set(o,n)}for(let e of o)E.has(e)||E.set(e,n);await n}S.l=function(e){return T(i.Parent,this.m.id,e)};let A=Promise.resolve(void 0),x=new WeakMap;function M(t,r,n){let o=e.loadChunkCached(t,n),l=x.get(o);if(void 0===l){let e=x.set.bind(x,o,A);l=o.then(e).catch(e=>{let o;switch(t){case i.Runtime:o=`as a runtime dependency of chunk ${r}`;break;case i.Parent:o=`from module ${r}`;break;case i.Update:o="from an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}let l=Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0);throw l.name="ChunkLoadError",l}),x.set(o,l)}return l}function N(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}${r}`}S.L=function(e){return M(i.Parent,this.m.id,e)},S.R=function(e){let t=this.r(e);return t?.default??t},S.P=function(e){return`/ROOT/${e??""}`},S.q=function(e,t){m.call(this,`${e}${r}`,t)},S.b=function(e,t,o,i){let l="SharedWorker"===e.name,s=[o.map(e=>N(e)).reverse(),r];for(let e of n)s.push(globalThis[e]);let u=new URL(N(t),location.origin),a=JSON.stringify(s);return l?u.searchParams.set("params",a):u.hash="#params="+encodeURIComponent(a),new e(u,i?{...i,type:void 0}:void 0)};let K=/\.js(?:\?[^#]*)?(?:#.*)?$/,q=/\.css(?:\?[^#]*)?(?:#.*)?$/;function L(e){return q.test(e)}u.w=function(t,r,n){return e.loadWebAssembly(i.Parent,this.m.id,t,r,n)},u.u=function(t,r){return e.loadWebAssemblyModule(i.Parent,this.m.id,t,r)};let I={};u.c=I;let B=(e,t)=>{let r=I[e];if(r){if(r.error)throw r.error;return r}return W(e,i.Parent,t.id)};function W(e,t,r){let n=$.get(e);if("function"!=typeof n)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:R(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let o=h(e),i=o.exports;I[e]=o;let l=new s(o,i);try{n(l,o,i)}catch(e){throw o.error=e,e}return o.namespaceObject&&o.exports!==o.namespaceObject&&g(o.exports,o.namespaceObject),o}function F(t){let r,n=function(e){if("string"==typeof e)return e;if(e)return{src:e.getAttribute("src")};if("u">typeof TURBOPACK_NEXT_CHUNK_URLS)return{src:TURBOPACK_NEXT_CHUNK_URLS.pop()};throw Error("chunk path empty but not in a worker")}(t[0]);return 2===t.length?r=t[1]:(r=void 0,!function(e,t){let r=1;for(;r<e.length;){let n,o=r+1;for(;o<e.length&&"function"!=typeof e[o];)o++;if(o===e.length)throw Error("malformed chunk format, expected a factory function");let i=e[o];for(let i=r;i<o;i++){let r=e[i],o=t.get(r);if(o){n=o;break}}let l=n??i,s=!1;for(let n=r;n<o;n++){let r=e[n];t.has(r)||(s||(l===i&&Object.defineProperty(i,"name",{value:"module evaluation"}),s=!0),t.set(r,l))}r=o+1}}(t,$)),e.registerChunk(n,r)}let X=new Map;function D(e){let t=X.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},X.set(e,t)}return t}e={async registerChunk(e,r){let n=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(e.src.replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(e);if(D("string"==typeof e?N(e):e.src).resolve(),null!=r){for(let e of r.otherChunks)D(N("string"==typeof e?e:e.path));if(await Promise.all(r.otherChunks.map(e=>T(i.Runtime,n,e))),r.runtimeModuleIds.length>0)for(let e of r.runtimeModuleIds)!function(e,t){let r=I[t];if(r){if(r.error)throw r.error;return}W(t,i.Runtime,e)}(n,e)}},loadChunkCached:(e,t)=>(function(e,t){let r=D(t);if(r.loadingStarted)return r.promise;if(e===i.Runtime)return r.loadingStarted=!0,L(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(L(t));else if(K.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(L(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(K.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let i=fetch(N(r)),{instance:l}=await WebAssembly.instantiateStreaming(i,o);return l.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(N(r));return await WebAssembly.compileStreaming(o)}};let H=globalThis.TURBOPACK;globalThis.TURBOPACK={push:F},H.forEach(F)})();